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