2 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
3 * Use is subject to license terms.
6 #ifndef _SYS_DDI_OBSOLETE_H
7 #define _SYS_DDI_OBSOLETE_H
10 * Obsoleted DDI Interfaces
13 #include <sys/types.h>
14 #include <sys/dditypes.h>
15 #include <sys/sunldi.h>
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.
28 int ddi_iomin(dev_info_t
*dip
, int initial
, int streaming
);
33 extern long strtol(const char *, char **, int);
34 extern unsigned long strtoul(const char *, char **, int);
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
,
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
,
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
,
62 void ddi_dmalim_merge(ddi_dma_lim_t
*limit
, ddi_dma_lim_t
*modifier
);
65 int ddi_dma_movwin(ddi_dma_handle_t
, off_t
*offp
, size_t *lenp
,
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
);
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
);
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
);
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
);
115 /* only support older interfaces on 32-bit systems */
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
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
);
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
);
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
);
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
);
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
);
205 #endif /* not _DDI_STRICT */
211 #endif /* _SYS_DDI_OBSOLETE_H */