xref: /onnv-gate/usr/src/uts/intel/sys/ddi_isa.h (revision 5251:aad4f9e16063)
10Sstevel@tonic-gate /*
20Sstevel@tonic-gate  * CDDL HEADER START
30Sstevel@tonic-gate  *
40Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
51106Smrj  * Common Development and Distribution License (the "License").
61106Smrj  * You may not use this file except in compliance with the License.
70Sstevel@tonic-gate  *
80Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
90Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
100Sstevel@tonic-gate  * See the License for the specific language governing permissions
110Sstevel@tonic-gate  * and limitations under the License.
120Sstevel@tonic-gate  *
130Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
140Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
150Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
160Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
170Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
180Sstevel@tonic-gate  *
190Sstevel@tonic-gate  * CDDL HEADER END
200Sstevel@tonic-gate  */
210Sstevel@tonic-gate /*
22*5251Smrj  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
230Sstevel@tonic-gate  * Use is subject to license terms.
240Sstevel@tonic-gate  */
250Sstevel@tonic-gate 
260Sstevel@tonic-gate #ifndef	_SYS_DDI_ISA_H
270Sstevel@tonic-gate #define	_SYS_DDI_ISA_H
280Sstevel@tonic-gate 
290Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
300Sstevel@tonic-gate 
310Sstevel@tonic-gate #include <sys/isa_defs.h>
320Sstevel@tonic-gate #include <sys/dditypes.h>
330Sstevel@tonic-gate #include <sys/ndifm.h>
341106Smrj #ifdef	_KERNEL
351106Smrj #include <sys/ddi_obsolete.h>
361106Smrj #endif
370Sstevel@tonic-gate 
380Sstevel@tonic-gate #ifdef	__cplusplus
390Sstevel@tonic-gate extern "C" {
400Sstevel@tonic-gate #endif
410Sstevel@tonic-gate 
420Sstevel@tonic-gate #ifdef	_KERNEL
430Sstevel@tonic-gate 
440Sstevel@tonic-gate /*
450Sstevel@tonic-gate  * These are the data access functions which the platform
460Sstevel@tonic-gate  * can choose to define as functions or macro's.
470Sstevel@tonic-gate  */
480Sstevel@tonic-gate 
490Sstevel@tonic-gate /*
500Sstevel@tonic-gate  * DDI interfaces defined as macro's
510Sstevel@tonic-gate  */
520Sstevel@tonic-gate 
530Sstevel@tonic-gate /*
540Sstevel@tonic-gate  * DDI interfaces defined as functions
550Sstevel@tonic-gate  */
560Sstevel@tonic-gate 
570Sstevel@tonic-gate #ifdef	__STDC__
580Sstevel@tonic-gate 
590Sstevel@tonic-gate /*
600Sstevel@tonic-gate  * ahi_acc_attr flags
610Sstevel@tonic-gate  */
620Sstevel@tonic-gate #define	DDI_ACCATTR_CONFIG_SPACE	0x1
630Sstevel@tonic-gate #define	DDI_ACCATTR_IO_SPACE		0x2
640Sstevel@tonic-gate #define	DDI_ACCATTR_CPU_VADDR		0x4
650Sstevel@tonic-gate #define	DDI_ACCATTR_DIRECT		0x8
660Sstevel@tonic-gate 
670Sstevel@tonic-gate typedef struct ddi_acc_impl {
680Sstevel@tonic-gate 	ddi_acc_hdl_t	ahi_common;
690Sstevel@tonic-gate 	uint_t		ahi_acc_attr;
700Sstevel@tonic-gate 	ulong_t		ahi_io_port_base;
710Sstevel@tonic-gate 
720Sstevel@tonic-gate 	uint8_t
730Sstevel@tonic-gate 		(*ahi_get8)(struct ddi_acc_impl *handle, uint8_t *addr);
740Sstevel@tonic-gate 	uint16_t
750Sstevel@tonic-gate 		(*ahi_get16)(struct ddi_acc_impl *handle, uint16_t *addr);
760Sstevel@tonic-gate 	uint32_t
770Sstevel@tonic-gate 		(*ahi_get32)(struct ddi_acc_impl *handle, uint32_t *addr);
780Sstevel@tonic-gate 	uint64_t
790Sstevel@tonic-gate 		(*ahi_get64)(struct ddi_acc_impl *handle, uint64_t *addr);
800Sstevel@tonic-gate 
810Sstevel@tonic-gate 	void	(*ahi_put8)(struct ddi_acc_impl *handle, uint8_t *addr,
820Sstevel@tonic-gate 			uint8_t value);
830Sstevel@tonic-gate 	void	(*ahi_put16)(struct ddi_acc_impl *handle, uint16_t *addr,
840Sstevel@tonic-gate 			uint16_t value);
850Sstevel@tonic-gate 	void	(*ahi_put32)(struct ddi_acc_impl *handle, uint32_t *addr,
860Sstevel@tonic-gate 			uint32_t value);
870Sstevel@tonic-gate 	void	(*ahi_put64)(struct ddi_acc_impl *handle, uint64_t *addr,
880Sstevel@tonic-gate 			uint64_t value);
890Sstevel@tonic-gate 
900Sstevel@tonic-gate 	void	(*ahi_rep_get8)(struct ddi_acc_impl *handle,
910Sstevel@tonic-gate 			uint8_t *host_addr, uint8_t *dev_addr,
920Sstevel@tonic-gate 			size_t repcount, uint_t flags);
930Sstevel@tonic-gate 	void	(*ahi_rep_get16)(struct ddi_acc_impl *handle,
940Sstevel@tonic-gate 			uint16_t *host_addr, uint16_t *dev_addr,
950Sstevel@tonic-gate 			size_t repcount, uint_t flags);
960Sstevel@tonic-gate 	void	(*ahi_rep_get32)(struct ddi_acc_impl *handle,
970Sstevel@tonic-gate 			uint32_t *host_addr, uint32_t *dev_addr,
980Sstevel@tonic-gate 			size_t repcount, uint_t flags);
990Sstevel@tonic-gate 	void	(*ahi_rep_get64)(struct ddi_acc_impl *handle,
1000Sstevel@tonic-gate 			uint64_t *host_addr, uint64_t *dev_addr,
1010Sstevel@tonic-gate 			size_t repcount, uint_t flags);
1020Sstevel@tonic-gate 
1030Sstevel@tonic-gate 	void	(*ahi_rep_put8)(struct ddi_acc_impl *handle,
1040Sstevel@tonic-gate 			uint8_t *host_addr, uint8_t *dev_addr,
1050Sstevel@tonic-gate 			size_t repcount, uint_t flags);
1060Sstevel@tonic-gate 	void	(*ahi_rep_put16)(struct ddi_acc_impl *handle,
1070Sstevel@tonic-gate 			uint16_t *host_addr, uint16_t *dev_addr,
1080Sstevel@tonic-gate 			size_t repcount, uint_t flags);
1090Sstevel@tonic-gate 	void	(*ahi_rep_put32)(struct ddi_acc_impl *handle,
1100Sstevel@tonic-gate 			uint32_t *host_addr, uint32_t *dev_addr,
1110Sstevel@tonic-gate 			size_t repcount, uint_t flags);
1120Sstevel@tonic-gate 	void	(*ahi_rep_put64)(struct ddi_acc_impl *handle,
1130Sstevel@tonic-gate 			uint64_t *host_addr, uint64_t *dev_addr,
1140Sstevel@tonic-gate 			size_t repcount, uint_t flags);
1150Sstevel@tonic-gate 
1160Sstevel@tonic-gate 	int	(*ahi_fault_check)(struct ddi_acc_impl *handle);
1170Sstevel@tonic-gate 	void	(*ahi_fault_notify)(struct ddi_acc_impl *handle);
1180Sstevel@tonic-gate 	uint32_t	ahi_fault;
1190Sstevel@tonic-gate 	ndi_err_t *ahi_err;
1200Sstevel@tonic-gate } ddi_acc_impl_t;
1210Sstevel@tonic-gate 
1220Sstevel@tonic-gate 
1230Sstevel@tonic-gate /*
1240Sstevel@tonic-gate  * Input functions to memory mapped IO
1250Sstevel@tonic-gate  */
1260Sstevel@tonic-gate uint8_t
1270Sstevel@tonic-gate i_ddi_vaddr_get8(ddi_acc_impl_t *hdlp, uint8_t *addr);
1280Sstevel@tonic-gate 
1290Sstevel@tonic-gate uint16_t
1300Sstevel@tonic-gate i_ddi_vaddr_get16(ddi_acc_impl_t *hdlp, uint16_t *addr);
1310Sstevel@tonic-gate 
1320Sstevel@tonic-gate uint32_t
1330Sstevel@tonic-gate i_ddi_vaddr_get32(ddi_acc_impl_t *hdlp, uint32_t *addr);
1340Sstevel@tonic-gate 
1350Sstevel@tonic-gate uint64_t
1360Sstevel@tonic-gate i_ddi_vaddr_get64(ddi_acc_impl_t *hdlp, uint64_t *addr);
1370Sstevel@tonic-gate 
1380Sstevel@tonic-gate uint16_t
1390Sstevel@tonic-gate i_ddi_vaddr_swap_get16(ddi_acc_impl_t *hdlp, uint16_t *addr);
1400Sstevel@tonic-gate 
1410Sstevel@tonic-gate uint32_t
1420Sstevel@tonic-gate i_ddi_vaddr_swap_get32(ddi_acc_impl_t *hdlp, uint32_t *addr);
1430Sstevel@tonic-gate 
1440Sstevel@tonic-gate uint64_t
1450Sstevel@tonic-gate i_ddi_vaddr_swap_get64(ddi_acc_impl_t *hdlp, uint64_t *addr);
1460Sstevel@tonic-gate 
1470Sstevel@tonic-gate /*
1480Sstevel@tonic-gate  * Output functions to memory mapped IO
1490Sstevel@tonic-gate  */
1500Sstevel@tonic-gate void
1510Sstevel@tonic-gate i_ddi_vaddr_put8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value);
1520Sstevel@tonic-gate 
1530Sstevel@tonic-gate void
1540Sstevel@tonic-gate i_ddi_vaddr_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value);
1550Sstevel@tonic-gate 
1560Sstevel@tonic-gate void
1570Sstevel@tonic-gate i_ddi_vaddr_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value);
1580Sstevel@tonic-gate 
1590Sstevel@tonic-gate void
1600Sstevel@tonic-gate i_ddi_vaddr_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value);
1610Sstevel@tonic-gate 
1620Sstevel@tonic-gate void
1630Sstevel@tonic-gate i_ddi_vaddr_swap_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value);
1640Sstevel@tonic-gate 
1650Sstevel@tonic-gate void
1660Sstevel@tonic-gate i_ddi_vaddr_swap_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value);
1670Sstevel@tonic-gate 
1680Sstevel@tonic-gate void
1690Sstevel@tonic-gate i_ddi_vaddr_swap_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value);
1700Sstevel@tonic-gate 
1710Sstevel@tonic-gate /*
1720Sstevel@tonic-gate  * Repeated input functions for memory mapped IO
1730Sstevel@tonic-gate  */
1740Sstevel@tonic-gate void
1750Sstevel@tonic-gate i_ddi_vaddr_rep_get8(ddi_acc_impl_t *hdlp, uint8_t *host_addr,
1760Sstevel@tonic-gate 	uint8_t *dev_addr, size_t repcount, uint_t flags);
1770Sstevel@tonic-gate 
1780Sstevel@tonic-gate void
1790Sstevel@tonic-gate i_ddi_vaddr_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
1800Sstevel@tonic-gate 	uint16_t *dev_addr, size_t repcount, uint_t flags);
1810Sstevel@tonic-gate 
1820Sstevel@tonic-gate void
1830Sstevel@tonic-gate i_ddi_vaddr_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr,
1840Sstevel@tonic-gate 	uint32_t *dev_addr, size_t repcount, uint_t flags);
1850Sstevel@tonic-gate 
1860Sstevel@tonic-gate void
1870Sstevel@tonic-gate i_ddi_vaddr_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr,
1880Sstevel@tonic-gate 	uint64_t *dev_addr, size_t repcount, uint_t flags);
1890Sstevel@tonic-gate 
1900Sstevel@tonic-gate void
1910Sstevel@tonic-gate i_ddi_vaddr_swap_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
1920Sstevel@tonic-gate 	uint16_t *dev_addr, size_t repcount, uint_t flags);
1930Sstevel@tonic-gate 
1940Sstevel@tonic-gate void
1950Sstevel@tonic-gate i_ddi_vaddr_swap_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr,
1960Sstevel@tonic-gate 	uint32_t *dev_addr, size_t repcount, uint_t flags);
1970Sstevel@tonic-gate 
1980Sstevel@tonic-gate void
1990Sstevel@tonic-gate i_ddi_vaddr_swap_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr,
2000Sstevel@tonic-gate 	uint64_t *dev_addr, size_t repcount, uint_t flags);
2010Sstevel@tonic-gate 
2020Sstevel@tonic-gate /*
2030Sstevel@tonic-gate  * Repeated output functions for memory mapped IO
2040Sstevel@tonic-gate  */
2050Sstevel@tonic-gate void
2060Sstevel@tonic-gate i_ddi_vaddr_rep_put8(ddi_acc_impl_t *hdlp, uint8_t *host_addr,
2070Sstevel@tonic-gate 	uint8_t *dev_addr, size_t repcount, uint_t flags);
2080Sstevel@tonic-gate 
2090Sstevel@tonic-gate void
2100Sstevel@tonic-gate i_ddi_vaddr_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
2110Sstevel@tonic-gate 	uint16_t *dev_addr, size_t repcount, uint_t flags);
2120Sstevel@tonic-gate 
2130Sstevel@tonic-gate void
2140Sstevel@tonic-gate i_ddi_vaddr_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr,
2150Sstevel@tonic-gate 	uint32_t *dev_addr, size_t repcount, uint_t flags);
2160Sstevel@tonic-gate 
2170Sstevel@tonic-gate void
2180Sstevel@tonic-gate i_ddi_vaddr_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr,
2190Sstevel@tonic-gate 	uint64_t *dev_addr, size_t repcount, uint_t flags);
2200Sstevel@tonic-gate 
2210Sstevel@tonic-gate void
2220Sstevel@tonic-gate i_ddi_vaddr_swap_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
2230Sstevel@tonic-gate 	uint16_t *dev_addr, size_t repcount, uint_t flags);
2240Sstevel@tonic-gate 
2250Sstevel@tonic-gate void
2260Sstevel@tonic-gate i_ddi_vaddr_swap_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr,
2270Sstevel@tonic-gate 	uint32_t *dev_addr, size_t repcount, uint_t flags);
2280Sstevel@tonic-gate 
2290Sstevel@tonic-gate void
2300Sstevel@tonic-gate i_ddi_vaddr_swap_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr,
2310Sstevel@tonic-gate 	uint64_t *dev_addr, size_t repcount, uint_t flags);
2320Sstevel@tonic-gate 
2330Sstevel@tonic-gate /*
2340Sstevel@tonic-gate  * Input functions to IO space
2350Sstevel@tonic-gate  */
2360Sstevel@tonic-gate uint8_t
2370Sstevel@tonic-gate i_ddi_io_get8(ddi_acc_impl_t *hdlp, uint8_t *addr);
2380Sstevel@tonic-gate 
2390Sstevel@tonic-gate uint16_t
2400Sstevel@tonic-gate i_ddi_io_get16(ddi_acc_impl_t *hdlp, uint16_t *addr);
2410Sstevel@tonic-gate 
2420Sstevel@tonic-gate uint32_t
2430Sstevel@tonic-gate i_ddi_io_get32(ddi_acc_impl_t *hdlp, uint32_t *addr);
2440Sstevel@tonic-gate 
2450Sstevel@tonic-gate uint64_t
2460Sstevel@tonic-gate i_ddi_io_get64(ddi_acc_impl_t *hdlp, uint64_t *addr);
2470Sstevel@tonic-gate 
2480Sstevel@tonic-gate uint16_t
2490Sstevel@tonic-gate i_ddi_io_swap_get16(ddi_acc_impl_t *hdlp, uint16_t *addr);
2500Sstevel@tonic-gate 
2510Sstevel@tonic-gate uint32_t
2520Sstevel@tonic-gate i_ddi_io_swap_get32(ddi_acc_impl_t *hdlp, uint32_t *addr);
2530Sstevel@tonic-gate 
2540Sstevel@tonic-gate /*
2550Sstevel@tonic-gate  * Output functions to IO space
2560Sstevel@tonic-gate  */
2570Sstevel@tonic-gate void
2580Sstevel@tonic-gate i_ddi_io_put8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value);
2590Sstevel@tonic-gate 
2600Sstevel@tonic-gate void
2610Sstevel@tonic-gate i_ddi_io_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value);
2620Sstevel@tonic-gate 
2630Sstevel@tonic-gate void
2640Sstevel@tonic-gate i_ddi_io_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value);
2650Sstevel@tonic-gate 
2660Sstevel@tonic-gate void
2670Sstevel@tonic-gate i_ddi_io_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value);
2680Sstevel@tonic-gate 
2690Sstevel@tonic-gate void
2700Sstevel@tonic-gate i_ddi_io_swap_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value);
2710Sstevel@tonic-gate 
2720Sstevel@tonic-gate void
2730Sstevel@tonic-gate i_ddi_io_swap_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value);
2740Sstevel@tonic-gate 
2750Sstevel@tonic-gate /*
2760Sstevel@tonic-gate  * Repeated input functions for IO space
2770Sstevel@tonic-gate  */
2780Sstevel@tonic-gate void
2790Sstevel@tonic-gate i_ddi_io_rep_get8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, uint8_t *dev_addr,
2800Sstevel@tonic-gate 	size_t repcount, uint_t flags);
2810Sstevel@tonic-gate 
2820Sstevel@tonic-gate void
2830Sstevel@tonic-gate i_ddi_io_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
2840Sstevel@tonic-gate 	uint16_t *dev_addr, size_t repcount, uint_t flags);
2850Sstevel@tonic-gate 
2860Sstevel@tonic-gate void
2870Sstevel@tonic-gate i_ddi_io_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr,
2880Sstevel@tonic-gate 	uint32_t *dev_addr, size_t repcount, uint_t flags);
2890Sstevel@tonic-gate 
2900Sstevel@tonic-gate void
2910Sstevel@tonic-gate i_ddi_io_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr,
2920Sstevel@tonic-gate 	uint64_t *dev_addr, size_t repcount, uint_t flags);
2930Sstevel@tonic-gate 
2940Sstevel@tonic-gate void
2950Sstevel@tonic-gate i_ddi_io_swap_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
2960Sstevel@tonic-gate 	uint16_t *dev_addr, size_t repcount, uint_t flags);
2970Sstevel@tonic-gate 
2980Sstevel@tonic-gate void
2990Sstevel@tonic-gate i_ddi_io_swap_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr,
3000Sstevel@tonic-gate 	uint32_t *dev_addr, size_t repcount, uint_t flags);
3010Sstevel@tonic-gate 
3020Sstevel@tonic-gate /*
3030Sstevel@tonic-gate  * Repeated output functions for IO space
3040Sstevel@tonic-gate  */
3050Sstevel@tonic-gate void
3060Sstevel@tonic-gate i_ddi_io_rep_put8(ddi_acc_impl_t *hdlp, uint8_t *host_addr, uint8_t *dev_addr,
3070Sstevel@tonic-gate 	size_t repcount, uint_t flags);
3080Sstevel@tonic-gate 
3090Sstevel@tonic-gate void
3100Sstevel@tonic-gate i_ddi_io_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
3110Sstevel@tonic-gate 	uint16_t *dev_addr, size_t repcount, uint_t flags);
3120Sstevel@tonic-gate 
3130Sstevel@tonic-gate void
3140Sstevel@tonic-gate i_ddi_io_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr, uint32_t *dev_addr,
3150Sstevel@tonic-gate 	size_t repcount, uint_t flags);
3160Sstevel@tonic-gate 
3170Sstevel@tonic-gate void
3180Sstevel@tonic-gate i_ddi_io_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr, uint64_t *dev_addr,
3190Sstevel@tonic-gate 	size_t repcount, uint_t flags);
3200Sstevel@tonic-gate void
3210Sstevel@tonic-gate i_ddi_io_swap_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
3220Sstevel@tonic-gate 	uint16_t *dev_addr, size_t repcount, uint_t flags);
3230Sstevel@tonic-gate 
3240Sstevel@tonic-gate void
3250Sstevel@tonic-gate i_ddi_io_swap_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr,
3260Sstevel@tonic-gate 	uint32_t *dev_addr, size_t repcount, uint_t flags);
3270Sstevel@tonic-gate 
3280Sstevel@tonic-gate /*
3290Sstevel@tonic-gate  * Default fault-checking and notification functions
3300Sstevel@tonic-gate  */
3310Sstevel@tonic-gate int
3320Sstevel@tonic-gate i_ddi_acc_fault_check(ddi_acc_impl_t *hdlp);
3330Sstevel@tonic-gate 
3340Sstevel@tonic-gate void
3350Sstevel@tonic-gate i_ddi_acc_fault_notify(ddi_acc_impl_t *hdlp);
3360Sstevel@tonic-gate 
3371865Sdilpreet /* DDI Fault Services functions */
3381865Sdilpreet void i_ddi_caut_get(size_t size, void *addr, void *val);
3391865Sdilpreet 
3401865Sdilpreet uint8_t i_ddi_caut_get8(ddi_acc_impl_t *hdlp, uint8_t *addr);
3411865Sdilpreet uint16_t i_ddi_caut_get16(ddi_acc_impl_t *hdlp, uint16_t *addr);
3421865Sdilpreet uint32_t i_ddi_caut_get32(ddi_acc_impl_t *hdlp, uint32_t *addr);
3431865Sdilpreet uint64_t i_ddi_caut_get64(ddi_acc_impl_t *hdlp, uint64_t *addr);
3441865Sdilpreet 
3451865Sdilpreet void i_ddi_caut_put8(ddi_acc_impl_t *hdlp, uint8_t *addr, uint8_t value);
3461865Sdilpreet void i_ddi_caut_put16(ddi_acc_impl_t *hdlp, uint16_t *addr, uint16_t value);
3471865Sdilpreet void i_ddi_caut_put32(ddi_acc_impl_t *hdlp, uint32_t *addr, uint32_t value);
3481865Sdilpreet void i_ddi_caut_put64(ddi_acc_impl_t *hdlp, uint64_t *addr, uint64_t value);
3491865Sdilpreet 
3501865Sdilpreet void i_ddi_caut_rep_get8(ddi_acc_impl_t *hdlp, uint8_t *host_addr,
3511865Sdilpreet     uint8_t *dev_addr, size_t repcount, uint_t flags);
3521865Sdilpreet void i_ddi_caut_rep_get16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
3531865Sdilpreet     uint16_t *dev_addr, size_t repcount, uint_t flags);
3541865Sdilpreet void i_ddi_caut_rep_get32(ddi_acc_impl_t *hdlp, uint32_t *host_addr,
3551865Sdilpreet     uint32_t *dev_addr, size_t repcount, uint_t flags);
3561865Sdilpreet void i_ddi_caut_rep_get64(ddi_acc_impl_t *hdlp, uint64_t *host_addr,
3571865Sdilpreet     uint64_t *dev_addr, size_t repcount, uint_t flags);
3581865Sdilpreet 
3591865Sdilpreet void i_ddi_caut_rep_put8(ddi_acc_impl_t *hdlp, uint8_t *host_addr,
3601865Sdilpreet     uint8_t *dev_addr, size_t repcount, uint_t flags);
3611865Sdilpreet void i_ddi_caut_rep_put16(ddi_acc_impl_t *hdlp, uint16_t *host_addr,
3621865Sdilpreet     uint16_t *dev_addr, size_t repcount, uint_t flags);
3631865Sdilpreet void i_ddi_caut_rep_put32(ddi_acc_impl_t *hdl, uint32_t *host_addr,
3641865Sdilpreet     uint32_t *dev_addr, size_t repcount, uint_t flags);
3651865Sdilpreet void i_ddi_caut_rep_put64(ddi_acc_impl_t *hdl, uint64_t *host_addr,
3661865Sdilpreet     uint64_t *dev_addr, size_t repcount, uint_t flags);
3671865Sdilpreet 
368*5251Smrj boolean_t i_ddi_copybuf_required(ddi_dma_attr_t *attrp);
369*5251Smrj size_t i_ddi_copybuf_size();
370*5251Smrj uint32_t i_ddi_dma_max(dev_info_t *dip, ddi_dma_attr_t *attrp);
371*5251Smrj 
3720Sstevel@tonic-gate #endif	/* __STDC__ */
3730Sstevel@tonic-gate 
3740Sstevel@tonic-gate #endif	/* _KERNEL */
3750Sstevel@tonic-gate 
3760Sstevel@tonic-gate #ifdef	__cplusplus
3770Sstevel@tonic-gate }
3780Sstevel@tonic-gate #endif
3790Sstevel@tonic-gate 
3800Sstevel@tonic-gate #endif	/* _SYS_DDI_ISA_H */
381