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