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.
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.
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]
22 * Copyright 2010 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
26 #ifndef _SYS_DDI_ISA_H
27 #define _SYS_DDI_ISA_H
29 #include <sys/isa_defs.h>
30 #include <sys/dditypes.h>
31 #include <sys/ndifm.h>
33 #include <sys/ddi_obsolete.h>
43 * These are the data access functions which the platform
44 * can choose to define as functions or macro's.
48 * DDI interfaces defined as macro's
52 * DDI interfaces defined as functions
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
65 typedef struct ddi_acc_impl
{
66 ddi_acc_hdl_t ahi_common
;
68 ulong_t ahi_io_port_base
;
71 (*ahi_get8
)(struct ddi_acc_impl
*handle
, uint8_t *addr
);
73 (*ahi_get16
)(struct ddi_acc_impl
*handle
, uint16_t *addr
);
75 (*ahi_get32
)(struct ddi_acc_impl
*handle
, uint32_t *addr
);
77 (*ahi_get64
)(struct ddi_acc_impl
*handle
, uint64_t *addr
);
79 void (*ahi_put8
)(struct ddi_acc_impl
*handle
, uint8_t *addr
,
81 void (*ahi_put16
)(struct ddi_acc_impl
*handle
, uint16_t *addr
,
83 void (*ahi_put32
)(struct ddi_acc_impl
*handle
, uint32_t *addr
,
85 void (*ahi_put64
)(struct ddi_acc_impl
*handle
, uint64_t *addr
,
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
);
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
);
114 int (*ahi_fault_check
)(struct ddi_acc_impl
*handle
);
115 void (*ahi_fault_notify
)(struct ddi_acc_impl
*handle
);
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
;
126 * Input functions to memory mapped IO
129 i_ddi_vaddr_get8(ddi_acc_impl_t
*hdlp
, uint8_t *addr
);
132 i_ddi_vaddr_get16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
);
135 i_ddi_vaddr_get32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
);
138 i_ddi_vaddr_get64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
);
141 i_ddi_vaddr_swap_get16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
);
144 i_ddi_vaddr_swap_get32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
);
147 i_ddi_vaddr_swap_get64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
);
150 * Output functions to memory mapped IO
153 i_ddi_vaddr_put8(ddi_acc_impl_t
*hdlp
, uint8_t *addr
, uint8_t value
);
156 i_ddi_vaddr_put16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
, uint16_t value
);
159 i_ddi_vaddr_put32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
, uint32_t value
);
162 i_ddi_vaddr_put64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
, uint64_t value
);
165 i_ddi_vaddr_swap_put16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
, uint16_t value
);
168 i_ddi_vaddr_swap_put32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
, uint32_t value
);
171 i_ddi_vaddr_swap_put64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
, uint64_t value
);
174 * Repeated input functions for memory mapped IO
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
);
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
);
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
);
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
);
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
);
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
);
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
);
205 * Repeated output functions for memory mapped IO
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
);
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
);
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
);
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
);
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
);
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
);
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
);
236 * Input functions to IO space
239 i_ddi_io_get8(ddi_acc_impl_t
*hdlp
, uint8_t *addr
);
242 i_ddi_io_get16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
);
245 i_ddi_io_get32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
);
248 i_ddi_io_get64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
);
251 i_ddi_io_swap_get16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
);
254 i_ddi_io_swap_get32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
);
257 * Output functions to IO space
260 i_ddi_io_put8(ddi_acc_impl_t
*hdlp
, uint8_t *addr
, uint8_t value
);
263 i_ddi_io_put16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
, uint16_t value
);
266 i_ddi_io_put32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
, uint32_t value
);
269 i_ddi_io_put64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
, uint64_t value
);
272 i_ddi_io_swap_put16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
, uint16_t value
);
275 i_ddi_io_swap_put32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
, uint32_t value
);
278 * Repeated input functions for IO space
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
);
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
);
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
);
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
);
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
);
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
);
305 * Repeated output functions for IO space
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
);
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
);
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
);
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
);
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
);
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
);
331 * repeat for protected mode accesses
335 * Input functions to memory mapped IO
338 i_ddi_prot_vaddr_get8(ddi_acc_impl_t
*hdlp
, uint8_t *addr
);
341 i_ddi_prot_vaddr_get16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
);
344 i_ddi_prot_vaddr_get32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
);
347 i_ddi_prot_vaddr_get64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
);
350 i_ddi_prot_vaddr_swap_get16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
);
353 i_ddi_prot_vaddr_swap_get32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
);
356 i_ddi_prot_vaddr_swap_get64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
);
359 * Output functions to memory mapped IO
362 i_ddi_prot_vaddr_put8(ddi_acc_impl_t
*hdlp
, uint8_t *addr
, uint8_t value
);
365 i_ddi_prot_vaddr_put16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
, uint16_t value
);
368 i_ddi_prot_vaddr_put32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
, uint32_t value
);
371 i_ddi_prot_vaddr_put64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
, uint64_t value
);
374 i_ddi_prot_vaddr_swap_put16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
,
378 i_ddi_prot_vaddr_swap_put32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
,
382 i_ddi_prot_vaddr_swap_put64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
,
386 * Repeated input functions for memory mapped IO
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
);
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
);
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
);
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
);
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
);
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
);
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
);
417 * Repeated output functions for memory mapped IO
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
);
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
);
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
);
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
);
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
);
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
);
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
);
448 * Input functions to IO space
451 i_ddi_prot_io_get8(ddi_acc_impl_t
*hdlp
, uint8_t *addr
);
454 i_ddi_prot_io_get16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
);
457 i_ddi_prot_io_get32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
);
460 i_ddi_prot_io_swap_get16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
);
463 i_ddi_prot_io_swap_get32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
);
466 * Output functions to IO space
469 i_ddi_prot_io_put8(ddi_acc_impl_t
*hdlp
, uint8_t *addr
, uint8_t value
);
472 i_ddi_prot_io_put16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
, uint16_t value
);
475 i_ddi_prot_io_put32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
, uint32_t value
);
478 i_ddi_prot_io_put64(ddi_acc_impl_t
*hdlp
, uint64_t *addr
, uint64_t value
);
481 i_ddi_prot_io_swap_put16(ddi_acc_impl_t
*hdlp
, uint16_t *addr
, uint16_t value
);
484 i_ddi_prot_io_swap_put32(ddi_acc_impl_t
*hdlp
, uint32_t *addr
, uint32_t value
);
487 * Repeated input functions for IO space
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
);
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
);
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
);
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
);
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
);
510 * Repeated output functions for IO space
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
);
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
);
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
);
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
);
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
);
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
);
536 * Default fault-checking and notification functions
539 i_ddi_acc_fault_check(ddi_acc_impl_t
*hdlp
);
542 i_ddi_acc_fault_notify(ddi_acc_impl_t
*hdlp
);
544 /* DDI Fault Services functions */
545 void i_ddi_caut_get(size_t size
, void *addr
, void *val
);
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
);
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
);
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
);
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
);
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
);
579 /* handles case of running on top of hypervisor */
580 pfn_t
i_ddi_paddr_to_pfn(paddr_t paddr
);
582 #endif /* __STDC__ */
590 #endif /* _SYS_DDI_ISA_H */