1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 23 * Use is subject to license terms. 24 */ 25 26 #ifndef _SYS_DDI_ISA_H 27 #define _SYS_DDI_ISA_H 28 29 #include <sys/isa_defs.h> 30 #include <sys/dditypes.h> 31 #include <sys/ndifm.h> 32 #ifdef _KERNEL 33 #include <sys/ddi_obsolete.h> 34 #endif 35 36 #ifdef __cplusplus 37 extern "C" { 38 #endif 39 40 #ifdef _KERNEL 41 42 /* 43 * These are the data access functions which the platform 44 * can choose to define as functions or macro's. 45 */ 46 47 /* 48 * DDI interfaces defined as macro's 49 */ 50 51 /* 52 * DDI interfaces defined as functions 53 */ 54 55 #ifdef __STDC__ 56 57 /* 58 * ahi_acc_attr flags 59 */ 60 #define DDI_ACCATTR_CONFIG_SPACE 0x1 61 #define DDI_ACCATTR_IO_SPACE 0x2 62 #define DDI_ACCATTR_CPU_VADDR 0x4 63 #define DDI_ACCATTR_DIRECT 0x8 64 65 typedef struct ddi_acc_impl { 66 ddi_acc_hdl_t ahi_common; 67 uint_t ahi_acc_attr; 68 ulong_t ahi_io_port_base; 69 70 uint8_t 71 (*ahi_get8)(struct ddi_acc_impl *handle, uint8_t *addr); 72 uint16_t 73 (*ahi_get16)(struct ddi_acc_impl *handle, uint16_t *addr); 74 uint32_t 75 (*ahi_get32)(struct ddi_acc_impl *handle, uint32_t *addr); 76 uint64_t 77 (*ahi_get64)(struct ddi_acc_impl *handle, uint64_t *addr); 78 79 void (*ahi_put8)(struct ddi_acc_impl *handle, uint8_t *addr, 80 uint8_t value); 81 void (*ahi_put16)(struct ddi_acc_impl *handle, uint16_t *addr, 82 uint16_t value); 83 void (*ahi_put32)(struct ddi_acc_impl *handle, uint32_t *addr, 84 uint32_t value); 85 void (*ahi_put64)(struct ddi_acc_impl *handle, uint64_t *addr, 86 uint64_t value); 87 88 void (*ahi_rep_get8)(struct ddi_acc_impl *handle, 89 uint8_t *host_addr, uint8_t *dev_addr, 90 size_t repcount, uint_t flags); 91 void (*ahi_rep_get16)(struct ddi_acc_impl *handle, 92 uint16_t *host_addr, uint16_t *dev_addr, 93 size_t repcount, uint_t flags); 94 void (*ahi_rep_get32)(struct ddi_acc_impl *handle, 95 uint32_t *host_addr, uint32_t *dev_addr, 96 size_t repcount, uint_t flags); 97 void (*ahi_rep_get64)(struct ddi_acc_impl *handle, 98 uint64_t *host_addr, uint64_t *dev_addr, 99 size_t repcount, uint_t flags); 100 101 void (*ahi_rep_put8)(struct ddi_acc_impl *handle, 102 uint8_t *host_addr, uint8_t *dev_addr, 103 size_t repcount, uint_t flags); 104 void (*ahi_rep_put16)(struct ddi_acc_impl *handle, 105 uint16_t *host_addr, uint16_t *dev_addr, 106 size_t repcount, uint_t flags); 107 void (*ahi_rep_put32)(struct ddi_acc_impl *handle, 108 uint32_t *host_addr, uint32_t *dev_addr, 109 size_t repcount, uint_t flags); 110 void (*ahi_rep_put64)(struct ddi_acc_impl *handle, 111 uint64_t *host_addr, uint64_t *dev_addr, 112 size_t repcount, uint_t flags); 113 114 int (*ahi_fault_check)(struct ddi_acc_impl *handle); 115 void (*ahi_fault_notify)(struct ddi_acc_impl *handle); 116 uint32_t ahi_fault; 117 ndi_err_t *ahi_err; 118 kmutex_t *ahi_peekpoke_mutexp; 119 kmutex_t *ahi_err_mutexp; 120 void (*ahi_scan)(dev_info_t *, ddi_fm_error_t *); 121 dev_info_t *ahi_scan_dip; 122 } ddi_acc_impl_t; 123 124 125 /* 126 * Input functions to memory mapped IO 127 */ 128 uint8_t 129 i_ddi_vaddr_get8(ddi_acc_impl_t *hdlp, uint8_t *addr); 130 131 uint16_t 132 i_ddi_vaddr_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 133 134 uint32_t 135 i_ddi_vaddr_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 136 137 uint64_t 138 i_ddi_vaddr_get64(ddi_acc_impl_t *hdlp, uint64_t *addr); 139 140 uint16_t 141 i_ddi_vaddr_swap_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 142 143 uint32_t 144 i_ddi_vaddr_swap_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 145 146 uint64_t 147 i_ddi_vaddr_swap_get64(ddi_acc_impl_t *hdlp, uint64_t *addr); 148 149 /* 150 * Output functions to memory mapped IO 151 */ 152 void 153 i_ddi_vaddr_put8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value); 154 155 void 156 i_ddi_vaddr_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value); 157 158 void 159 i_ddi_vaddr_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value); 160 161 void 162 i_ddi_vaddr_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value); 163 164 void 165 i_ddi_vaddr_swap_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value); 166 167 void 168 i_ddi_vaddr_swap_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value); 169 170 void 171 i_ddi_vaddr_swap_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value); 172 173 /* 174 * Repeated input functions for memory mapped IO 175 */ 176 void 177 i_ddi_vaddr_rep_get8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, 178 uint8_t *dev_addr, size_t repcount, uint_t flags); 179 180 void 181 i_ddi_vaddr_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 182 uint16_t *dev_addr, size_t repcount, uint_t flags); 183 184 void 185 i_ddi_vaddr_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 186 uint32_t *dev_addr, size_t repcount, uint_t flags); 187 188 void 189 i_ddi_vaddr_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr, 190 uint64_t *dev_addr, size_t repcount, uint_t flags); 191 192 void 193 i_ddi_vaddr_swap_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 194 uint16_t *dev_addr, size_t repcount, uint_t flags); 195 196 void 197 i_ddi_vaddr_swap_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 198 uint32_t *dev_addr, size_t repcount, uint_t flags); 199 200 void 201 i_ddi_vaddr_swap_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr, 202 uint64_t *dev_addr, size_t repcount, uint_t flags); 203 204 /* 205 * Repeated output functions for memory mapped IO 206 */ 207 void 208 i_ddi_vaddr_rep_put8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, 209 uint8_t *dev_addr, size_t repcount, uint_t flags); 210 211 void 212 i_ddi_vaddr_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 213 uint16_t *dev_addr, size_t repcount, uint_t flags); 214 215 void 216 i_ddi_vaddr_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, 217 uint32_t *dev_addr, size_t repcount, uint_t flags); 218 219 void 220 i_ddi_vaddr_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr, 221 uint64_t *dev_addr, size_t repcount, uint_t flags); 222 223 void 224 i_ddi_vaddr_swap_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 225 uint16_t *dev_addr, size_t repcount, uint_t flags); 226 227 void 228 i_ddi_vaddr_swap_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, 229 uint32_t *dev_addr, size_t repcount, uint_t flags); 230 231 void 232 i_ddi_vaddr_swap_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr, 233 uint64_t *dev_addr, size_t repcount, uint_t flags); 234 235 /* 236 * Input functions to IO space 237 */ 238 uint8_t 239 i_ddi_io_get8(ddi_acc_impl_t *hdlp, uint8_t *addr); 240 241 uint16_t 242 i_ddi_io_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 243 244 uint32_t 245 i_ddi_io_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 246 247 uint64_t 248 i_ddi_io_get64(ddi_acc_impl_t *hdlp, uint64_t *addr); 249 250 uint16_t 251 i_ddi_io_swap_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 252 253 uint32_t 254 i_ddi_io_swap_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 255 256 /* 257 * Output functions to IO space 258 */ 259 void 260 i_ddi_io_put8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value); 261 262 void 263 i_ddi_io_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value); 264 265 void 266 i_ddi_io_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value); 267 268 void 269 i_ddi_io_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value); 270 271 void 272 i_ddi_io_swap_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value); 273 274 void 275 i_ddi_io_swap_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value); 276 277 /* 278 * Repeated input functions for IO space 279 */ 280 void 281 i_ddi_io_rep_get8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, uint8_t *dev_addr, 282 size_t repcount, uint_t flags); 283 284 void 285 i_ddi_io_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 286 uint16_t *dev_addr, size_t repcount, uint_t flags); 287 288 void 289 i_ddi_io_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 290 uint32_t *dev_addr, size_t repcount, uint_t flags); 291 292 void 293 i_ddi_io_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr, 294 uint64_t *dev_addr, size_t repcount, uint_t flags); 295 296 void 297 i_ddi_io_swap_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 298 uint16_t *dev_addr, size_t repcount, uint_t flags); 299 300 void 301 i_ddi_io_swap_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 302 uint32_t *dev_addr, size_t repcount, uint_t flags); 303 304 /* 305 * Repeated output functions for IO space 306 */ 307 void 308 i_ddi_io_rep_put8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, uint8_t *dev_addr, 309 size_t repcount, uint_t flags); 310 311 void 312 i_ddi_io_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 313 uint16_t *dev_addr, size_t repcount, uint_t flags); 314 315 void 316 i_ddi_io_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, uint32_t *dev_addr, 317 size_t repcount, uint_t flags); 318 319 void 320 i_ddi_io_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr, uint64_t *dev_addr, 321 size_t repcount, uint_t flags); 322 void 323 i_ddi_io_swap_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 324 uint16_t *dev_addr, size_t repcount, uint_t flags); 325 326 void 327 i_ddi_io_swap_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, 328 uint32_t *dev_addr, size_t repcount, uint_t flags); 329 330 /* 331 * repeat for protected mode accesses 332 */ 333 334 /* 335 * Input functions to memory mapped IO 336 */ 337 uint8_t 338 i_ddi_prot_vaddr_get8(ddi_acc_impl_t *hdlp, uint8_t *addr); 339 340 uint16_t 341 i_ddi_prot_vaddr_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 342 343 uint32_t 344 i_ddi_prot_vaddr_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 345 346 uint64_t 347 i_ddi_prot_vaddr_get64(ddi_acc_impl_t *hdlp, uint64_t *addr); 348 349 uint16_t 350 i_ddi_prot_vaddr_swap_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 351 352 uint32_t 353 i_ddi_prot_vaddr_swap_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 354 355 uint64_t 356 i_ddi_prot_vaddr_swap_get64(ddi_acc_impl_t *hdlp, uint64_t *addr); 357 358 /* 359 * Output functions to memory mapped IO 360 */ 361 void 362 i_ddi_prot_vaddr_put8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value); 363 364 void 365 i_ddi_prot_vaddr_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value); 366 367 void 368 i_ddi_prot_vaddr_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value); 369 370 void 371 i_ddi_prot_vaddr_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value); 372 373 void 374 i_ddi_prot_vaddr_swap_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, 375 uint16_t value); 376 377 void 378 i_ddi_prot_vaddr_swap_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, 379 uint32_t value); 380 381 void 382 i_ddi_prot_vaddr_swap_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, 383 uint64_t value); 384 385 /* 386 * Repeated input functions for memory mapped IO 387 */ 388 void 389 i_ddi_prot_vaddr_rep_get8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, 390 uint8_t *dev_addr, size_t repcount, uint_t flags); 391 392 void 393 i_ddi_prot_vaddr_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 394 uint16_t *dev_addr, size_t repcount, uint_t flags); 395 396 void 397 i_ddi_prot_vaddr_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 398 uint32_t *dev_addr, size_t repcount, uint_t flags); 399 400 void 401 i_ddi_prot_vaddr_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr, 402 uint64_t *dev_addr, size_t repcount, uint_t flags); 403 404 void 405 i_ddi_prot_vaddr_swap_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 406 uint16_t *dev_addr, size_t repcount, uint_t flags); 407 408 void 409 i_ddi_prot_vaddr_swap_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 410 uint32_t *dev_addr, size_t repcount, uint_t flags); 411 412 void 413 i_ddi_prot_vaddr_swap_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr, 414 uint64_t *dev_addr, size_t repcount, uint_t flags); 415 416 /* 417 * Repeated output functions for memory mapped IO 418 */ 419 void 420 i_ddi_prot_vaddr_rep_put8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, 421 uint8_t *dev_addr, size_t repcount, uint_t flags); 422 423 void 424 i_ddi_prot_vaddr_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 425 uint16_t *dev_addr, size_t repcount, uint_t flags); 426 427 void 428 i_ddi_prot_vaddr_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, 429 uint32_t *dev_addr, size_t repcount, uint_t flags); 430 431 void 432 i_ddi_prot_vaddr_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr, 433 uint64_t *dev_addr, size_t repcount, uint_t flags); 434 435 void 436 i_ddi_prot_vaddr_swap_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 437 uint16_t *dev_addr, size_t repcount, uint_t flags); 438 439 void 440 i_ddi_prot_vaddr_swap_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, 441 uint32_t *dev_addr, size_t repcount, uint_t flags); 442 443 void 444 i_ddi_prot_vaddr_swap_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr, 445 uint64_t *dev_addr, size_t repcount, uint_t flags); 446 447 /* 448 * Input functions to IO space 449 */ 450 uint8_t 451 i_ddi_prot_io_get8(ddi_acc_impl_t *hdlp, uint8_t *addr); 452 453 uint16_t 454 i_ddi_prot_io_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 455 456 uint32_t 457 i_ddi_prot_io_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 458 459 uint16_t 460 i_ddi_prot_io_swap_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 461 462 uint32_t 463 i_ddi_prot_io_swap_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 464 465 /* 466 * Output functions to IO space 467 */ 468 void 469 i_ddi_prot_io_put8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value); 470 471 void 472 i_ddi_prot_io_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value); 473 474 void 475 i_ddi_prot_io_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value); 476 477 void 478 i_ddi_prot_io_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value); 479 480 void 481 i_ddi_prot_io_swap_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value); 482 483 void 484 i_ddi_prot_io_swap_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value); 485 486 /* 487 * Repeated input functions for IO space 488 */ 489 void 490 i_ddi_prot_io_rep_get8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, 491 uint8_t *dev_addr, size_t repcount, uint_t flags); 492 493 void 494 i_ddi_prot_io_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 495 uint16_t *dev_addr, size_t repcount, uint_t flags); 496 497 void 498 i_ddi_prot_io_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 499 uint32_t *dev_addr, size_t repcount, uint_t flags); 500 501 void 502 i_ddi_prot_io_swap_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 503 uint16_t *dev_addr, size_t repcount, uint_t flags); 504 505 void 506 i_ddi_prot_io_swap_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 507 uint32_t *dev_addr, size_t repcount, uint_t flags); 508 509 /* 510 * Repeated output functions for IO space 511 */ 512 void 513 i_ddi_prot_io_rep_put8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, 514 uint8_t *dev_addr, size_t repcount, uint_t flags); 515 516 void 517 i_ddi_prot_io_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 518 uint16_t *dev_addr, size_t repcount, uint_t flags); 519 520 void 521 i_ddi_prot_io_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, 522 uint32_t *dev_addr, size_t repcount, uint_t flags); 523 524 void 525 i_ddi_prot_io_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr, 526 uint64_t *dev_addr, size_t repcount, uint_t flags); 527 void 528 i_ddi_prot_io_swap_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 529 uint16_t *dev_addr, size_t repcount, uint_t flags); 530 531 void 532 i_ddi_prot_io_swap_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, 533 uint32_t *dev_addr, size_t repcount, uint_t flags); 534 535 /* 536 * Default fault-checking and notification functions 537 */ 538 int 539 i_ddi_acc_fault_check(ddi_acc_impl_t *hdlp); 540 541 void 542 i_ddi_acc_fault_notify(ddi_acc_impl_t *hdlp); 543 544 /* DDI Fault Services functions */ 545 void i_ddi_caut_get(size_t size, void *addr, void *val); 546 547 uint8_t i_ddi_caut_get8(ddi_acc_impl_t *hdlp, uint8_t *addr); 548 uint16_t i_ddi_caut_get16(ddi_acc_impl_t *hdlp, uint16_t *addr); 549 uint32_t i_ddi_caut_get32(ddi_acc_impl_t *hdlp, uint32_t *addr); 550 uint64_t i_ddi_caut_get64(ddi_acc_impl_t *hdlp, uint64_t *addr); 551 552 void i_ddi_caut_put8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value); 553 void i_ddi_caut_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value); 554 void i_ddi_caut_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value); 555 void i_ddi_caut_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value); 556 557 void i_ddi_caut_rep_get8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, 558 uint8_t *dev_addr, size_t repcount, uint_t flags); 559 void i_ddi_caut_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 560 uint16_t *dev_addr, size_t repcount, uint_t flags); 561 void i_ddi_caut_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr, 562 uint32_t *dev_addr, size_t repcount, uint_t flags); 563 void i_ddi_caut_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr, 564 uint64_t *dev_addr, size_t repcount, uint_t flags); 565 566 void i_ddi_caut_rep_put8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, 567 uint8_t *dev_addr, size_t repcount, uint_t flags); 568 void i_ddi_caut_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr, 569 uint16_t *dev_addr, size_t repcount, uint_t flags); 570 void i_ddi_caut_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, 571 uint32_t *dev_addr, size_t repcount, uint_t flags); 572 void i_ddi_caut_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr, 573 uint64_t *dev_addr, size_t repcount, uint_t flags); 574 575 boolean_t i_ddi_copybuf_required(ddi_dma_attr_t *attrp); 576 size_t i_ddi_copybuf_size(); 577 uint32_t i_ddi_dma_max(dev_info_t *dip, ddi_dma_attr_t *attrp); 578 579 /* handles case of running on top of hypervisor */ 580 pfn_t i_ddi_paddr_to_pfn(paddr_t paddr); 581 582 #endif /* __STDC__ */ 583 584 #endif /* _KERNEL */ 585 586 #ifdef __cplusplus 587 } 588 #endif 589 590 #endif /* _SYS_DDI_ISA_H */ 591