Home | History | Annotate | Download | only in sys
      1 /*
      2  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
      3  * Use is subject to license terms.
      4  */
      5 
      6 #ifndef	_SYS_DDI_OBSOLETE_H
      7 #define	_SYS_DDI_OBSOLETE_H
      8 
      9 /*
     10  * Obsoleted DDI Interfaces
     11  */
     12 
     13 #include <sys/types.h>
     14 #include <sys/dditypes.h>
     15 #include <sys/sunldi.h>
     16 
     17 
     18 #ifdef	__cplusplus
     19 extern "C" {
     20 #endif
     21 
     22 
     23 /*
     24  * The following are intentionally outside of _DDI_STRICT, they are obsolete
     25  * and shouldn't be used by drivers, but are still used in the consolidation.
     26  * e.g. DDI implementation.
     27  */
     28 int ddi_iomin(dev_info_t *dip, int initial, int streaming);
     29 
     30 
     31 #ifndef	_DDI_STRICT
     32 
     33 extern long strtol(const char *, char **, int);
     34 extern unsigned long strtoul(const char *, char **, int);
     35 
     36 int ddi_dma_setup(dev_info_t *dip, struct ddi_dma_req *dmareqp,
     37     ddi_dma_handle_t *handlep);
     38 int ddi_dma_addr_setup(dev_info_t *dip, struct as *as, caddr_t addr, size_t len,
     39     uint_t flags, int (*waitfp)(), caddr_t arg, ddi_dma_lim_t *limits,
     40     ddi_dma_handle_t *handlep);
     41 int ddi_dma_buf_setup(dev_info_t *dip, struct buf *bp, uint_t flags,
     42     int (*waitfp)(), caddr_t arg, ddi_dma_lim_t *limits,
     43     ddi_dma_handle_t *handlep);
     44 int ddi_dma_kvaddrp(ddi_dma_handle_t, off_t, size_t, caddr_t *);
     45 int ddi_dma_htoc(ddi_dma_handle_t handle, off_t off, ddi_dma_cookie_t *cookiep);
     46 int ddi_dma_coff(ddi_dma_handle_t handle, ddi_dma_cookie_t *cookiep,
     47     off_t *offp);
     48 int ddi_dma_curwin(ddi_dma_handle_t handle, off_t *offp, size_t *lenp);
     49 int ddi_dma_nextwin(ddi_dma_handle_t, ddi_dma_win_t, ddi_dma_win_t *);
     50 int ddi_dma_nextseg(ddi_dma_win_t, ddi_dma_seg_t, ddi_dma_seg_t *);
     51 int ddi_dma_segtocookie(ddi_dma_seg_t, off_t *, off_t *, ddi_dma_cookie_t *);
     52 int ddi_dma_free(ddi_dma_handle_t handle);
     53 int ddi_iopb_alloc(dev_info_t *dip, ddi_dma_lim_t *limits, uint_t length,
     54     caddr_t *iopbp);
     55 void ddi_iopb_free(caddr_t iopb);
     56 int ddi_mem_alloc(dev_info_t *dip, ddi_dma_lim_t *limits, uint_t length,
     57     uint_t flags, caddr_t *kaddrp, uint_t *real_length);
     58 void ddi_mem_free(caddr_t kaddr);
     59 int ddi_dma_get_attr(ddi_dma_handle_t handle, ddi_dma_attr_t *attrp);
     60 int ddi_dma_devalign(ddi_dma_handle_t handle, uint_t *alignment,
     61     uint_t *mineffect);
     62 void ddi_dmalim_merge(ddi_dma_lim_t *limit, ddi_dma_lim_t *modifier);
     63 
     64 #if defined(__sparc)
     65 int ddi_dma_movwin(ddi_dma_handle_t, off_t *offp, size_t *lenp,
     66     ddi_dma_cookie_t *);
     67 #endif
     68 
     69 uint8_t ddi_mem_get8(ddi_acc_handle_t handle, uint8_t *host_addr);
     70 uint16_t ddi_mem_get16(ddi_acc_handle_t handle, uint16_t *host_addr);
     71 uint32_t ddi_mem_get32(ddi_acc_handle_t handle, uint32_t *host_addr);
     72 uint64_t ddi_mem_get64(ddi_acc_handle_t handle, uint64_t *host_addr);
     73 void ddi_mem_put8(ddi_acc_handle_t handle, uint8_t *dev_addr, uint8_t value);
     74 void ddi_mem_put16(ddi_acc_handle_t handle, uint16_t *dev_addr, uint16_t value);
     75 void ddi_mem_put32(ddi_acc_handle_t handle, uint32_t *dev_addr, uint32_t value);
     76 void ddi_mem_put64(ddi_acc_handle_t handle, uint64_t *dev_addr, uint64_t value);
     77 
     78 void ddi_mem_rep_get8(ddi_acc_handle_t handle, uint8_t *host_addr,
     79     uint8_t *dev_addr, size_t repcount, uint_t flags);
     80 void ddi_mem_rep_get16(ddi_acc_handle_t handle, uint16_t *host_addr,
     81     uint16_t *dev_addr, size_t repcount, uint_t flags);
     82 void ddi_mem_rep_get32(ddi_acc_handle_t handle, uint32_t *host_addr,
     83     uint32_t *dev_addr, size_t repcount, uint_t flags);
     84 void ddi_mem_rep_get64(ddi_acc_handle_t handle, uint64_t *host_addr,
     85     uint64_t *dev_addr, size_t repcount, uint_t flags);
     86 void ddi_mem_rep_put8(ddi_acc_handle_t handle, uint8_t *host_addr,
     87     uint8_t *dev_addr, size_t repcount, uint_t flags);
     88 void ddi_mem_rep_put16(ddi_acc_handle_t handle, uint16_t *host_addr,
     89     uint16_t *dev_addr, size_t repcount, uint_t flags);
     90 void ddi_mem_rep_put32(ddi_acc_handle_t handle, uint32_t *host_addr,
     91     uint32_t *dev_addr, size_t repcount, uint_t flags);
     92 void ddi_mem_rep_put64(ddi_acc_handle_t handle, uint64_t *host_addr,
     93     uint64_t *dev_addr, size_t repcount, uint_t flags);
     94 
     95 uint8_t ddi_io_get8(ddi_acc_handle_t handle, uint8_t *dev_addr);
     96 uint16_t ddi_io_get16(ddi_acc_handle_t handle, uint16_t *dev_addr);
     97 uint32_t ddi_io_get32(ddi_acc_handle_t handle, uint32_t *dev_addr);
     98 void ddi_io_put8(ddi_acc_handle_t handle, uint8_t *dev_addr, uint8_t value);
     99 void ddi_io_put16(ddi_acc_handle_t handle, uint16_t *dev_addr, uint16_t value);
    100 void ddi_io_put32(ddi_acc_handle_t handle, uint32_t *dev_addr, uint32_t value);
    101 
    102 void ddi_io_rep_get8(ddi_acc_handle_t handle,
    103     uint8_t *host_addr, uint8_t *dev_addr, size_t repcount);
    104 void ddi_io_rep_get16(ddi_acc_handle_t handle,
    105     uint16_t *host_addr, uint16_t *dev_addr, size_t repcount);
    106 void ddi_io_rep_get32(ddi_acc_handle_t handle,
    107     uint32_t *host_addr, uint32_t *dev_addr, size_t repcount);
    108 void ddi_io_rep_put8(ddi_acc_handle_t handle,
    109     uint8_t *host_addr, uint8_t *dev_addr, size_t repcount);
    110 void ddi_io_rep_put16(ddi_acc_handle_t handle,
    111     uint16_t *host_addr, uint16_t *dev_addr, size_t repcount);
    112 void ddi_io_rep_put32(ddi_acc_handle_t handle,
    113     uint32_t *host_addr, uint32_t *dev_addr, size_t repcount);
    114 
    115 /* only support older interfaces on 32-bit systems */
    116 #ifdef _ILP32
    117 #define	ddi_mem_getb		ddi_mem_get8
    118 #define	ddi_mem_getw		ddi_mem_get16
    119 #define	ddi_mem_getl		ddi_mem_get32
    120 #define	ddi_mem_getll		ddi_mem_get64
    121 #define	ddi_mem_rep_getb	ddi_mem_rep_get8
    122 #define	ddi_mem_rep_getw	ddi_mem_rep_get16
    123 #define	ddi_mem_rep_getl	ddi_mem_rep_get32
    124 #define	ddi_mem_rep_getll	ddi_mem_rep_get64
    125 #define	ddi_mem_putb		ddi_mem_put8
    126 #define	ddi_mem_putw		ddi_mem_put16
    127 #define	ddi_mem_putl		ddi_mem_put32
    128 #define	ddi_mem_putll		ddi_mem_put64
    129 #define	ddi_mem_rep_putb	ddi_mem_rep_put8
    130 #define	ddi_mem_rep_putw	ddi_mem_rep_put16
    131 #define	ddi_mem_rep_putl	ddi_mem_rep_put32
    132 #define	ddi_mem_rep_putll	ddi_mem_rep_put64
    133 #define	ddi_io_getb		ddi_io_get8
    134 #define	ddi_io_getw		ddi_io_get16
    135 #define	ddi_io_getl		ddi_io_get32
    136 #define	ddi_io_putb		ddi_io_put8
    137 #define	ddi_io_putw		ddi_io_put16
    138 #define	ddi_io_putl		ddi_io_put32
    139 #define	ddi_getb		ddi_get8
    140 #define	ddi_getw		ddi_get16
    141 #define	ddi_getl		ddi_get32
    142 #define	ddi_getll		ddi_get64
    143 #define	ddi_rep_getb		ddi_rep_get8
    144 #define	ddi_rep_getw		ddi_rep_get16
    145 #define	ddi_rep_getl		ddi_rep_get32
    146 #define	ddi_rep_getll		ddi_rep_get64
    147 #define	ddi_putb		ddi_put8
    148 #define	ddi_putw		ddi_put16
    149 #define	ddi_putl		ddi_put32
    150 #define	ddi_putll		ddi_put64
    151 #define	ddi_rep_putb		ddi_rep_put8
    152 #define	ddi_rep_putw		ddi_rep_put16
    153 #define	ddi_rep_putl		ddi_rep_put32
    154 #define	ddi_rep_putll		ddi_rep_put64
    155 
    156 /* These can't be define's since they're not asm routines */
    157 void ddi_io_rep_getb(ddi_acc_handle_t handle, uint8_t *host_addr,
    158     uint8_t *dev_addr, size_t repcount);
    159 void ddi_io_rep_getw(ddi_acc_handle_t handle, uint16_t *host_addr,
    160     uint16_t *dev_addr, size_t repcount);
    161 void ddi_io_rep_getl(ddi_acc_handle_t handle, uint32_t *host_addr,
    162     uint32_t *dev_addr, size_t repcount);
    163 void ddi_io_rep_putb(ddi_acc_handle_t handle, uint8_t *host_addr,
    164     uint8_t *dev_addr, size_t repcount);
    165 void ddi_io_rep_putw(ddi_acc_handle_t handle, uint16_t *host_addr,
    166     uint16_t *dev_addr, size_t repcount);
    167 void ddi_io_rep_putl(ddi_acc_handle_t handle, uint32_t *host_addr,
    168     uint32_t *dev_addr, size_t repcount);
    169 
    170 int ddi_peekc(dev_info_t *dip, int8_t *addr, int8_t *val_p);
    171 int ddi_peeks(dev_info_t *dip, int16_t *addr, int16_t *val_p);
    172 int ddi_peekl(dev_info_t *dip, int32_t *addr, int32_t *val_p);
    173 int ddi_peekd(dev_info_t *dip, int64_t *addr, int64_t *val_p);
    174 int ddi_pokec(dev_info_t *dip, int8_t *addr, int8_t val);
    175 int ddi_pokes(dev_info_t *dip, int16_t *addr, int16_t val);
    176 int ddi_pokel(dev_info_t *dip, int32_t *addr, int32_t val);
    177 int ddi_poked(dev_info_t *dip, int64_t *addr, int64_t val);
    178 
    179 uint8_t pci_config_getb(ddi_acc_handle_t handle, off_t offset);
    180 uint16_t pci_config_getw(ddi_acc_handle_t handle, off_t offset);
    181 uint32_t pci_config_getl(ddi_acc_handle_t handle, off_t offset);
    182 uint64_t pci_config_getll(ddi_acc_handle_t handle, off_t offset);
    183 void pci_config_putb(ddi_acc_handle_t handle, off_t offset, uint8_t value);
    184 void pci_config_putw(ddi_acc_handle_t handle, off_t offset, uint16_t value);
    185 void pci_config_putl(ddi_acc_handle_t handle, off_t offset, uint32_t value);
    186 void pci_config_putll(ddi_acc_handle_t handle, off_t offset, uint64_t value);
    187 
    188 extern void repinsb(int port, uint8_t *addr, int count);
    189 extern void repinsw(int port, uint16_t *addr, int count);
    190 extern void repinsd(int port, uint32_t *addr, int count);
    191 extern void repoutsb(int port, uint8_t *addr, int count);
    192 extern void repoutsw(int port, uint16_t *addr, int count);
    193 extern void repoutsd(int port, uint32_t *addr, int count);
    194 #endif
    195 
    196 /* Obsolete LDI event interfaces */
    197 extern int ldi_get_eventcookie(ldi_handle_t, char *,
    198     ddi_eventcookie_t *);
    199 extern int ldi_add_event_handler(ldi_handle_t, ddi_eventcookie_t,
    200     void (*handler)(ldi_handle_t, ddi_eventcookie_t, void *, void *),
    201     void *, ldi_callback_id_t *);
    202 extern int ldi_remove_event_handler(ldi_handle_t, ldi_callback_id_t);
    203 
    204 
    205 #endif /* not _DDI_STRICT */
    206 
    207 #ifdef	__cplusplus
    208 }
    209 #endif
    210 
    211 #endif	/* _SYS_DDI_OBSOLETE_H */
    212