14ab75253Smrj /*
22ef9abdcSjv  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
34ab75253Smrj  * Use is subject to license terms.
44ab75253Smrj  */
5*cd21e7c5SGarrett D'Amore /*
6*cd21e7c5SGarrett D'Amore  * Copyright 2012 Garrett D'Amore <garrett@damore.org>.  All rights reserved.
7*cd21e7c5SGarrett D'Amore  */
84ab75253Smrj 
94ab75253Smrj #ifndef	_SYS_DDI_OBSOLETE_H
104ab75253Smrj #define	_SYS_DDI_OBSOLETE_H
114ab75253Smrj 
124ab75253Smrj /*
134ab75253Smrj  * Obsoleted DDI Interfaces
144ab75253Smrj  */
154ab75253Smrj 
164ab75253Smrj #include <sys/types.h>
174ab75253Smrj #include <sys/dditypes.h>
1825e8c5aaSvikram #include <sys/sunldi.h>
194ab75253Smrj 
204ab75253Smrj 
214ab75253Smrj #ifdef	__cplusplus
224ab75253Smrj extern "C" {
234ab75253Smrj #endif
244ab75253Smrj 
254ab75253Smrj 
264ab75253Smrj /*
274ab75253Smrj  * The following are intentionally outside of _DDI_STRICT, they are obsolete
284ab75253Smrj  * and shouldn't be used by drivers, but are still used in the consolidation.
294ab75253Smrj  * e.g. DDI implementation.
304ab75253Smrj  */
314ab75253Smrj int ddi_iomin(dev_info_t *dip, int initial, int streaming);
324ab75253Smrj 
334ab75253Smrj 
344ab75253Smrj #ifndef	_DDI_STRICT
354ab75253Smrj 
362ef9abdcSjv extern long strtol(const char *, char **, int);
372ef9abdcSjv extern unsigned long strtoul(const char *, char **, int);
384ab75253Smrj 
39*cd21e7c5SGarrett D'Amore /* we'd really like to remove this; unbundled  nexus drivers might have it */
40*cd21e7c5SGarrett D'Amore int ddi_dma_map(dev_info_t *dip, dev_info_t *rdip,
41*cd21e7c5SGarrett D'Amore     struct ddi_dma_req *dmareqp, ddi_dma_handle_t *handlep);
424ab75253Smrj 
434ab75253Smrj uint8_t ddi_mem_get8(ddi_acc_handle_t handle, uint8_t *host_addr);
444ab75253Smrj uint16_t ddi_mem_get16(ddi_acc_handle_t handle, uint16_t *host_addr);
454ab75253Smrj uint32_t ddi_mem_get32(ddi_acc_handle_t handle, uint32_t *host_addr);
464ab75253Smrj uint64_t ddi_mem_get64(ddi_acc_handle_t handle, uint64_t *host_addr);
474ab75253Smrj void ddi_mem_put8(ddi_acc_handle_t handle, uint8_t *dev_addr, uint8_t value);
484ab75253Smrj void ddi_mem_put16(ddi_acc_handle_t handle, uint16_t *dev_addr, uint16_t value);
494ab75253Smrj void ddi_mem_put32(ddi_acc_handle_t handle, uint32_t *dev_addr, uint32_t value);
504ab75253Smrj void ddi_mem_put64(ddi_acc_handle_t handle, uint64_t *dev_addr, uint64_t value);
514ab75253Smrj 
524ab75253Smrj void ddi_mem_rep_get8(ddi_acc_handle_t handle, uint8_t *host_addr,
534ab75253Smrj     uint8_t *dev_addr, size_t repcount, uint_t flags);
544ab75253Smrj void ddi_mem_rep_get16(ddi_acc_handle_t handle, uint16_t *host_addr,
554ab75253Smrj     uint16_t *dev_addr, size_t repcount, uint_t flags);
564ab75253Smrj void ddi_mem_rep_get32(ddi_acc_handle_t handle, uint32_t *host_addr,
574ab75253Smrj     uint32_t *dev_addr, size_t repcount, uint_t flags);
584ab75253Smrj void ddi_mem_rep_get64(ddi_acc_handle_t handle, uint64_t *host_addr,
594ab75253Smrj     uint64_t *dev_addr, size_t repcount, uint_t flags);
604ab75253Smrj void ddi_mem_rep_put8(ddi_acc_handle_t handle, uint8_t *host_addr,
614ab75253Smrj     uint8_t *dev_addr, size_t repcount, uint_t flags);
624ab75253Smrj void ddi_mem_rep_put16(ddi_acc_handle_t handle, uint16_t *host_addr,
634ab75253Smrj     uint16_t *dev_addr, size_t repcount, uint_t flags);
644ab75253Smrj void ddi_mem_rep_put32(ddi_acc_handle_t handle, uint32_t *host_addr,
654ab75253Smrj     uint32_t *dev_addr, size_t repcount, uint_t flags);
664ab75253Smrj void ddi_mem_rep_put64(ddi_acc_handle_t handle, uint64_t *host_addr,
674ab75253Smrj     uint64_t *dev_addr, size_t repcount, uint_t flags);
684ab75253Smrj 
694ab75253Smrj uint8_t ddi_io_get8(ddi_acc_handle_t handle, uint8_t *dev_addr);
704ab75253Smrj uint16_t ddi_io_get16(ddi_acc_handle_t handle, uint16_t *dev_addr);
714ab75253Smrj uint32_t ddi_io_get32(ddi_acc_handle_t handle, uint32_t *dev_addr);
724ab75253Smrj void ddi_io_put8(ddi_acc_handle_t handle, uint8_t *dev_addr, uint8_t value);
734ab75253Smrj void ddi_io_put16(ddi_acc_handle_t handle, uint16_t *dev_addr, uint16_t value);
744ab75253Smrj void ddi_io_put32(ddi_acc_handle_t handle, uint32_t *dev_addr, uint32_t value);
754ab75253Smrj 
764ab75253Smrj void ddi_io_rep_get8(ddi_acc_handle_t handle,
774ab75253Smrj     uint8_t *host_addr, uint8_t *dev_addr, size_t repcount);
784ab75253Smrj void ddi_io_rep_get16(ddi_acc_handle_t handle,
794ab75253Smrj     uint16_t *host_addr, uint16_t *dev_addr, size_t repcount);
804ab75253Smrj void ddi_io_rep_get32(ddi_acc_handle_t handle,
814ab75253Smrj     uint32_t *host_addr, uint32_t *dev_addr, size_t repcount);
824ab75253Smrj void ddi_io_rep_put8(ddi_acc_handle_t handle,
834ab75253Smrj     uint8_t *host_addr, uint8_t *dev_addr, size_t repcount);
844ab75253Smrj void ddi_io_rep_put16(ddi_acc_handle_t handle,
854ab75253Smrj     uint16_t *host_addr, uint16_t *dev_addr, size_t repcount);
864ab75253Smrj void ddi_io_rep_put32(ddi_acc_handle_t handle,
874ab75253Smrj     uint32_t *host_addr, uint32_t *dev_addr, size_t repcount);
884ab75253Smrj 
894ab75253Smrj /* only support older interfaces on 32-bit systems */
904ab75253Smrj #ifdef _ILP32
914ab75253Smrj #define	ddi_mem_getb		ddi_mem_get8
924ab75253Smrj #define	ddi_mem_getw		ddi_mem_get16
934ab75253Smrj #define	ddi_mem_getl		ddi_mem_get32
944ab75253Smrj #define	ddi_mem_getll		ddi_mem_get64
954ab75253Smrj #define	ddi_mem_rep_getb	ddi_mem_rep_get8
964ab75253Smrj #define	ddi_mem_rep_getw	ddi_mem_rep_get16
974ab75253Smrj #define	ddi_mem_rep_getl	ddi_mem_rep_get32
984ab75253Smrj #define	ddi_mem_rep_getll	ddi_mem_rep_get64
994ab75253Smrj #define	ddi_mem_putb		ddi_mem_put8
1004ab75253Smrj #define	ddi_mem_putw		ddi_mem_put16
1014ab75253Smrj #define	ddi_mem_putl		ddi_mem_put32
1024ab75253Smrj #define	ddi_mem_putll		ddi_mem_put64
1034ab75253Smrj #define	ddi_mem_rep_putb	ddi_mem_rep_put8
1044ab75253Smrj #define	ddi_mem_rep_putw	ddi_mem_rep_put16
1054ab75253Smrj #define	ddi_mem_rep_putl	ddi_mem_rep_put32
1064ab75253Smrj #define	ddi_mem_rep_putll	ddi_mem_rep_put64
1074ab75253Smrj #define	ddi_io_getb		ddi_io_get8
1084ab75253Smrj #define	ddi_io_getw		ddi_io_get16
1094ab75253Smrj #define	ddi_io_getl		ddi_io_get32
1104ab75253Smrj #define	ddi_io_putb		ddi_io_put8
1114ab75253Smrj #define	ddi_io_putw		ddi_io_put16
1124ab75253Smrj #define	ddi_io_putl		ddi_io_put32
1134ab75253Smrj #define	ddi_getb		ddi_get8
1144ab75253Smrj #define	ddi_getw		ddi_get16
1154ab75253Smrj #define	ddi_getl		ddi_get32
1164ab75253Smrj #define	ddi_getll		ddi_get64
1174ab75253Smrj #define	ddi_rep_getb		ddi_rep_get8
1184ab75253Smrj #define	ddi_rep_getw		ddi_rep_get16
1194ab75253Smrj #define	ddi_rep_getl		ddi_rep_get32
1204ab75253Smrj #define	ddi_rep_getll		ddi_rep_get64
1214ab75253Smrj #define	ddi_putb		ddi_put8
1224ab75253Smrj #define	ddi_putw		ddi_put16
1234ab75253Smrj #define	ddi_putl		ddi_put32
1244ab75253Smrj #define	ddi_putll		ddi_put64
1254ab75253Smrj #define	ddi_rep_putb		ddi_rep_put8
1264ab75253Smrj #define	ddi_rep_putw		ddi_rep_put16
1274ab75253Smrj #define	ddi_rep_putl		ddi_rep_put32
1284ab75253Smrj #define	ddi_rep_putll		ddi_rep_put64
1294ab75253Smrj 
1304ab75253Smrj /* These can't be define's since they're not asm routines */
1314ab75253Smrj void ddi_io_rep_getb(ddi_acc_handle_t handle, uint8_t *host_addr,
1324ab75253Smrj     uint8_t *dev_addr, size_t repcount);
1334ab75253Smrj void ddi_io_rep_getw(ddi_acc_handle_t handle, uint16_t *host_addr,
1344ab75253Smrj     uint16_t *dev_addr, size_t repcount);
1354ab75253Smrj void ddi_io_rep_getl(ddi_acc_handle_t handle, uint32_t *host_addr,
1364ab75253Smrj     uint32_t *dev_addr, size_t repcount);
1374ab75253Smrj void ddi_io_rep_putb(ddi_acc_handle_t handle, uint8_t *host_addr,
1384ab75253Smrj     uint8_t *dev_addr, size_t repcount);
1394ab75253Smrj void ddi_io_rep_putw(ddi_acc_handle_t handle, uint16_t *host_addr,
1404ab75253Smrj     uint16_t *dev_addr, size_t repcount);
1414ab75253Smrj void ddi_io_rep_putl(ddi_acc_handle_t handle, uint32_t *host_addr,
1424ab75253Smrj     uint32_t *dev_addr, size_t repcount);
1434ab75253Smrj 
1444ab75253Smrj int ddi_peekc(dev_info_t *dip, int8_t *addr, int8_t *val_p);
1454ab75253Smrj int ddi_peeks(dev_info_t *dip, int16_t *addr, int16_t *val_p);
1464ab75253Smrj int ddi_peekl(dev_info_t *dip, int32_t *addr, int32_t *val_p);
1474ab75253Smrj int ddi_peekd(dev_info_t *dip, int64_t *addr, int64_t *val_p);
1484ab75253Smrj int ddi_pokec(dev_info_t *dip, int8_t *addr, int8_t val);
1494ab75253Smrj int ddi_pokes(dev_info_t *dip, int16_t *addr, int16_t val);
1504ab75253Smrj int ddi_pokel(dev_info_t *dip, int32_t *addr, int32_t val);
1514ab75253Smrj int ddi_poked(dev_info_t *dip, int64_t *addr, int64_t val);
1524ab75253Smrj 
1534ab75253Smrj uint8_t pci_config_getb(ddi_acc_handle_t handle, off_t offset);
1544ab75253Smrj uint16_t pci_config_getw(ddi_acc_handle_t handle, off_t offset);
1554ab75253Smrj uint32_t pci_config_getl(ddi_acc_handle_t handle, off_t offset);
1564ab75253Smrj uint64_t pci_config_getll(ddi_acc_handle_t handle, off_t offset);
1574ab75253Smrj void pci_config_putb(ddi_acc_handle_t handle, off_t offset, uint8_t value);
1584ab75253Smrj void pci_config_putw(ddi_acc_handle_t handle, off_t offset, uint16_t value);
1594ab75253Smrj void pci_config_putl(ddi_acc_handle_t handle, off_t offset, uint32_t value);
1604ab75253Smrj void pci_config_putll(ddi_acc_handle_t handle, off_t offset, uint64_t value);
1614ab75253Smrj 
1624ab75253Smrj extern void repinsb(int port, uint8_t *addr, int count);
1634ab75253Smrj extern void repinsw(int port, uint16_t *addr, int count);
1644ab75253Smrj extern void repinsd(int port, uint32_t *addr, int count);
1654ab75253Smrj extern void repoutsb(int port, uint8_t *addr, int count);
1664ab75253Smrj extern void repoutsw(int port, uint16_t *addr, int count);
1674ab75253Smrj extern void repoutsd(int port, uint32_t *addr, int count);
1684ab75253Smrj #endif
1694ab75253Smrj 
17025e8c5aaSvikram /* Obsolete LDI event interfaces */
17125e8c5aaSvikram extern int ldi_get_eventcookie(ldi_handle_t, char *,
17225e8c5aaSvikram     ddi_eventcookie_t *);
17325e8c5aaSvikram extern int ldi_add_event_handler(ldi_handle_t, ddi_eventcookie_t,
17425e8c5aaSvikram     void (*handler)(ldi_handle_t, ddi_eventcookie_t, void *, void *),
17525e8c5aaSvikram     void *, ldi_callback_id_t *);
17625e8c5aaSvikram extern int ldi_remove_event_handler(ldi_handle_t, ldi_callback_id_t);
17725e8c5aaSvikram 
17825e8c5aaSvikram 
1794ab75253Smrj #endif /* not _DDI_STRICT */
1804ab75253Smrj 
1814ab75253Smrj #ifdef	__cplusplus
1824ab75253Smrj }
1834ab75253Smrj #endif
1844ab75253Smrj 
1854ab75253Smrj #endif	/* _SYS_DDI_OBSOLETE_H */
186