1 | /* $NetBSD: netbsd32_ioctl.h,v 1.55 2016/11/12 16:06:04 mlelstv Exp $ */ |
2 | |
3 | /* |
4 | * Copyright (c) 1998, 2001 Matthew R. Green |
5 | * All rights reserved. |
6 | * |
7 | * Redistribution and use in source and binary forms, with or without |
8 | * modification, are permitted provided that the following conditions |
9 | * are met: |
10 | * 1. Redistributions of source code must retain the above copyright |
11 | * notice, this list of conditions and the following disclaimer. |
12 | * 2. Redistributions in binary form must reproduce the above copyright |
13 | * notice, this list of conditions and the following disclaimer in the |
14 | * documentation and/or other materials provided with the distribution. |
15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
17 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
18 | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
19 | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
20 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
21 | * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
23 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
24 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
25 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
26 | * SUCH DAMAGE. |
27 | */ |
28 | |
29 | #include <sys/device.h> |
30 | #include <sys/disklabel.h> |
31 | #include <sys/disk.h> |
32 | |
33 | #include <net/zlib.h> |
34 | |
35 | #include <dev/dkvar.h> |
36 | #include <dev/vndvar.h> |
37 | |
38 | #include <dev/wscons/wsconsio.h> |
39 | #include <net80211/ieee80211_ioctl.h> |
40 | |
41 | /* we define some handy macros here... */ |
42 | #define IOCTL_STRUCT_CONV_TO(cmd, type) \ |
43 | size = IOCPARM_LEN(cmd); \ |
44 | if (size > sizeof(stkbuf)) \ |
45 | data = memp = kmem_alloc(size, KM_SLEEP); \ |
46 | else \ |
47 | data = (void *)stkbuf; \ |
48 | __CONCAT(netbsd32_to_, type)((struct __CONCAT(netbsd32_, type) *) \ |
49 | data32, (struct type *)data, cmd); \ |
50 | error = (*fp->f_ops->fo_ioctl)(fp, cmd, data); \ |
51 | __CONCAT(netbsd32_from_, type)((struct type *)data, \ |
52 | (struct __CONCAT(netbsd32_, type) *)data32, cmd); \ |
53 | break |
54 | |
55 | #define IOCTL_CONV_TO(cmd, type) \ |
56 | size = IOCPARM_LEN(cmd); \ |
57 | if (size > sizeof(stkbuf)) \ |
58 | data = memp = kmem_alloc(size, KM_SLEEP); \ |
59 | else \ |
60 | data = (void *)stkbuf; \ |
61 | __CONCAT(netbsd32_to_, type)((__CONCAT(netbsd32_, type) *) \ |
62 | data32, (type *)data, cmd); \ |
63 | error = (*fp->f_ops->fo_ioctl)(fp, cmd, data); \ |
64 | __CONCAT(netbsd32_from_, type)((type *)data, \ |
65 | (__CONCAT(netbsd32_, type) *)data32, cmd); \ |
66 | break |
67 | |
68 | /* from <sys/audioio.h> */ |
69 | #define AUDIO_WSEEK32 _IOR('A', 25, netbsd32_u_long) |
70 | |
71 | /* from <sys/dkio.h> */ |
72 | typedef netbsd32_pointer_t netbsd32_disklabel_tp_t; |
73 | typedef netbsd32_pointer_t netbsd32_partition_tp_t; |
74 | |
75 | #if 0 /* not implemented by anything */ |
76 | struct netbsd32_format_op { |
77 | netbsd32_charp df_buf; |
78 | int df_count; /* value-result */ |
79 | daddr_t df_startblk; |
80 | int df_reg[8]; /* result */ |
81 | }; |
82 | #define DIOCRFORMAT32 _IOWR('d', 105, struct netbsd32_format_op) |
83 | #define DIOCWFORMAT32 _IOWR('d', 106, struct netbsd32_format_op) |
84 | #endif |
85 | |
86 | /* from <sys/ataio.h> */ |
87 | struct netbsd32_atareq { |
88 | netbsd32_u_long flags; |
89 | u_char command; |
90 | u_char features; |
91 | u_char sec_count; |
92 | u_char sec_num; |
93 | u_char head; |
94 | u_short cylinder; |
95 | netbsd32_voidp databuf; |
96 | netbsd32_u_long datalen; |
97 | int timeout; |
98 | u_char retsts; |
99 | u_char error; |
100 | }; |
101 | #define ATAIOCCOMMAND32 _IOWR('Q', 8, struct netbsd32_atareq) |
102 | |
103 | |
104 | /* from <net/bpf.h> */ |
105 | struct netbsd32_bpf_program { |
106 | u_int bf_len; |
107 | netbsd32_pointer_t bf_insns; |
108 | }; |
109 | |
110 | struct netbsd32_bpf_dltlist { |
111 | u_int bfl_len; |
112 | netbsd32_pointer_t bfl_list; |
113 | }; |
114 | |
115 | #define BIOCSETF32 _IOW('B',103, struct netbsd32_bpf_program) |
116 | #define BIOCSTCPF32 _IOW('B',114, struct netbsd32_bpf_program) |
117 | #define BIOCSUDPF32 _IOW('B',115, struct netbsd32_bpf_program) |
118 | #define BIOCGDLTLIST32 _IOWR('B',119, struct netbsd32_bpf_dltlist) |
119 | |
120 | |
121 | struct netbsd32_wsdisplay_addscreendata { |
122 | int idx; /* screen index */ |
123 | netbsd32_charp screentype; |
124 | netbsd32_charp emul; |
125 | }; |
126 | #define WSDISPLAYIO_ADDSCREEN32 _IOW('W', 78, struct netbsd32_wsdisplay_addscreendata) |
127 | |
128 | /* the first member must be matched with struct ifreq */ |
129 | struct netbsd32_ieee80211req { |
130 | char i_name[IFNAMSIZ]; /* if_name, e.g. "wi0" */ |
131 | uint16_t i_type; /* req type */ |
132 | int16_t i_val; /* Index or simple value */ |
133 | uint16_t i_len; /* Index or simple value */ |
134 | netbsd32_voidp i_data; /* Extra data */ |
135 | }; |
136 | #define SIOCS8021132 _IOW('i', 244, struct netbsd32_ieee80211req) |
137 | #define SIOCG8021132 _IOWR('i', 245, struct netbsd32_ieee80211req) |
138 | |
139 | /* the first member must be matched with struct ifreq */ |
140 | struct netbsd32_ieee80211_nwkey { |
141 | char i_name[IFNAMSIZ]; /* if_name, e.g. "wi0" */ |
142 | int i_wepon; /* wep enabled flag */ |
143 | int i_defkid; /* default encrypt key id */ |
144 | struct { |
145 | int i_keylen; |
146 | netbsd32_charp i_keydat; |
147 | } i_key[IEEE80211_WEP_NKID]; |
148 | }; |
149 | #define SIOCS80211NWKEY32 _IOW('i', 232, struct netbsd32_ieee80211_nwkey) |
150 | #define SIOCG80211NWKEY32 _IOWR('i', 233, struct netbsd32_ieee80211_nwkey) |
151 | |
152 | /* for powerd */ |
153 | #define POWER_EVENT_RECVDICT32 _IOWR('P', 1, struct netbsd32_plistref) |
154 | |
155 | /* Colormap operations. Not applicable to all display types. */ |
156 | struct netbsd32_wsdisplay_cmap { |
157 | u_int index; /* first element (0 origin) */ |
158 | u_int count; /* number of elements */ |
159 | netbsd32_charp red; /* red color map elements */ |
160 | netbsd32_charp green; /* green color map elements */ |
161 | netbsd32_charp blue; /* blue color map elements */ |
162 | }; |
163 | |
164 | #define WSDISPLAYIO_GETCMAP32 _IOW('W', 66, struct netbsd32_wsdisplay_cmap) |
165 | #define WSDISPLAYIO_PUTCMAP32 _IOW('W', 67, struct netbsd32_wsdisplay_cmap) |
166 | |
167 | struct netbsd32_wsdisplay_cursor { |
168 | u_int which; /* values to get/set */ |
169 | u_int enable; /* enable/disable */ |
170 | struct wsdisplay_curpos pos; /* position */ |
171 | struct wsdisplay_curpos hot; /* hot spot */ |
172 | struct netbsd32_wsdisplay_cmap cmap; /* color map info */ |
173 | struct wsdisplay_curpos size; /* bit map size */ |
174 | netbsd32_charp image; /* image data */ |
175 | netbsd32_charp mask; /* mask data */ |
176 | }; |
177 | |
178 | /* Cursor control: get/set cursor attributes/shape */ |
179 | #define WSDISPLAYIO_GCURSOR32 _IOWR('W', 73, struct netbsd32_wsdisplay_cursor) |
180 | #define WSDISPLAYIO_SCURSOR32 _IOW('W', 74, struct netbsd32_wsdisplay_cursor) |
181 | |
182 | /* can wait! */ |
183 | #if 0 |
184 | dev/ccdvar.h:219:#define CCDIOCSET _IOWR('F', 16, struct ccd_ioctl) /* enable ccd */ |
185 | dev/ccdvar.h:220:#define CCDIOCCLR _IOW('F', 17, struct ccd_ioctl) /* disable ccd */ |
186 | |
187 | dev/md.h:45:#define MD_GETCONF _IOR('r', 0, struct md_conf) /* get unit config */ |
188 | dev/md.h:46:#define MD_SETCONF _IOW('r', 1, struct md_conf) /* set unit config */ |
189 | |
190 | dev/wscons/wsconsio.h:133:#define WSKBDIO_GETMAP _IOWR('W', 13, struct wskbd_map_data) |
191 | dev/wscons/wsconsio.h:134:#define WSKBDIO_SETMAP _IOW('W', 14, struct wskbd_map_data) |
192 | |
193 | dev/wscons/wsconsio.h:188:#define WSDISPLAYIO_GETCMAP _IOW('W', 66, struct wsdisplay_cmap) |
194 | dev/wscons/wsconsio.h:189:#define WSDISPLAYIO_PUTCMAP _IOW('W', 67, struct wsdisplay_cmap) |
195 | |
196 | dev/wscons/wsconsio.h:241:#define WSDISPLAYIO_SFONT _IOW('W', 77, struct wsdisplay_font) |
197 | |
198 | net/if_ppp.h:110:#define PPPIOCSPASS _IOW('t', 71, struct bpf_program) /* set pass filter */ |
199 | net/if_ppp.h:111:#define PPPIOCSACTIVE _IOW('t', 70, struct bpf_program) /* set active filt */ |
200 | |
201 | net/if_atm.h:88:#define SIOCATMENA _IOWR('a', 123, struct atm_pseudoioctl) /* enable */ |
202 | net/if_atm.h:89:#define SIOCATMDIS _IOWR('a', 124, struct atm_pseudoioctl) /* disable */ |
203 | |
204 | net/if_ppp.h:105:#define PPPIOCSCOMPRESS _IOW('t', 77, struct ppp_option_data) |
205 | |
206 | netccitt/x25.h:157:#define SIOCSIFCONF_X25 _IOW('i', 12, struct ifreq_x25) /* set ifnet config */ |
207 | netccitt/x25.h:158:#define SIOCGIFCONF_X25 _IOWR('i',13, struct ifreq_x25) /* get ifnet config */ |
208 | |
209 | netinet/ip_fil.h:46:#define SIOCGETFS _IOR('r', 64, struct friostat) |
210 | netinet/ip_fil.h:56:#define SIOCFRZST _IOWR('r', 74, struct friostat) |
211 | |
212 | netinet/ip_fil.h:42:#define SIOCADAFR _IOW('r', 60, struct frentry) |
213 | netinet/ip_fil.h:43:#define SIOCRMAFR _IOW('r', 61, struct frentry) |
214 | netinet/ip_fil.h:49:#define SIOCADIFR _IOW('r', 67, struct frentry) |
215 | netinet/ip_fil.h:50:#define SIOCRMIFR _IOW('r', 68, struct frentry) |
216 | netinet/ip_fil.h:52:#define SIOCINAFR _IOW('r', 70, struct frentry) |
217 | netinet/ip_fil.h:53:#define SIOCINIFR _IOW('r', 71, struct frentry) |
218 | netinet/ip_fil.h:57:#define SIOCZRLST _IOWR('r', 75, struct frentry) |
219 | |
220 | netinet/ip_fil.h:78:#define SIOCAUTHW _IOWR(r, 76, struct fr_info) |
221 | netinet/ip_fil.h:79:#define SIOCAUTHR _IOWR(r, 77, struct fr_info) |
222 | |
223 | netinet/ip_fil.h:60:#define SIOCATHST _IOWR('r', 78, struct fr_authstat) |
224 | |
225 | netinet/ip_nat.h:22:#define SIOCADNAT _IOW('r', 80, struct ipnat) |
226 | netinet/ip_nat.h:23:#define SIOCRMNAT _IOW('r', 81, struct ipnat) |
227 | |
228 | netinet/ip_nat.h:24:#define SIOCGNATS _IOR('r', 82, struct natstat) |
229 | |
230 | netinet/ip_nat.h:25:#define SIOCGNATL _IOWR('r', 83, struct natlookup) |
231 | |
232 | netinet/ip_nat.h:26:#define SIOCGFRST _IOR('r', 84, struct ipfrstat) |
233 | |
234 | netinet/ip_nat.h:27:#define SIOCGIPST _IOR('r', 85, struct ips_stat) |
235 | |
236 | sys/module.h? |
237 | |
238 | sys/rnd.h:186:#define RNDGETPOOL _IOR('R', 103, u_char *) /* get whole pool */ |
239 | |
240 | sys/scanio.h:86:#define SCIOCGET _IOR('S', 1, struct scan_io) /* retrieve parameters */ |
241 | sys/scanio.h:87:#define SCIOCSET _IOW('S', 2, struct scan_io) /* set parameters */ |
242 | |
243 | sys/scsiio.h:43:#define SCIOCCOMMAND _IOWR('Q', 1, scsireq_t) |
244 | #endif |
245 | |
246 | /* from <net/if.h> */ |
247 | |
248 | typedef netbsd32_pointer_t netbsd32_ifreq_tp_t; |
249 | /* |
250 | * note that ifr_data is the only one that needs to be changed |
251 | */ |
252 | struct netbsd32_oifreq { |
253 | char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */ |
254 | union { |
255 | struct sockaddr ifru_addr; |
256 | struct sockaddr ifru_dstaddr; |
257 | struct sockaddr ifru_broadaddr; |
258 | short ifru_flags; |
259 | int ifru_metric; |
260 | int ifru_mtu; |
261 | int ifru_dlt; |
262 | u_int ifru_value; |
263 | netbsd32_caddr_t ifru_data; |
264 | struct { |
265 | uint32_t b_buflen; |
266 | netbsd32_caddr_t b_buf; |
267 | } ifru_b; |
268 | } ifr_ifru; |
269 | #define ifr_addr ifr_ifru.ifru_addr /* address */ |
270 | #define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */ |
271 | #define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */ |
272 | #define ifr_flags ifr_ifru.ifru_flags /* flags */ |
273 | #define ifr_metric ifr_ifru.ifru_metric /* metric */ |
274 | #define ifr_mtu ifr_ifru.ifru_mtu /* mtu */ |
275 | #define ifr_media ifr_ifru.ifru_metric /* media options (overload) */ |
276 | #define ifr_data ifr_ifru.ifru_data /* for use by interface */ |
277 | }; |
278 | struct netbsd32_ifreq { |
279 | char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */ |
280 | union { |
281 | struct sockaddr ifru_addr; |
282 | struct sockaddr ifru_dstaddr; |
283 | struct sockaddr ifru_broadaddr; |
284 | struct sockaddr_storage ifru_space; |
285 | short ifru_flags; |
286 | int ifru_metric; |
287 | int ifru_mtu; |
288 | int ifru_dlt; |
289 | u_int ifru_value; |
290 | netbsd32_caddr_t ifru_data; |
291 | struct { |
292 | uint32_t b_buflen; |
293 | netbsd32_caddr_t b_buf; |
294 | } ifru_b; |
295 | } ifr_ifru; |
296 | }; |
297 | |
298 | struct netbsd32_if_addrprefreq { |
299 | char ifap_name[IFNAMSIZ]; |
300 | uint16_t ifap_preference; |
301 | struct { |
302 | __uint8_t ss_len; /* address length */ |
303 | sa_family_t ss_family; /* address family */ |
304 | char __ss_pad1[_SS_PAD1SIZE]; |
305 | __int32_t __ss_align[2]; |
306 | char __ss_pad2[_SS_PAD2SIZE]; |
307 | } ifap_addr; |
308 | }; |
309 | |
310 | struct netbsd32_if_clonereq { |
311 | int ifcr_total; |
312 | int ifcr_count; |
313 | netbsd32_charp ifcr_buffer; |
314 | }; |
315 | |
316 | /* from <dev/pci/if_devar.h> */ |
317 | #define SIOCGADDRROM32 _IOW('i', 240, struct netbsd32_ifreq) /* get 128 bytes of ROM */ |
318 | #define SIOCGCHIPID32 _IOWR('i', 241, struct netbsd32_ifreq) /* get chipid */ |
319 | /* from <sys/sockio.h> */ |
320 | #define SIOCSIFADDR32 _IOW('i', 12, struct netbsd32_ifreq) /* set ifnet address */ |
321 | #define OSIOCSIFADDR32 _IOW('i', 12, struct netbsd32_oifreq) /* set ifnet address */ |
322 | #define OOSIOCGIFADDR32 _IOWR('i', 13, struct netbsd32_oifreq) /* get ifnet address */ |
323 | |
324 | #define SIOCGIFADDR32 _IOWR('i', 33, struct netbsd32_ifreq) /* get ifnet address */ |
325 | #define OSIOCGIFADDR32 _IOWR('i', 33, struct netbsd32_oifreq) /* get ifnet address */ |
326 | |
327 | #define SIOCSIFDSTADDR32 _IOW('i', 14, struct netbsd32_ifreq) /* set p-p address */ |
328 | #define OSIOCSIFDSTADDR32 _IOW('i', 14, struct netbsd32_oifreq) /* set p-p address */ |
329 | #define OOSIOCGIFDSTADDR32 _IOWR('i', 15, struct netbsd32_oifreq) /* get p-p address */ |
330 | |
331 | #define SIOCGIFDSTADDR32 _IOWR('i', 34, struct netbsd32_ifreq) /* get p-p address */ |
332 | #define OSIOCGIFDSTADDR32 _IOWR('i', 34, struct netbsd32_oifreq) /* get p-p address */ |
333 | |
334 | #define SIOCSIFFLAGS32 _IOW('i', 16, struct netbsd32_ifreq) /* set ifnet flags */ |
335 | #define OSIOCSIFFLAGS32 _IOW('i', 16, struct netbsd32_oifreq) /* set ifnet flags */ |
336 | |
337 | #define SIOCGIFFLAGS32 _IOWR('i', 17, struct netbsd32_ifreq) /* get ifnet flags */ |
338 | #define OSIOCGIFFLAGS32 _IOWR('i', 17, struct netbsd32_oifreq) /* get ifnet flags */ |
339 | |
340 | |
341 | #define SIOCSIFBRDADDR32 _IOW('i', 19, struct netbsd32_ifreq) /* set broadcast addr */ |
342 | #define OSIOCSIFBRDADDR32 _IOW('i', 19, struct netbsd32_oifreq) /* set broadcast addr */ |
343 | #define OOSIOCGIFBRDADDR32 _IOWR('i', 18, struct netbsd32_oifreq) /* get broadcast addr */ |
344 | |
345 | #define SIOCGIFBRDADDR32 _IOWR('i', 35, struct netbsd32_ifreq) /* get broadcast addr */ |
346 | #define OSIOCGIFBRDADDR32 _IOWR('i', 35, struct netbsd32_oifreq) /* get broadcast addr */ |
347 | |
348 | #define OOSIOCGIFNETMASK32 _IOWR('i', 21, struct netbsd32_oifreq) /* get net addr mask */ |
349 | |
350 | #define SIOCGIFNETMASK32 _IOWR('i', 37, struct netbsd32_ifreq) /* get net addr mask */ |
351 | #define OSIOCGIFNETMASK32 _IOWR('i', 37, struct netbsd32_oifreq) /* get net addr mask */ |
352 | |
353 | #define SIOCSIFNETMASK32 _IOW('i', 22, struct netbsd32_ifreq) /* set net addr mask */ |
354 | #define OSIOCSIFNETMASK32 _IOW('i', 22, struct netbsd32_oifreq) /* set net addr mask */ |
355 | |
356 | #define SIOCGIFMETRIC32 _IOWR('i', 23, struct netbsd32_ifreq) /* get IF metric */ |
357 | #define OSIOCGIFMETRIC32 _IOWR('i', 23, struct netbsd32_oifreq) /* get IF metric */ |
358 | |
359 | #define SIOCSIFMETRIC32 _IOW('i', 24, struct netbsd32_ifreq) /* set IF metric */ |
360 | #define OSIOCSIFMETRIC32 _IOW('i', 24, struct netbsd32_oifreq) /* set IF metric */ |
361 | |
362 | #define SIOCDIFADDR32 _IOW('i', 25, struct netbsd32_ifreq) /* delete IF addr */ |
363 | #define OSIOCDIFADDR32 _IOW('i', 25, struct netbsd32_oifreq) /* delete IF addr */ |
364 | |
365 | #define SIOCSIFADDRPREF32 _IOW('i', 31, struct netbsd32_if_addrprefreq) |
366 | #define SIOCGIFADDRPREF32 _IOWR('i', 32, struct netbsd32_if_addrprefreq) |
367 | |
368 | #define SIOCADDMULTI32 _IOW('i', 49, struct netbsd32_ifreq) /* add m'cast addr */ |
369 | #define OSIOCADDMULTI32 _IOW('i', 49, struct netbsd32_oifreq) /* add m'cast addr */ |
370 | |
371 | #define SIOCDELMULTI32 _IOW('i', 50, struct netbsd32_ifreq) /* del m'cast addr */ |
372 | #define OSIOCDELMULTI32 _IOW('i', 50, struct netbsd32_oifreq) /* del m'cast addr */ |
373 | |
374 | #define SIOCSIFMEDIA32 _IOWR('i', 53, struct netbsd32_ifreq) /* set net media */ |
375 | #define OSIOCSIFMEDIA32 _IOWR('i', 53, struct netbsd32_oifreq) /* set net media */ |
376 | |
377 | #define SIOCIFGCLONERS32 _IOWR('i', 120, struct netbsd32_if_clonereq) /* get cloners */ |
378 | |
379 | #define SIOCSIFMTU32 _IOW('i', 127, struct netbsd32_ifreq) /* set ifnet mtu */ |
380 | #define OSIOCSIFMTU32 _IOW('i', 127, struct netbsd32_oifreq) /* set ifnet mtu */ |
381 | |
382 | #define SIOCGIFMTU32 _IOWR('i', 126, struct netbsd32_ifreq) /* get ifnet mtu */ |
383 | #define OSIOCGIFMTU32 _IOWR('i', 126, struct netbsd32_oifreq) /* get ifnet mtu */ |
384 | /* was 125 SIOCSIFASYNCMAP32 */ |
385 | /* was 124 SIOCGIFASYNCMAP32 */ |
386 | /* from <net/bpf.h> */ |
387 | #define BIOCGETIF32 _IOR('B',107, struct netbsd32_ifreq) |
388 | #define BIOCSETIF32 _IOW('B',108, struct netbsd32_ifreq) |
389 | /* from <netatalk/phase2.h> */ |
390 | #define SIOCPHASE1_32 _IOW('i', 100, struct netbsd32_ifreq) /* AppleTalk phase 1 */ |
391 | #define SIOCPHASE2_32 _IOW('i', 101, struct netbsd32_ifreq) /* AppleTalk phase 2 */ |
392 | |
393 | /* from <net/if.h> */ |
394 | struct netbsd32_ifconf { |
395 | int ifc_len; /* size of associated buffer */ |
396 | union { |
397 | netbsd32_caddr_t ifcu_buf; |
398 | netbsd32_ifreq_tp_t ifcu_req; |
399 | } ifc_ifcu; |
400 | #define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */ |
401 | #define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */ |
402 | }; |
403 | /* from <sys/sockio.h> */ |
404 | #define OOSIOCGIFCONF32 _IOWR('i', 20, struct netbsd32_ifconf) /* get ifnet list */ |
405 | #define OSIOCGIFCONF32 _IOWR('i', 36, struct netbsd32_ifconf) /* get ifnet list */ |
406 | #define SIOCGIFCONF32 _IOWR('i', 38, struct netbsd32_ifconf) /* get ifnet list */ |
407 | |
408 | /* from <net/if.h> */ |
409 | struct netbsd32_ifmediareq { |
410 | char ifm_name[IFNAMSIZ]; /* if name, e.g. "en0" */ |
411 | int ifm_current; /* current media options */ |
412 | int ifm_mask; /* don't care mask */ |
413 | int ifm_status; /* media status */ |
414 | int ifm_active; /* active options */ |
415 | int ifm_count; /* # entries in ifm_ulist |
416 | array */ |
417 | netbsd32_intp ifm_ulist; /* media words */ |
418 | }; |
419 | /* from <sys/sockio.h> */ |
420 | #define SIOCGIFMEDIA32 _IOWR('i', 54, struct netbsd32_ifmediareq) /* get net media */ |
421 | |
422 | /* from net/if_pppoe.h */ |
423 | struct netbsd32_pppoediscparms { |
424 | char ifname[IFNAMSIZ]; /* pppoe interface name */ |
425 | char eth_ifname[IFNAMSIZ]; /* external ethernet interface name */ |
426 | netbsd32_charp ac_name; /* access concentrator name (or NULL) */ |
427 | netbsd32_size_t ac_name_len; /* on write: length of buffer for ac_name */ |
428 | netbsd32_charp service_name; /* service name (or NULL) */ |
429 | netbsd32_size_t service_name_len; /* on write: length of buffer for service name */ |
430 | }; |
431 | #define PPPOESETPARMS32 _IOW('i', 110, struct netbsd32_pppoediscparms) |
432 | #define PPPOEGETPARMS32 _IOWR('i', 111, struct netbsd32_pppoediscparms) |
433 | |
434 | /* from net/if_sppp.h */ |
435 | struct netbsd32_spppauthcfg { |
436 | char ifname[IFNAMSIZ]; /* pppoe interface name */ |
437 | u_int hisauth; /* one of SPPP_AUTHPROTO_* above */ |
438 | u_int myauth; /* one of SPPP_AUTHPROTO_* above */ |
439 | u_int myname_length; /* includes terminating 0 */ |
440 | u_int mysecret_length; /* includes terminating 0 */ |
441 | u_int hisname_length; /* includes terminating 0 */ |
442 | u_int hissecret_length; /* includes terminating 0 */ |
443 | u_int myauthflags; |
444 | u_int hisauthflags; |
445 | netbsd32_charp myname; |
446 | netbsd32_charp mysecret; |
447 | netbsd32_charp hisname; |
448 | netbsd32_charp hissecret; |
449 | }; |
450 | #define SPPPGETAUTHCFG32 _IOWR('i', 120, struct netbsd32_spppauthcfg) |
451 | #define SPPPSETAUTHCFG32 _IOW('i', 121, struct netbsd32_spppauthcfg) |
452 | |
453 | /* from <net/if.h> */ |
454 | struct netbsd32_ifdrv { |
455 | char ifd_name[IFNAMSIZ]; /* if name, e.g. "en0" */ |
456 | netbsd32_u_long ifd_cmd; |
457 | netbsd32_size_t ifd_len; |
458 | netbsd32_voidp ifd_data; |
459 | }; |
460 | /* from <sys/sockio.h> */ |
461 | #define SIOCSDRVSPEC32 _IOW('i', 123, struct netbsd32_ifdrv) /* set driver-specific */ |
462 | #define SIOCGDRVSPEC32 _IOWR('i', 123, struct netbsd32_ifdrv) /* get driver-specific */ |
463 | |
464 | /* from <netinet/ip_mroute.h> */ |
465 | struct netbsd32_sioc_vif_req { |
466 | vifi_t vifi; /* vif number */ |
467 | netbsd32_u_long icount; /* input packet count on vif */ |
468 | netbsd32_u_long ocount; /* output packet count on vif */ |
469 | netbsd32_u_long ibytes; /* input byte count on vif */ |
470 | netbsd32_u_long obytes; /* output byte count on vif */ |
471 | }; |
472 | /* from <sys/sockio.h> */ |
473 | #define SIOCGETVIFCNT32 _IOWR('u', 51, struct netbsd32_sioc_vif_req)/* vif pkt cnt */ |
474 | |
475 | struct netbsd32_sioc_sg_req { |
476 | struct in_addr src; |
477 | struct in_addr grp; |
478 | netbsd32_u_long pktcnt; |
479 | netbsd32_u_long bytecnt; |
480 | netbsd32_u_long wrong_if; |
481 | }; |
482 | /* from <sys/sockio.h> */ |
483 | #define SIOCGETSGCNT32 _IOWR('u', 52, struct netbsd32_sioc_sg_req) /* sg pkt cnt */ |
484 | |
485 | /* |
486 | * The next two structures are marked "__packed" as they normally end up |
487 | * being padded in 64-bit mode. |
488 | */ |
489 | struct netbsd32_vnd_ioctl { |
490 | netbsd32_charp vnd_file; /* pathname of file to mount */ |
491 | int vnd_flags; /* flags; see below */ |
492 | struct vndgeom vnd_geom; /* geometry to emulate */ |
493 | unsigned int vnd_osize; /* (returned) size of disk */ |
494 | uint64_t vnd_size; /* (returned) size of disk */ |
495 | } __packed; |
496 | |
497 | struct netbsd32_vnd_user { |
498 | int vnu_unit; /* which vnd unit */ |
499 | dev_t vnu_dev; /* file is on this device... */ |
500 | ino_t vnu_ino; /* ...at this inode */ |
501 | } __packed; |
502 | |
503 | /* from <dev/vndvar.h> */ |
504 | #define VNDIOCSET32 _IOWR('F', 0, struct netbsd32_vnd_ioctl) /* enable disk */ |
505 | #define VNDIOCCLR32 _IOW('F', 1, struct netbsd32_vnd_ioctl) /* disable disk */ |
506 | #define VNDIOCGET32 _IOWR('F', 3, struct netbsd32_vnd_user) /* get list */ |
507 | |
508 | struct netbsd32_vnd_ioctl50 { |
509 | netbsd32_charp vnd_file; /* pathname of file to mount */ |
510 | int vnd_flags; /* flags; see below */ |
511 | struct vndgeom vnd_geom; /* geometry to emulate */ |
512 | unsigned int vnd_size; /* (returned) size of disk */ |
513 | } __packed; |
514 | /* from <dev/vnd.c> */ |
515 | #define VNDIOCSET5032 _IOWR('F', 0, struct netbsd32_vnd_ioctl50) |
516 | #define VNDIOCCLR5032 _IOW('F', 1, struct netbsd32_vnd_ioctl50) |
517 | |
518 | #define ENVSYS_GETDICTIONARY32 _IOWR('E', 0, struct netbsd32_plistref) |
519 | #define ENVSYS_SETDICTIONARY32 _IOWR('E', 1, struct netbsd32_plistref) |
520 | #define ENVSYS_REMOVEPROPS32 _IOWR('E', 2, struct netbsd32_plistref) |
521 | |
522 | /* from <sys/wdog.h> */ |
523 | struct netbsd32_wdog_conf { |
524 | netbsd32_charp wc_names; |
525 | int wc_count; |
526 | }; |
527 | #define WDOGIOC_GWDOGS32 _IOWR('w', 5, struct netbsd32_wdog_conf) |
528 | |
529 | |
530 | struct netbsd32_clockctl_settimeofday { |
531 | netbsd32_timevalp_t tv; |
532 | netbsd32_voidp tzp; |
533 | }; |
534 | |
535 | #define CLOCKCTL_SETTIMEOFDAY32 _IOW('C', 0x5, \ |
536 | struct netbsd32_clockctl_settimeofday) |
537 | |
538 | struct netbsd32_clockctl_adjtime { |
539 | netbsd32_timevalp_t delta; |
540 | netbsd32_timevalp_t olddelta; |
541 | }; |
542 | |
543 | #define CLOCKCTL_ADJTIME32 _IOWR('C', 0x6, struct netbsd32_clockctl_adjtime) |
544 | |
545 | struct netbsd32_clockctl_clock_settime { |
546 | netbsd32_clockid_t clock_id; |
547 | netbsd32_timespecp_t tp; |
548 | }; |
549 | |
550 | #define CLOCKCTL_CLOCK_SETTIME32 _IOW('C', 0x7, \ |
551 | struct netbsd32_clockctl_clock_settime) |
552 | |
553 | struct netbsd32_clockctl_ntp_adjtime { |
554 | netbsd32_timexp_t tp; |
555 | register32_t retval; |
556 | }; |
557 | |
558 | #define CLOCKCTL_NTP_ADJTIME32 _IOWR('C', 0x8, \ |
559 | struct netbsd32_clockctl_ntp_adjtime) |
560 | |
561 | #ifdef KIOCGSYMBOL |
562 | struct netbsd32_ksyms_gsymbol { |
563 | netbsd32_charp kg_name; |
564 | union { |
565 | Elf_Sym ku_sym; |
566 | } _un; |
567 | }; |
568 | |
569 | struct netbsd32_ksyms_gvalue { |
570 | netbsd32_charp kv_name; |
571 | uint64_t kv_value; |
572 | }; |
573 | |
574 | #define KIOCGVALUE32 _IOWR('l', 4, struct netbsd32_ksyms_gvalue) |
575 | #define KIOCGSYMBOL32 _IOWR('l', 5, struct netbsd32_ksyms_gsymbol) |
576 | #endif /* KIOCGSYMBOL */ |
577 | |
578 | /* From net/npf/npf.h */ |
579 | typedef struct in6_addr netbsd32_npf_addr_t; |
580 | typedef uint8_t netbsd32_npf_netmask_t; |
581 | |
582 | typedef struct netbsd32_npf_ioctl_ent { |
583 | int alen; |
584 | netbsd32_npf_addr_t addr; |
585 | netbsd32_npf_netmask_t mask; |
586 | } netbsd32_npf_ioctl_ent_t; |
587 | |
588 | typedef struct netbsd32_npf_ioctl_buf { |
589 | netbsd32_voidp buf; |
590 | netbsd32_size_t len; |
591 | } netbsd32_npf_ioctl_buf_t; |
592 | |
593 | typedef struct netbsd32_npf_ioctl_table { |
594 | int nct_cmd; |
595 | netbsd32_charp nct_name; |
596 | union { |
597 | netbsd32_npf_ioctl_ent_t ent; |
598 | netbsd32_npf_ioctl_buf_t buf; |
599 | } nct_data; |
600 | } netbsd32_npf_ioctl_table_t; |
601 | |
602 | #define IOC_NPF_LOAD32 _IOWR('N', 102, struct netbsd32_plistref) |
603 | #define IOC_NPF_TABLE32 _IOW('N', 103, struct netbsd32_npf_ioctl_table) |
604 | #define IOC_NPF_STATS32 _IOW('N', 104, netbsd32_voidp) |
605 | #define IOC_NPF_SAVE32 _IOR('N', 105, struct netbsd32_plistref) |
606 | #define IOC_NPF_RULE32 _IOWR('N', 107, struct netbsd32_plistref) |
607 | |
608 | /* From sys/drvctlio.h */ |
609 | struct netbsd32_devlistargs { |
610 | char l_devname[16]; |
611 | netbsd32_charpp l_childname; |
612 | netbsd32_size_t l_children; |
613 | }; |
614 | |
615 | struct netbsd32_devrescanargs { |
616 | char busname[16]; |
617 | char ifattr[16]; |
618 | unsigned int numlocators; |
619 | netbsd32_intp locators; |
620 | }; |
621 | |
622 | #define DRVRESCANBUS32 _IOW('D', 124, struct netbsd32_devrescanargs) |
623 | #define DRVCTLCOMMAND32 _IOWR('D', 125, struct netbsd32_plistref) |
624 | #define DRVLISTDEV32 _IOWR('D', 127, struct netbsd32_devlistargs) |
625 | #define DRVGETEVENT32 _IOR('D', 128, struct netbsd32_plistref) |
626 | |