1336817Sdim//===-- sanitizer_interceptors_ioctl_netbsd.inc -----------------*- C++ -*-===//
2336817Sdim//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6336817Sdim//
7336817Sdim//===----------------------------------------------------------------------===//
8336817Sdim//
9336817Sdim// Ioctl handling in common sanitizer interceptors.
10336817Sdim//===----------------------------------------------------------------------===//
11336817Sdim
12336817Sdim#if SANITIZER_NETBSD
13336817Sdim
14336817Sdim#include "sanitizer_flags.h"
15336817Sdim
16336817Sdimstruct ioctl_desc {
17336817Sdim  unsigned req;
18336817Sdim  // FIXME: support read+write arguments. Currently READWRITE and WRITE do the
19336817Sdim  // same thing.
20336817Sdim  // XXX: The declarations below may use WRITE instead of READWRITE, unless
21336817Sdim  // explicitly noted.
22336817Sdim  enum { NONE, READ, WRITE, READWRITE, CUSTOM } type : 3;
23336817Sdim  unsigned size : 29;
24336817Sdim  const char *name;
25336817Sdim};
26336817Sdim
27360784Sdimconst unsigned ioctl_table_max = 1238;
28336817Sdimstatic ioctl_desc ioctl_table[ioctl_table_max];
29336817Sdimstatic unsigned ioctl_table_size = 0;
30336817Sdim
31336817Sdim// This can not be declared as a global, because references to struct_*_sz
32336817Sdim// require a global initializer. And this table must be available before global
33336817Sdim// initializers are run.
34336817Sdimstatic void ioctl_table_fill() {
35336817Sdim#define _(rq, tp, sz)                                                          \
36336817Sdim  if (IOCTL_##rq != IOCTL_NOT_PRESENT) {                                       \
37336817Sdim    CHECK(ioctl_table_size < ioctl_table_max);                                 \
38336817Sdim    ioctl_table[ioctl_table_size].req = IOCTL_##rq;                            \
39336817Sdim    ioctl_table[ioctl_table_size].type = ioctl_desc::tp;                       \
40336817Sdim    ioctl_table[ioctl_table_size].size = sz;                                   \
41336817Sdim    ioctl_table[ioctl_table_size].name = #rq;                                  \
42336817Sdim    ++ioctl_table_size;                                                        \
43336817Sdim  }
44336817Sdim
45336817Sdim  /* Entries from file: altq/altq_afmap.h */
46336817Sdim  _(AFM_ADDFMAP, READWRITE, struct_atm_flowmap_sz);
47336817Sdim  _(AFM_DELFMAP, READWRITE, struct_atm_flowmap_sz);
48336817Sdim  _(AFM_CLEANFMAP, READWRITE, struct_atm_flowmap_sz);
49336817Sdim  _(AFM_GETFMAP, READWRITE, struct_atm_flowmap_sz);
50336817Sdim  /* Entries from file: altq/altq.h */
51336817Sdim  _(ALTQGTYPE, READWRITE, struct_altqreq_sz);
52336817Sdim  _(ALTQTBRSET, READ, struct_tbrreq_sz);
53336817Sdim  _(ALTQTBRGET, READWRITE, struct_tbrreq_sz);
54336817Sdim  /* Entries from file: altq/altq_blue.h */
55336817Sdim  _(BLUE_IF_ATTACH, READ, struct_blue_interface_sz);
56336817Sdim  _(BLUE_DISABLE, READ, struct_blue_interface_sz);
57336817Sdim  _(BLUE_CONFIG, READWRITE, struct_blue_conf_sz);
58336817Sdim  _(BLUE_GETSTATS, READWRITE, struct_blue_stats_sz);
59336817Sdim  /* Entries from file: altq/altq_cbq.h */
60336817Sdim  _(CBQ_ENABLE, READ, struct_cbq_interface_sz);
61336817Sdim  _(CBQ_ADD_CLASS, READWRITE, struct_cbq_add_class_sz);
62336817Sdim  _(CBQ_DEL_CLASS, READ, struct_cbq_delete_class_sz);
63336817Sdim  _(CBQ_MODIFY_CLASS, READWRITE, struct_cbq_modify_class_sz);
64336817Sdim  _(CBQ_DEL_FILTER, READ, struct_cbq_delete_filter_sz);
65336817Sdim  _(CBQ_GETSTATS, READWRITE, struct_cbq_getstats_sz);
66336817Sdim  /* Entries from file: altq/altq_cdnr.h */
67336817Sdim  _(CDNR_IF_DETACH, READ, struct_cdnr_interface_sz);
68336817Sdim  _(CDNR_ADD_FILTER, READWRITE, struct_cdnr_add_filter_sz);
69336817Sdim  _(CDNR_GETSTATS, READWRITE, struct_cdnr_get_stats_sz);
70336817Sdim  _(CDNR_ADD_ELEM, READWRITE, struct_cdnr_add_element_sz);
71336817Sdim  _(CDNR_DEL_ELEM, READ, struct_cdnr_delete_element_sz);
72336817Sdim  _(CDNR_ADD_TBM, READWRITE, struct_cdnr_add_tbmeter_sz);
73336817Sdim  _(CDNR_MOD_TBM, READ, struct_cdnr_modify_tbmeter_sz);
74336817Sdim  _(CDNR_TBM_STATS, READWRITE, struct_cdnr_tbmeter_stats_sz);
75336817Sdim  _(CDNR_ADD_TCM, READWRITE, struct_cdnr_add_trtcm_sz);
76336817Sdim  _(CDNR_MOD_TCM, READWRITE, struct_cdnr_modify_trtcm_sz);
77336817Sdim  _(CDNR_TCM_STATS, READWRITE, struct_cdnr_tcm_stats_sz);
78336817Sdim  _(CDNR_ADD_TSW, READWRITE, struct_cdnr_add_tswtcm_sz);
79336817Sdim  _(CDNR_MOD_TSW, READWRITE, struct_cdnr_modify_tswtcm_sz);
80336817Sdim  /* Entries from file: altq/altq_fifoq.h */
81336817Sdim  _(FIFOQ_CONFIG, READWRITE, struct_fifoq_conf_sz);
82336817Sdim  _(FIFOQ_GETSTATS, READWRITE, struct_fifoq_getstats_sz);
83336817Sdim  /* Entries from file: altq/altq_hfsc.h */
84336817Sdim  _(HFSC_CLEAR_HIERARCHY, READ, struct_hfsc_interface_sz);
85336817Sdim  _(HFSC_ADD_CLASS, READWRITE, struct_hfsc_add_class_sz);
86336817Sdim  _(HFSC_GETSTATS, READWRITE, struct_hfsc_class_stats_sz);
87336817Sdim  /* Entries from file: altq/altq_jobs.h */
88336817Sdim  _(JOBS_IF_ATTACH, READ, struct_jobs_attach_sz);
89336817Sdim  _(JOBS_IF_DETACH, READ, struct_jobs_interface_sz);
90336817Sdim  _(JOBS_ENABLE, READ, struct_jobs_interface_sz);
91336817Sdim  _(JOBS_DISABLE, READ, struct_jobs_interface_sz);
92336817Sdim  _(JOBS_CLEAR, READ, struct_jobs_interface_sz);
93336817Sdim  _(JOBS_ADD_CLASS, READWRITE, struct_jobs_add_class_sz);
94336817Sdim  _(JOBS_MOD_CLASS, READ, struct_jobs_modify_class_sz);
95336817Sdim  /* Entries from file: altq/altq_priq.h */
96336817Sdim  _(PRIQ_IF_ATTACH, READ, struct_priq_interface_sz);
97336817Sdim  _(PRIQ_CLEAR, READ, struct_priq_interface_sz);
98336817Sdim  _(PRIQ_ADD_CLASS, READWRITE, struct_priq_add_class_sz);
99336817Sdim  _(PRIQ_DEL_CLASS, READ, struct_priq_delete_class_sz);
100336817Sdim  _(PRIQ_MOD_CLASS, READ, struct_priq_modify_class_sz);
101336817Sdim  _(PRIQ_ADD_FILTER, READWRITE, struct_priq_add_filter_sz);
102336817Sdim  _(PRIQ_DEL_FILTER, READ, struct_priq_delete_filter_sz);
103336817Sdim  _(PRIQ_GETSTATS, READWRITE, struct_priq_class_stats_sz);
104336817Sdim  /* Entries from file: altq/altq_red.h */
105336817Sdim  _(RED_CONFIG, READWRITE, struct_red_conf_sz);
106336817Sdim  _(RED_GETSTATS, READWRITE, struct_red_stats_sz);
107336817Sdim  _(RED_SETDEFAULTS, READ, struct_redparams_sz);
108336817Sdim  /* Entries from file: altq/altq_rio.h */
109336817Sdim  _(RIO_CONFIG, READWRITE, struct_rio_conf_sz);
110336817Sdim  _(RIO_GETSTATS, READWRITE, struct_rio_stats_sz);
111336817Sdim  _(RIO_SETDEFAULTS, READ, struct_redparams_sz);
112336817Sdim  /* Entries from file: altq/altq_wfq.h */
113336817Sdim  _(WFQ_CONFIG, READWRITE, struct_wfq_conf_sz);
114336817Sdim  _(WFQ_GET_QID, READWRITE, struct_wfq_getqid_sz);
115336817Sdim  _(WFQ_SET_WEIGHT, READWRITE, struct_wfq_setweight_sz);
116336817Sdim  /* Entries from file: crypto/cryptodev.h */
117336817Sdim  _(CRIOGET, READWRITE, sizeof(u32));
118336817Sdim  _(CIOCFSESSION, READ, sizeof(u32));
119336817Sdim  _(CIOCKEY, READWRITE, struct_crypt_kop_sz);
120336817Sdim  _(CIOCNFKEYM, READWRITE, struct_crypt_mkop_sz);
121336817Sdim  _(CIOCNFSESSION, READ, struct_crypt_sfop_sz);
122336817Sdim  _(CIOCNCRYPTRETM, READWRITE, struct_cryptret_sz);
123336817Sdim  _(CIOCNCRYPTRET, READWRITE, struct_crypt_result_sz);
124336817Sdim  _(CIOCGSESSION, READWRITE, struct_session_op_sz);
125336817Sdim  _(CIOCNGSESSION, READWRITE, struct_crypt_sgop_sz);
126336817Sdim  _(CIOCCRYPT, READWRITE, struct_crypt_op_sz);
127336817Sdim  _(CIOCNCRYPTM, READWRITE, struct_crypt_mop_sz);
128336817Sdim  _(CIOCASYMFEAT, WRITE, sizeof(u32));
129336817Sdim  /* Entries from file: dev/apm/apmio.h */
130336817Sdim  _(APM_IOC_REJECT, READ, struct_apm_event_info_sz);
131336817Sdim  _(OAPM_IOC_GETPOWER, WRITE, struct_apm_power_info_sz);
132336817Sdim  _(APM_IOC_GETPOWER, READWRITE, struct_apm_power_info_sz);
133336817Sdim  _(APM_IOC_NEXTEVENT, WRITE, struct_apm_event_info_sz);
134336817Sdim  _(APM_IOC_DEV_CTL, READ, struct_apm_ctl_sz);
135336817Sdim  /* Entries from file: dev/dm/netbsd-dm.h */
136336817Sdim  _(NETBSD_DM_IOCTL, READWRITE, struct_plistref_sz);
137336817Sdim  /* Entries from file: dev/dmover/dmover_io.h */
138336817Sdim  _(DMIO_SETFUNC, READ, struct_dmio_setfunc_sz);
139336817Sdim  /* Entries from file: dev/dtv/dtvio_demux.h */
140336817Sdim  _(DMX_START, NONE, 0);
141336817Sdim  _(DMX_STOP, NONE, 0);
142336817Sdim  _(DMX_SET_FILTER, READ, struct_dmx_sct_filter_params_sz);
143336817Sdim  _(DMX_SET_PES_FILTER, READ, struct_dmx_pes_filter_params_sz);
144336817Sdim  _(DMX_SET_BUFFER_SIZE, NONE, 0);
145336817Sdim  _(DMX_GET_STC, READWRITE, struct_dmx_stc_sz);
146336817Sdim  _(DMX_ADD_PID, READ, sizeof(u16));
147336817Sdim  _(DMX_REMOVE_PID, READ, sizeof(u16));
148336817Sdim  _(DMX_GET_CAPS, WRITE, struct_dmx_caps_sz);
149336817Sdim  _(DMX_SET_SOURCE, READ, enum_dmx_source_sz);
150336817Sdim  /* Entries from file: dev/dtv/dtvio_frontend.h */
151336817Sdim  _(FE_READ_STATUS, WRITE, enum_fe_status_sz);
152336817Sdim  _(FE_READ_BER, WRITE, sizeof(u32));
153336817Sdim  _(FE_READ_SNR, WRITE, sizeof(u16));
154336817Sdim  _(FE_READ_SIGNAL_STRENGTH, WRITE, sizeof(u16));
155336817Sdim  _(FE_READ_UNCORRECTED_BLOCKS, WRITE, sizeof(u32));
156336817Sdim  _(FE_SET_FRONTEND, READWRITE, struct_dvb_frontend_parameters_sz);
157336817Sdim  _(FE_GET_FRONTEND, WRITE, struct_dvb_frontend_parameters_sz);
158336817Sdim  _(FE_GET_EVENT, WRITE, struct_dvb_frontend_event_sz);
159336817Sdim  _(FE_GET_INFO, WRITE, struct_dvb_frontend_info_sz);
160336817Sdim  _(FE_DISEQC_RESET_OVERLOAD, NONE, 0);
161336817Sdim  _(FE_DISEQC_SEND_MASTER_CMD, READ, struct_dvb_diseqc_master_cmd_sz);
162336817Sdim  _(FE_DISEQC_RECV_SLAVE_REPLY, WRITE, struct_dvb_diseqc_slave_reply_sz);
163336817Sdim  _(FE_DISEQC_SEND_BURST, READ, enum_fe_sec_mini_cmd_sz);
164336817Sdim  _(FE_SET_TONE, READ, enum_fe_sec_tone_mode_sz);
165336817Sdim  _(FE_SET_VOLTAGE, READ, enum_fe_sec_voltage_sz);
166336817Sdim  _(FE_ENABLE_HIGH_LNB_VOLTAGE, READ, sizeof(int));
167336817Sdim  _(FE_SET_FRONTEND_TUNE_MODE, READ, sizeof(unsigned int));
168336817Sdim  _(FE_DISHNETWORK_SEND_LEGACY_CMD, READ, sizeof(unsigned long));
169336817Sdim  /* Entries from file: dev/hdaudio/hdaudioio.h */
170336817Sdim  _(HDAUDIO_FGRP_INFO, READWRITE, struct_plistref_sz);
171336817Sdim  _(HDAUDIO_FGRP_GETCONFIG, READWRITE, struct_plistref_sz);
172336817Sdim  _(HDAUDIO_FGRP_SETCONFIG, READWRITE, struct_plistref_sz);
173336817Sdim  _(HDAUDIO_FGRP_WIDGET_INFO, READWRITE, struct_plistref_sz);
174336817Sdim  _(HDAUDIO_FGRP_CODEC_INFO, READWRITE, struct_plistref_sz);
175336817Sdim  _(HDAUDIO_AFG_WIDGET_INFO, READWRITE, struct_plistref_sz);
176336817Sdim  _(HDAUDIO_AFG_CODEC_INFO, READWRITE, struct_plistref_sz);
177336817Sdim  /* Entries from file: dev/hdmicec/hdmicecio.h */
178336817Sdim  _(CEC_GET_PHYS_ADDR, WRITE, sizeof(u16));
179336817Sdim  _(CEC_GET_LOG_ADDRS, WRITE, sizeof(u16));
180336817Sdim  _(CEC_SET_LOG_ADDRS, READ, sizeof(u16));
181336817Sdim  _(CEC_GET_VENDOR_ID, WRITE, sizeof(u32));
182336817Sdim  /* Entries from file: dev/hpc/hpcfbio.h */
183336817Sdim  _(HPCFBIO_GCONF, READWRITE, struct_hpcfb_fbconf_sz);
184336817Sdim  _(HPCFBIO_SCONF, READ, struct_hpcfb_fbconf_sz);
185336817Sdim  _(HPCFBIO_GDSPCONF, READWRITE, struct_hpcfb_dspconf_sz);
186336817Sdim  _(HPCFBIO_SDSPCONF, READ, struct_hpcfb_dspconf_sz);
187336817Sdim  _(HPCFBIO_GOP, WRITE, struct_hpcfb_dsp_op_sz);
188336817Sdim  _(HPCFBIO_SOP, READWRITE, struct_hpcfb_dsp_op_sz);
189336817Sdim  /* Entries from file: dev/i2o/iopio.h */
190336817Sdim  _(IOPIOCPT, READWRITE, struct_ioppt_sz);
191336817Sdim  _(IOPIOCGLCT, READWRITE, struct_iovec_sz);
192336817Sdim  _(IOPIOCGSTATUS, READWRITE, struct_iovec_sz);
193336817Sdim  _(IOPIOCRECONFIG, NONE, 0);
194336817Sdim  _(IOPIOCGTIDMAP, READWRITE, struct_iovec_sz);
195336817Sdim  /* Entries from file: dev/ic/athioctl.h */
196336817Sdim  _(SIOCGATHSTATS, READWRITE, struct_ifreq_sz);
197336817Sdim  _(SIOCGATHDIAG, READWRITE, struct_ath_diag_sz);
198336817Sdim  /* Entries from file: dev/ic/bt8xx.h */
199336817Sdim  _(METEORCAPTUR, READ, sizeof(int));
200336817Sdim  _(METEORCAPFRM, READ, struct_meteor_capframe_sz);
201336817Sdim  _(METEORSETGEO, READ, struct_meteor_geomet_sz);
202336817Sdim  _(METEORGETGEO, WRITE, struct_meteor_geomet_sz);
203336817Sdim  _(METEORSTATUS, WRITE, sizeof(unsigned short));
204336817Sdim  _(METEORSHUE, READ, sizeof(signed char));
205336817Sdim  _(METEORGHUE, WRITE, sizeof(signed char));
206336817Sdim  _(METEORSFMT, READ, sizeof(unsigned int));
207336817Sdim  _(METEORGFMT, WRITE, sizeof(unsigned int));
208336817Sdim  _(METEORSINPUT, READ, sizeof(unsigned int));
209336817Sdim  _(METEORGINPUT, WRITE, sizeof(unsigned int));
210336817Sdim  _(METEORSCHCV, READ, sizeof(unsigned char));
211336817Sdim  _(METEORGCHCV, WRITE, sizeof(unsigned char));
212336817Sdim  _(METEORSCOUNT, READ, struct_meteor_counts_sz);
213336817Sdim  _(METEORGCOUNT, WRITE, struct_meteor_counts_sz);
214336817Sdim  _(METEORSFPS, READ, sizeof(unsigned short));
215336817Sdim  _(METEORGFPS, WRITE, sizeof(unsigned short));
216336817Sdim  _(METEORSSIGNAL, READ, sizeof(unsigned int));
217336817Sdim  _(METEORGSIGNAL, WRITE, sizeof(unsigned int));
218336817Sdim  _(METEORSVIDEO, READ, struct_meteor_video_sz);
219336817Sdim  _(METEORGVIDEO, WRITE, struct_meteor_video_sz);
220336817Sdim  _(METEORSBRIG, READ, sizeof(unsigned char));
221336817Sdim  _(METEORGBRIG, WRITE, sizeof(unsigned char));
222336817Sdim  _(METEORSCSAT, READ, sizeof(unsigned char));
223336817Sdim  _(METEORGCSAT, WRITE, sizeof(unsigned char));
224336817Sdim  _(METEORSCONT, READ, sizeof(unsigned char));
225336817Sdim  _(METEORGCONT, WRITE, sizeof(unsigned char));
226336817Sdim  _(METEORSHWS, READ, sizeof(unsigned char));
227336817Sdim  _(METEORGHWS, WRITE, sizeof(unsigned char));
228336817Sdim  _(METEORSVWS, READ, sizeof(unsigned char));
229336817Sdim  _(METEORGVWS, WRITE, sizeof(unsigned char));
230336817Sdim  _(METEORSTS, READ, sizeof(unsigned char));
231336817Sdim  _(METEORGTS, WRITE, sizeof(unsigned char));
232336817Sdim  _(TVTUNER_SETCHNL, READ, sizeof(unsigned int));
233336817Sdim  _(TVTUNER_GETCHNL, WRITE, sizeof(unsigned int));
234336817Sdim  _(TVTUNER_SETTYPE, READ, sizeof(unsigned int));
235336817Sdim  _(TVTUNER_GETTYPE, WRITE, sizeof(unsigned int));
236336817Sdim  _(TVTUNER_GETSTATUS, WRITE, sizeof(unsigned int));
237336817Sdim  _(TVTUNER_SETFREQ, READ, sizeof(unsigned int));
238336817Sdim  _(TVTUNER_GETFREQ, WRITE, sizeof(unsigned int));
239336817Sdim  _(TVTUNER_SETAFC, READ, sizeof(int));
240336817Sdim  _(TVTUNER_GETAFC, WRITE, sizeof(int));
241336817Sdim  _(RADIO_SETMODE, READ, sizeof(unsigned int));
242336817Sdim  _(RADIO_GETMODE, WRITE, sizeof(unsigned char));
243336817Sdim  _(RADIO_SETFREQ, READ, sizeof(unsigned int));
244336817Sdim  _(RADIO_GETFREQ, WRITE, sizeof(unsigned int));
245336817Sdim  _(METEORSACTPIXFMT, READ, sizeof(int));
246336817Sdim  _(METEORGACTPIXFMT, WRITE, sizeof(int));
247336817Sdim  _(METEORGSUPPIXFMT, READWRITE, struct_meteor_pixfmt_sz);
248336817Sdim  _(TVTUNER_GETCHNLSET, READWRITE, struct_bktr_chnlset_sz);
249336817Sdim  _(REMOTE_GETKEY, WRITE, struct_bktr_remote_sz);
250336817Sdim  /* Entries from file: dev/ic/icp_ioctl.h */
251336817Sdim  _(GDT_IOCTL_GENERAL, READWRITE, struct_gdt_ucmd_sz);
252336817Sdim  _(GDT_IOCTL_DRVERS, WRITE, sizeof(int));
253336817Sdim  _(GDT_IOCTL_CTRTYPE, READWRITE, struct_gdt_ctrt_sz);
254336817Sdim  _(GDT_IOCTL_OSVERS, WRITE, struct_gdt_osv_sz);
255336817Sdim  _(GDT_IOCTL_CTRCNT, WRITE, sizeof(int));
256336817Sdim  _(GDT_IOCTL_EVENT, READWRITE, struct_gdt_event_sz);
257336817Sdim  _(GDT_IOCTL_STATIST, WRITE, struct_gdt_statist_sz);
258336817Sdim  _(GDT_IOCTL_RESCAN, READWRITE, struct_gdt_rescan_sz);
259336817Sdim  /* Entries from file: dev/ic/isp_ioctl.h */
260336817Sdim  _(ISP_SDBLEV, READWRITE, sizeof(int));
261336817Sdim  _(ISP_RESETHBA, NONE, 0);
262336817Sdim  _(ISP_RESCAN, NONE, 0);
263336817Sdim  _(ISP_SETROLE, READWRITE, sizeof(int));
264336817Sdim  _(ISP_GETROLE, WRITE, sizeof(int));
265336817Sdim  _(ISP_GET_STATS, WRITE, struct_isp_stats_sz);
266336817Sdim  _(ISP_CLR_STATS, NONE, 0);
267336817Sdim  _(ISP_FC_LIP, NONE, 0);
268336817Sdim  _(ISP_FC_GETDINFO, READWRITE, struct_isp_fc_device_sz);
269336817Sdim  _(ISP_GET_FW_CRASH_DUMP, NONE, 0);
270336817Sdim  _(ISP_FORCE_CRASH_DUMP, NONE, 0);
271336817Sdim  _(ISP_FC_GETHINFO, READWRITE, struct_isp_hba_device_sz);
272336817Sdim  _(ISP_TSK_MGMT, READWRITE, struct_isp_fc_tsk_mgmt_sz);
273336817Sdim  _(ISP_FC_GETDLIST, NONE, 0);
274336817Sdim  /* Entries from file: dev/ic/mlxio.h */
275336817Sdim  _(MLXD_STATUS, WRITE, sizeof(int));
276336817Sdim  _(MLXD_CHECKASYNC, WRITE, sizeof(int));
277336817Sdim  _(MLXD_DETACH, READ, sizeof(int));
278336817Sdim  _(MLX_RESCAN_DRIVES, NONE, 0);
279336817Sdim  _(MLX_PAUSE_CHANNEL, READ, struct_mlx_pause_sz);
280336817Sdim  _(MLX_COMMAND, READWRITE, struct_mlx_usercommand_sz);
281336817Sdim  _(MLX_REBUILDASYNC, READWRITE, struct_mlx_rebuild_request_sz);
282336817Sdim  _(MLX_REBUILDSTAT, WRITE, struct_mlx_rebuild_status_sz);
283336817Sdim  _(MLX_GET_SYSDRIVE, READWRITE, sizeof(int));
284336817Sdim  _(MLX_GET_CINFO, WRITE, struct_mlx_cinfo_sz);
285336817Sdim  /* Entries from file: dev/ic/nvmeio.h */
286336817Sdim  _(NVME_PASSTHROUGH_CMD, READWRITE, struct_nvme_pt_command_sz);
287344779Sdim  /* Entries from file: dev/ic/qemufwcfgio.h */
288344779Sdim  _(FWCFGIO_SET_INDEX, READ, sizeof(u16));
289336817Sdim  /* Entries from file: dev/ir/irdaio.h */
290336817Sdim  _(IRDA_RESET_PARAMS, NONE, 0);
291336817Sdim  _(IRDA_SET_PARAMS, READ, struct_irda_params_sz);
292336817Sdim  _(IRDA_GET_SPEEDMASK, WRITE, sizeof(unsigned int));
293336817Sdim  _(IRDA_GET_TURNAROUNDMASK, WRITE, sizeof(unsigned int));
294336817Sdim  _(IRFRAMETTY_GET_DEVICE, WRITE, sizeof(unsigned int));
295336817Sdim  _(IRFRAMETTY_GET_DONGLE, WRITE, sizeof(unsigned int));
296336817Sdim  _(IRFRAMETTY_SET_DONGLE, READ, sizeof(unsigned int));
297336817Sdim  /* Entries from file: dev/isa/isvio.h */
298336817Sdim  _(ISV_CMD, READWRITE, struct_isv_cmd_sz);
299336817Sdim  /* Entries from file: dev/isa/wtreg.h */
300336817Sdim  _(WTQICMD, NONE, 0);
301336817Sdim  /* Entries from file: dev/iscsi/iscsi_ioctl.h */
302336817Sdim  _(ISCSI_GET_VERSION, READWRITE, struct_iscsi_get_version_parameters_sz);
303336817Sdim  _(ISCSI_LOGIN, READWRITE, struct_iscsi_login_parameters_sz);
304336817Sdim  _(ISCSI_LOGOUT, READWRITE, struct_iscsi_logout_parameters_sz);
305336817Sdim  _(ISCSI_ADD_CONNECTION, READWRITE, struct_iscsi_login_parameters_sz);
306336817Sdim  _(ISCSI_RESTORE_CONNECTION, READWRITE, struct_iscsi_login_parameters_sz);
307336817Sdim  _(ISCSI_REMOVE_CONNECTION, READWRITE, struct_iscsi_remove_parameters_sz);
308336817Sdim  _(ISCSI_CONNECTION_STATUS, READWRITE, struct_iscsi_conn_status_parameters_sz);
309336817Sdim  _(ISCSI_SEND_TARGETS, READWRITE, struct_iscsi_send_targets_parameters_sz);
310336817Sdim  _(ISCSI_SET_NODE_NAME, READWRITE, struct_iscsi_set_node_name_parameters_sz);
311336817Sdim  _(ISCSI_IO_COMMAND, READWRITE, struct_iscsi_iocommand_parameters_sz);
312336817Sdim  _(ISCSI_REGISTER_EVENT, READWRITE, struct_iscsi_register_event_parameters_sz);
313336817Sdim  _(ISCSI_DEREGISTER_EVENT, READWRITE,
314336817Sdim    struct_iscsi_register_event_parameters_sz);
315336817Sdim  _(ISCSI_WAIT_EVENT, READWRITE, struct_iscsi_wait_event_parameters_sz);
316336817Sdim  _(ISCSI_POLL_EVENT, READWRITE, struct_iscsi_wait_event_parameters_sz);
317336817Sdim  /* Entries from file: dev/ofw/openfirmio.h */
318336817Sdim  _(OFIOCGET, READWRITE, struct_ofiocdesc_sz);
319336817Sdim  _(OFIOCSET, READ, struct_ofiocdesc_sz);
320336817Sdim  _(OFIOCNEXTPROP, READWRITE, struct_ofiocdesc_sz);
321336817Sdim  _(OFIOCGETOPTNODE, WRITE, sizeof(int));
322336817Sdim  _(OFIOCGETNEXT, READWRITE, sizeof(int));
323336817Sdim  _(OFIOCGETCHILD, READWRITE, sizeof(int));
324336817Sdim  _(OFIOCFINDDEVICE, READWRITE, struct_ofiocdesc_sz);
325336817Sdim  /* Entries from file: dev/pci/amrio.h */
326336817Sdim  _(AMR_IO_VERSION, WRITE, sizeof(int));
327336817Sdim  _(AMR_IO_COMMAND, READWRITE, struct_amr_user_ioctl_sz);
328336817Sdim  /* Entries from file: dev/pci/mlyio.h */
329336817Sdim  _(MLYIO_COMMAND, READWRITE, struct_mly_user_command_sz);
330336817Sdim  _(MLYIO_HEALTH, READ, struct_mly_user_health_sz);
331336817Sdim  /* Entries from file: dev/pci/pciio.h */
332336817Sdim  _(PCI_IOC_CFGREAD, READWRITE, struct_pciio_cfgreg_sz);
333336817Sdim  _(PCI_IOC_CFGWRITE, READ, struct_pciio_cfgreg_sz);
334336817Sdim  _(PCI_IOC_BDF_CFGREAD, READWRITE, struct_pciio_bdf_cfgreg_sz);
335336817Sdim  _(PCI_IOC_BDF_CFGWRITE, READ, struct_pciio_bdf_cfgreg_sz);
336336817Sdim  _(PCI_IOC_BUSINFO, WRITE, struct_pciio_businfo_sz);
337336817Sdim  _(PCI_IOC_DRVNAME, READWRITE, struct_pciio_drvname_sz);
338336817Sdim  _(PCI_IOC_DRVNAMEONBUS, READWRITE, struct_pciio_drvnameonbus_sz);
339336817Sdim  /* Entries from file: dev/pci/tweio.h */
340336817Sdim  _(TWEIO_COMMAND, READWRITE, struct_twe_usercommand_sz);
341336817Sdim  _(TWEIO_STATS, READWRITE, union_twe_statrequest_sz);
342336817Sdim  _(TWEIO_AEN_POLL, WRITE, sizeof(int));
343336817Sdim  _(TWEIO_AEN_WAIT, WRITE, sizeof(int));
344336817Sdim  _(TWEIO_SET_PARAM, READ, struct_twe_paramcommand_sz);
345336817Sdim  _(TWEIO_GET_PARAM, READ, struct_twe_paramcommand_sz);
346336817Sdim  _(TWEIO_RESET, NONE, 0);
347336817Sdim  _(TWEIO_ADD_UNIT, READ, struct_twe_drivecommand_sz);
348336817Sdim  _(TWEIO_DEL_UNIT, READ, struct_twe_drivecommand_sz);
349336817Sdim  /* Entries from file: dev/pcmcia/if_cnwioctl.h */
350336817Sdim  _(SIOCSCNWDOMAIN, READ, struct_ifreq_sz);
351336817Sdim  _(SIOCGCNWDOMAIN, READWRITE, struct_ifreq_sz);
352336817Sdim  _(SIOCSCNWKEY, READWRITE, struct_ifreq_sz);
353336817Sdim  _(SIOCGCNWSTATUS, READWRITE, struct_cnwstatus_sz);
354336817Sdim  _(SIOCGCNWSTATS, READWRITE, struct_cnwistats_sz);
355336817Sdim  _(SIOCGCNWTRAIL, READWRITE, struct_cnwitrail_sz);
356336817Sdim  /* Entries from file: dev/pcmcia/if_rayreg.h */
357336817Sdim  _(SIOCGRAYSIGLEV, READWRITE, struct_ifreq_sz);
358336817Sdim  /* Entries from file: dev/raidframe/raidframeio.h */
359336817Sdim  _(RAIDFRAME_SHUTDOWN, NONE, 0);
360336817Sdim  _(RAIDFRAME_TUR, READ, sizeof(u64));
361336817Sdim  _(RAIDFRAME_FAIL_DISK, READ, struct_rf_recon_req_sz);
362336817Sdim  _(RAIDFRAME_CHECK_RECON_STATUS, READWRITE, sizeof(int));
363336817Sdim  _(RAIDFRAME_REWRITEPARITY, NONE, 0);
364336817Sdim  _(RAIDFRAME_COPYBACK, NONE, 0);
365336817Sdim  _(RAIDFRAME_SPARET_WAIT, WRITE, struct_RF_SparetWait_sz);
366336817Sdim  _(RAIDFRAME_SEND_SPARET, READ, sizeof(uptr));
367336817Sdim  _(RAIDFRAME_ABORT_SPARET_WAIT, NONE, 0);
368336817Sdim  _(RAIDFRAME_START_ATRACE, NONE, 0);
369336817Sdim  _(RAIDFRAME_STOP_ATRACE, NONE, 0);
370336817Sdim  _(RAIDFRAME_GET_SIZE, WRITE, sizeof(int));
371336817Sdim  _(RAIDFRAME_RESET_ACCTOTALS, NONE, 0);
372336817Sdim  _(RAIDFRAME_KEEP_ACCTOTALS, READ, sizeof(int));
373336817Sdim  _(RAIDFRAME_GET_COMPONENT_LABEL, READWRITE, struct_RF_ComponentLabel_sz);
374336817Sdim  _(RAIDFRAME_SET_COMPONENT_LABEL, READ, struct_RF_ComponentLabel_sz);
375336817Sdim  _(RAIDFRAME_INIT_LABELS, READ, struct_RF_ComponentLabel_sz);
376336817Sdim  _(RAIDFRAME_ADD_HOT_SPARE, READ, struct_RF_SingleComponent_sz);
377336817Sdim  _(RAIDFRAME_REMOVE_HOT_SPARE, READ, struct_RF_SingleComponent_sz);
378336817Sdim  _(RAIDFRAME_REBUILD_IN_PLACE, READ, struct_RF_SingleComponent_sz);
379336817Sdim  _(RAIDFRAME_CHECK_PARITY, READWRITE, sizeof(int));
380336817Sdim  _(RAIDFRAME_CHECK_PARITYREWRITE_STATUS, READWRITE, sizeof(int));
381336817Sdim  _(RAIDFRAME_CHECK_COPYBACK_STATUS, READWRITE, sizeof(int));
382336817Sdim  _(RAIDFRAME_SET_AUTOCONFIG, READWRITE, sizeof(int));
383336817Sdim  _(RAIDFRAME_SET_ROOT, READWRITE, sizeof(int));
384336817Sdim  _(RAIDFRAME_DELETE_COMPONENT, READ, struct_RF_SingleComponent_sz);
385336817Sdim  _(RAIDFRAME_INCORPORATE_HOT_SPARE, READ, struct_RF_SingleComponent_sz);
386336817Sdim  _(RAIDFRAME_CHECK_RECON_STATUS_EXT, READWRITE, struct_RF_ProgressInfo_sz);
387336817Sdim  _(RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT, READWRITE,
388336817Sdim    struct_RF_ProgressInfo_sz);
389336817Sdim  _(RAIDFRAME_CHECK_COPYBACK_STATUS_EXT, READWRITE, struct_RF_ProgressInfo_sz);
390336817Sdim  _(RAIDFRAME_PARITYMAP_STATUS, WRITE, struct_rf_pmstat_sz);
391336817Sdim  _(RAIDFRAME_PARITYMAP_GET_DISABLE, WRITE, sizeof(int));
392336817Sdim  _(RAIDFRAME_PARITYMAP_SET_DISABLE, READ, sizeof(int));
393336817Sdim  _(RAIDFRAME_PARITYMAP_SET_PARAMS, READ, struct_rf_pmparams_sz);
394336817Sdim  _(RAIDFRAME_SET_LAST_UNIT, READ, sizeof(int));
395336817Sdim  _(RAIDFRAME_GET_INFO, READWRITE, sizeof(uptr));
396336817Sdim  _(RAIDFRAME_CONFIGURE, READ, sizeof(uptr));
397336817Sdim  /* Entries from file: dev/sbus/mbppio.h */
398336817Sdim  _(MBPPIOCSPARAM, READ, struct_mbpp_param_sz);
399336817Sdim  _(MBPPIOCGPARAM, WRITE, struct_mbpp_param_sz);
400336817Sdim  _(MBPPIOCGSTAT, WRITE, sizeof(int));
401336817Sdim  /* Entries from file: dev/scsipi/ses.h */
402336817Sdim  _(SESIOC_GETNOBJ, NONE, 0);
403336817Sdim  _(SESIOC_GETOBJMAP, NONE, 0);
404336817Sdim  _(SESIOC_GETENCSTAT, NONE, 0);
405336817Sdim  _(SESIOC_SETENCSTAT, NONE, 0);
406336817Sdim  _(SESIOC_GETOBJSTAT, NONE, 0);
407336817Sdim  _(SESIOC_SETOBJSTAT, NONE, 0);
408336817Sdim  _(SESIOC_GETTEXT, NONE, 0);
409336817Sdim  _(SESIOC_INIT, NONE, 0);
410336817Sdim  /* Entries from file: dev/sun/disklabel.h */
411336817Sdim  _(SUN_DKIOCGGEOM, WRITE, struct_sun_dkgeom_sz);
412336817Sdim  _(SUN_DKIOCINFO, WRITE, struct_sun_dkctlr_sz);
413336817Sdim  _(SUN_DKIOCGPART, WRITE, struct_sun_dkpart_sz);
414336817Sdim  /* Entries from file: dev/sun/fbio.h */
415336817Sdim  _(FBIOGTYPE, WRITE, struct_fbtype_sz);
416336817Sdim  _(FBIOPUTCMAP, READ, struct_fbcmap_sz);
417336817Sdim  _(FBIOGETCMAP, READ, struct_fbcmap_sz);
418336817Sdim  _(FBIOGATTR, WRITE, struct_fbgattr_sz);
419336817Sdim  _(FBIOSVIDEO, READ, sizeof(int));
420336817Sdim  _(FBIOGVIDEO, WRITE, sizeof(int));
421336817Sdim  _(FBIOSCURSOR, READ, struct_fbcursor_sz);
422336817Sdim  _(FBIOGCURSOR, READWRITE, struct_fbcursor_sz);
423336817Sdim  _(FBIOSCURPOS, READ, struct_fbcurpos_sz);
424336817Sdim  _(FBIOGCURPOS, READ, struct_fbcurpos_sz);
425336817Sdim  _(FBIOGCURMAX, WRITE, struct_fbcurpos_sz);
426336817Sdim  /* Entries from file: dev/sun/kbio.h */
427336817Sdim  _(KIOCTRANS, READ, sizeof(int));
428336817Sdim  _(KIOCSETKEY, READWRITE, struct_okiockey_sz);
429336817Sdim  _(KIOCGETKEY, READWRITE, struct_okiockey_sz);
430336817Sdim  _(KIOCGTRANS, WRITE, sizeof(int));
431336817Sdim  _(KIOCCMD, READ, sizeof(int));
432336817Sdim  _(KIOCTYPE, WRITE, sizeof(int));
433336817Sdim  _(KIOCSDIRECT, READ, sizeof(int));
434336817Sdim  _(KIOCSKEY, READ, struct_kiockeymap_sz);
435336817Sdim  _(KIOCGKEY, READWRITE, struct_kiockeymap_sz);
436336817Sdim  _(KIOCSLED, READ, sizeof(char));
437336817Sdim  _(KIOCGLED, WRITE, sizeof(char));
438336817Sdim  _(KIOCLAYOUT, WRITE, sizeof(int));
439336817Sdim  /* Entries from file: dev/sun/vuid_event.h */
440336817Sdim  _(VUIDSFORMAT, READ, sizeof(int));
441336817Sdim  _(VUIDGFORMAT, WRITE, sizeof(int));
442336817Sdim  /* Entries from file: dev/tc/sticio.h */
443336817Sdim  _(STICIO_GXINFO, WRITE, struct_stic_xinfo_sz);
444336817Sdim  _(STICIO_RESET, NONE, 0);
445336817Sdim  _(STICIO_STARTQ, NONE, 0);
446336817Sdim  _(STICIO_STOPQ, NONE, 0);
447336817Sdim  /* Entries from file: dev/usb/ukyopon.h */
448336817Sdim  _(UKYOPON_IDENTIFY, WRITE, struct_ukyopon_identify_sz);
449336817Sdim  /* Entries from file: dev/usb/urio.h */
450336817Sdim  _(URIO_SEND_COMMAND, READWRITE, struct_urio_command_sz);
451336817Sdim  _(URIO_RECV_COMMAND, READWRITE, struct_urio_command_sz);
452336817Sdim  /* Entries from file: dev/usb/usb.h */
453336817Sdim  _(USB_REQUEST, READWRITE, struct_usb_ctl_request_sz);
454336817Sdim  _(USB_SETDEBUG, READ, sizeof(int));
455336817Sdim  _(USB_DISCOVER, NONE, 0);
456336817Sdim  _(USB_DEVICEINFO, READWRITE, struct_usb_device_info_sz);
457336817Sdim  _(USB_DEVICEINFO_OLD, READWRITE, struct_usb_device_info_old_sz);
458336817Sdim  _(USB_DEVICESTATS, WRITE, struct_usb_device_stats_sz);
459336817Sdim  _(USB_GET_REPORT_DESC, WRITE, struct_usb_ctl_report_desc_sz);
460336817Sdim  _(USB_SET_IMMED, READ, sizeof(int));
461336817Sdim  _(USB_GET_REPORT, READWRITE, struct_usb_ctl_report_sz);
462336817Sdim  _(USB_SET_REPORT, READ, struct_usb_ctl_report_sz);
463336817Sdim  _(USB_GET_REPORT_ID, WRITE, sizeof(int));
464336817Sdim  _(USB_GET_CONFIG, WRITE, sizeof(int));
465336817Sdim  _(USB_SET_CONFIG, READ, sizeof(int));
466336817Sdim  _(USB_GET_ALTINTERFACE, READWRITE, struct_usb_alt_interface_sz);
467336817Sdim  _(USB_SET_ALTINTERFACE, READWRITE, struct_usb_alt_interface_sz);
468336817Sdim  _(USB_GET_NO_ALT, READWRITE, struct_usb_alt_interface_sz);
469336817Sdim  _(USB_GET_DEVICE_DESC, WRITE, struct_usb_device_descriptor_sz);
470336817Sdim  _(USB_GET_CONFIG_DESC, READWRITE, struct_usb_config_desc_sz);
471336817Sdim  _(USB_GET_INTERFACE_DESC, READWRITE, struct_usb_interface_desc_sz);
472336817Sdim  _(USB_GET_ENDPOINT_DESC, READWRITE, struct_usb_endpoint_desc_sz);
473336817Sdim  _(USB_GET_FULL_DESC, READWRITE, struct_usb_full_desc_sz);
474336817Sdim  _(USB_GET_STRING_DESC, READWRITE, struct_usb_string_desc_sz);
475336817Sdim  _(USB_DO_REQUEST, READWRITE, struct_usb_ctl_request_sz);
476336817Sdim  _(USB_GET_DEVICEINFO, WRITE, struct_usb_device_info_sz);
477336817Sdim  _(USB_GET_DEVICEINFO_OLD, WRITE, struct_usb_device_info_old_sz);
478336817Sdim  _(USB_SET_SHORT_XFER, READ, sizeof(int));
479336817Sdim  _(USB_SET_TIMEOUT, READ, sizeof(int));
480336817Sdim  _(USB_SET_BULK_RA, READ, sizeof(int));
481336817Sdim  _(USB_SET_BULK_WB, READ, sizeof(int));
482336817Sdim  _(USB_SET_BULK_RA_OPT, READ, struct_usb_bulk_ra_wb_opt_sz);
483336817Sdim  _(USB_SET_BULK_WB_OPT, READ, struct_usb_bulk_ra_wb_opt_sz);
484336817Sdim  _(USB_GET_CM_OVER_DATA, WRITE, sizeof(int));
485336817Sdim  _(USB_SET_CM_OVER_DATA, READ, sizeof(int));
486336817Sdim  /* Entries from file: dev/usb/utoppy.h */
487336817Sdim  _(UTOPPYIOTURBO, READ, sizeof(int));
488336817Sdim  _(UTOPPYIOREBOOT, NONE, 0);
489336817Sdim  _(UTOPPYIOSTATS, WRITE, struct_utoppy_stats_sz);
490336817Sdim  _(UTOPPYIORENAME, READ, struct_utoppy_rename_sz);
491336817Sdim  _(UTOPPYIOMKDIR, READ, sizeof(uptr));
492336817Sdim  _(UTOPPYIODELETE, READ, sizeof(uptr));
493336817Sdim  _(UTOPPYIOREADDIR, READ, sizeof(uptr));
494336817Sdim  _(UTOPPYIOREADFILE, READ, struct_utoppy_readfile_sz);
495336817Sdim  _(UTOPPYIOWRITEFILE, READ, struct_utoppy_writefile_sz);
496336817Sdim  /* Entries from file: dev/vme/xio.h */
497336817Sdim  _(DIOSXDCMD, READWRITE, struct_xd_iocmd_sz);
498336817Sdim  /* Entries from file: dev/wscons/wsdisplay_usl_io.h */
499336817Sdim  _(VT_OPENQRY, WRITE, sizeof(int));
500336817Sdim  _(VT_SETMODE, READ, struct_vt_mode_sz);
501336817Sdim  _(VT_GETMODE, WRITE, struct_vt_mode_sz);
502336817Sdim  _(VT_RELDISP, NONE, 0);
503336817Sdim  _(VT_ACTIVATE, NONE, 0);
504336817Sdim  _(VT_WAITACTIVE, NONE, 0);
505336817Sdim  _(VT_GETACTIVE, WRITE, sizeof(int));
506336817Sdim  _(VT_GETSTATE, WRITE, struct_vt_stat_sz);
507336817Sdim  _(KDGETKBENT, READWRITE, struct_kbentry_sz);
508336817Sdim  _(KDGKBMODE, WRITE, sizeof(int));
509336817Sdim  _(KDSKBMODE, NONE, 0);
510336817Sdim  _(KDMKTONE, NONE, 0);
511336817Sdim  _(KDSETMODE, NONE, 0);
512336817Sdim  _(KDENABIO, NONE, 0);
513336817Sdim  _(KDDISABIO, NONE, 0);
514336817Sdim  _(KDGKBTYPE, WRITE, sizeof(char));
515336817Sdim  _(KDGETLED, WRITE, sizeof(int));
516336817Sdim  _(KDSETLED, NONE, 0);
517336817Sdim  _(KDSETRAD, NONE, 0);
518336817Sdim  _(VGAPCVTID, READWRITE, struct_pcvtid_sz);
519336817Sdim  _(CONS_GETVERS, WRITE, sizeof(int));
520336817Sdim  /* Entries from file: dev/wscons/wsconsio.h */
521336817Sdim  _(WSKBDIO_GTYPE, WRITE, sizeof(unsigned int));
522336817Sdim  _(WSKBDIO_BELL, NONE, 0);
523336817Sdim  _(WSKBDIO_COMPLEXBELL, READ, struct_wskbd_bell_data_sz);
524336817Sdim  _(WSKBDIO_SETBELL, READ, struct_wskbd_bell_data_sz);
525336817Sdim  _(WSKBDIO_GETBELL, WRITE, struct_wskbd_bell_data_sz);
526336817Sdim  _(WSKBDIO_SETDEFAULTBELL, READ, struct_wskbd_bell_data_sz);
527336817Sdim  _(WSKBDIO_GETDEFAULTBELL, WRITE, struct_wskbd_bell_data_sz);
528336817Sdim  _(WSKBDIO_SETKEYREPEAT, READ, struct_wskbd_keyrepeat_data_sz);
529336817Sdim  _(WSKBDIO_GETKEYREPEAT, WRITE, struct_wskbd_keyrepeat_data_sz);
530336817Sdim  _(WSKBDIO_SETDEFAULTKEYREPEAT, READ, struct_wskbd_keyrepeat_data_sz);
531336817Sdim  _(WSKBDIO_GETDEFAULTKEYREPEAT, WRITE, struct_wskbd_keyrepeat_data_sz);
532336817Sdim  _(WSKBDIO_SETLEDS, READ, sizeof(int));
533336817Sdim  _(WSKBDIO_GETLEDS, WRITE, sizeof(int));
534336817Sdim  _(WSKBDIO_GETMAP, READWRITE, struct_wskbd_map_data_sz);
535336817Sdim  _(WSKBDIO_SETMAP, READ, struct_wskbd_map_data_sz);
536336817Sdim  _(WSKBDIO_GETENCODING, WRITE, sizeof(int));
537336817Sdim  _(WSKBDIO_SETENCODING, READ, sizeof(int));
538336817Sdim  _(WSKBDIO_SETMODE, READ, sizeof(int));
539336817Sdim  _(WSKBDIO_GETMODE, WRITE, sizeof(int));
540336817Sdim  _(WSKBDIO_SETKEYCLICK, READ, sizeof(int));
541336817Sdim  _(WSKBDIO_GETKEYCLICK, WRITE, sizeof(int));
542336817Sdim  _(WSKBDIO_GETSCROLL, WRITE, struct_wskbd_scroll_data_sz);
543336817Sdim  _(WSKBDIO_SETSCROLL, READ, struct_wskbd_scroll_data_sz);
544336817Sdim  _(WSKBDIO_SETVERSION, READ, sizeof(int));
545336817Sdim  _(WSMOUSEIO_GTYPE, WRITE, sizeof(unsigned int));
546336817Sdim  _(WSMOUSEIO_SRES, READ, sizeof(unsigned int));
547336817Sdim  _(WSMOUSEIO_SSCALE, READ, sizeof(unsigned int));
548336817Sdim  _(WSMOUSEIO_SRATE, READ, sizeof(unsigned int));
549336817Sdim  _(WSMOUSEIO_SCALIBCOORDS, READ, struct_wsmouse_calibcoords_sz);
550336817Sdim  _(WSMOUSEIO_GCALIBCOORDS, WRITE, struct_wsmouse_calibcoords_sz);
551336817Sdim  _(WSMOUSEIO_GETID, READWRITE, struct_wsmouse_id_sz);
552336817Sdim  _(WSMOUSEIO_GETREPEAT, WRITE, struct_wsmouse_repeat_sz);
553336817Sdim  _(WSMOUSEIO_SETREPEAT, READ, struct_wsmouse_repeat_sz);
554336817Sdim  _(WSMOUSEIO_SETVERSION, READ, sizeof(int));
555336817Sdim  _(WSDISPLAYIO_GTYPE, WRITE, sizeof(unsigned int));
556336817Sdim  _(WSDISPLAYIO_GINFO, WRITE, struct_wsdisplay_fbinfo_sz);
557336817Sdim  _(WSDISPLAYIO_GETCMAP, READ, struct_wsdisplay_cmap_sz);
558336817Sdim  _(WSDISPLAYIO_PUTCMAP, READ, struct_wsdisplay_cmap_sz);
559336817Sdim  _(WSDISPLAYIO_GVIDEO, WRITE, sizeof(unsigned int));
560336817Sdim  _(WSDISPLAYIO_SVIDEO, READ, sizeof(unsigned int));
561336817Sdim  _(WSDISPLAYIO_GCURPOS, WRITE, struct_wsdisplay_curpos_sz);
562336817Sdim  _(WSDISPLAYIO_SCURPOS, READ, struct_wsdisplay_curpos_sz);
563336817Sdim  _(WSDISPLAYIO_GCURMAX, WRITE, struct_wsdisplay_curpos_sz);
564336817Sdim  _(WSDISPLAYIO_GCURSOR, READWRITE, struct_wsdisplay_cursor_sz);
565336817Sdim  _(WSDISPLAYIO_SCURSOR, READ, struct_wsdisplay_cursor_sz);
566336817Sdim  _(WSDISPLAYIO_GMODE, WRITE, sizeof(unsigned int));
567336817Sdim  _(WSDISPLAYIO_SMODE, READ, sizeof(unsigned int));
568336817Sdim  _(WSDISPLAYIO_LDFONT, READ, struct_wsdisplay_font_sz);
569336817Sdim  _(WSDISPLAYIO_ADDSCREEN, READ, struct_wsdisplay_addscreendata_sz);
570336817Sdim  _(WSDISPLAYIO_DELSCREEN, READ, struct_wsdisplay_delscreendata_sz);
571336817Sdim  _(WSDISPLAYIO_SFONT, READ, struct_wsdisplay_usefontdata_sz);
572336817Sdim  _(_O_WSDISPLAYIO_SETKEYBOARD, READWRITE, struct_wsdisplay_kbddata_sz);
573336817Sdim  _(WSDISPLAYIO_GETPARAM, READWRITE, struct_wsdisplay_param_sz);
574336817Sdim  _(WSDISPLAYIO_SETPARAM, READWRITE, struct_wsdisplay_param_sz);
575336817Sdim  _(WSDISPLAYIO_GETACTIVESCREEN, WRITE, sizeof(int));
576336817Sdim  _(WSDISPLAYIO_GETWSCHAR, READWRITE, struct_wsdisplay_char_sz);
577336817Sdim  _(WSDISPLAYIO_PUTWSCHAR, READWRITE, struct_wsdisplay_char_sz);
578336817Sdim  _(WSDISPLAYIO_DGSCROLL, WRITE, struct_wsdisplay_scroll_data_sz);
579336817Sdim  _(WSDISPLAYIO_DSSCROLL, READ, struct_wsdisplay_scroll_data_sz);
580336817Sdim  _(WSDISPLAYIO_GMSGATTRS, WRITE, struct_wsdisplay_msgattrs_sz);
581336817Sdim  _(WSDISPLAYIO_SMSGATTRS, READ, struct_wsdisplay_msgattrs_sz);
582336817Sdim  _(WSDISPLAYIO_GBORDER, WRITE, sizeof(int));
583336817Sdim  _(WSDISPLAYIO_SBORDER, READ, sizeof(int));
584336817Sdim  _(WSDISPLAYIO_SSPLASH, READ, sizeof(int));
585336817Sdim  _(WSDISPLAYIO_SPROGRESS, READ, sizeof(int));
586336817Sdim  _(WSDISPLAYIO_LINEBYTES, WRITE, sizeof(unsigned int));
587336817Sdim  _(WSDISPLAYIO_SETVERSION, READ, sizeof(int));
588336817Sdim  _(WSMUXIO_ADD_DEVICE, READ, struct_wsmux_device_sz);
589336817Sdim  _(WSMUXIO_REMOVE_DEVICE, READ, struct_wsmux_device_sz);
590336817Sdim  _(WSMUXIO_LIST_DEVICES, READWRITE, struct_wsmux_device_list_sz);
591336817Sdim  _(WSMUXIO_INJECTEVENT, READ, struct_wscons_event_sz);
592336817Sdim  _(WSDISPLAYIO_GET_BUSID, WRITE, struct_wsdisplayio_bus_id_sz);
593336817Sdim  _(WSDISPLAYIO_GET_EDID, READWRITE, struct_wsdisplayio_edid_info_sz);
594336817Sdim  _(WSDISPLAYIO_SET_POLLING, READ, sizeof(int));
595336817Sdim  _(WSDISPLAYIO_GET_FBINFO, READWRITE, struct_wsdisplayio_fbinfo_sz);
596336817Sdim  _(WSDISPLAYIO_DOBLIT, READWRITE, struct_wsdisplayio_blit_sz);
597336817Sdim  _(WSDISPLAYIO_WAITBLIT, READWRITE, struct_wsdisplayio_blit_sz);
598336817Sdim  /* Entries from file: dev/biovar.h */
599336817Sdim  _(BIOCLOCATE, READWRITE, struct_bio_locate_sz);
600336817Sdim  _(BIOCINQ, READWRITE, struct_bioc_inq_sz);
601336817Sdim  _(BIOCDISK_NOVOL, READWRITE, struct_bioc_disk_sz);
602336817Sdim  _(BIOCDISK, READWRITE, struct_bioc_disk_sz);
603336817Sdim  _(BIOCVOL, READWRITE, struct_bioc_vol_sz);
604336817Sdim  _(BIOCALARM, READWRITE, struct_bioc_alarm_sz);
605336817Sdim  _(BIOCBLINK, READWRITE, struct_bioc_blink_sz);
606336817Sdim  _(BIOCSETSTATE, READWRITE, struct_bioc_setstate_sz);
607336817Sdim  _(BIOCVOLOPS, READWRITE, struct_bioc_volops_sz);
608336817Sdim  /* Entries from file: dev/md.h */
609336817Sdim  _(MD_GETCONF, WRITE, struct_md_conf_sz);
610336817Sdim  _(MD_SETCONF, READ, struct_md_conf_sz);
611336817Sdim  /* Entries from file: dev/ccdvar.h */
612336817Sdim  _(CCDIOCSET, READWRITE, struct_ccd_ioctl_sz);
613336817Sdim  _(CCDIOCCLR, READ, struct_ccd_ioctl_sz);
614336817Sdim  /* Entries from file: dev/cgdvar.h */
615336817Sdim  _(CGDIOCSET, READWRITE, struct_cgd_ioctl_sz);
616336817Sdim  _(CGDIOCCLR, READ, struct_cgd_ioctl_sz);
617336817Sdim  _(CGDIOCGET, READWRITE, struct_cgd_user_sz);
618336817Sdim  /* Entries from file: dev/fssvar.h */
619336817Sdim  _(FSSIOCSET, READ, struct_fss_set_sz);
620336817Sdim  _(FSSIOCGET, WRITE, struct_fss_get_sz);
621336817Sdim  _(FSSIOCCLR, NONE, 0);
622336817Sdim  _(FSSIOFSET, READ, sizeof(int));
623336817Sdim  _(FSSIOFGET, WRITE, sizeof(int));
624336817Sdim  /* Entries from file: dev/bluetooth/btdev.h */
625336817Sdim  _(BTDEV_ATTACH, READ, struct_plistref_sz);
626336817Sdim  _(BTDEV_DETACH, READ, struct_plistref_sz);
627336817Sdim  /* Entries from file: dev/bluetooth/btsco.h */
628336817Sdim  _(BTSCO_GETINFO, WRITE, struct_btsco_info_sz);
629336817Sdim  /* Entries from file: dev/kttcpio.h */
630336817Sdim  _(KTTCP_IO_SEND, READWRITE, struct_kttcp_io_args_sz);
631336817Sdim  _(KTTCP_IO_RECV, READWRITE, struct_kttcp_io_args_sz);
632336817Sdim  /* Entries from file: dev/lockstat.h */
633336817Sdim  _(IOC_LOCKSTAT_GVERSION, WRITE, sizeof(int));
634336817Sdim  _(IOC_LOCKSTAT_ENABLE, READ, struct_lsenable_sz);
635336817Sdim  _(IOC_LOCKSTAT_DISABLE, WRITE, struct_lsdisable_sz);
636336817Sdim  /* Entries from file: dev/vndvar.h */
637336817Sdim  _(VNDIOCSET, READWRITE, struct_vnd_ioctl_sz);
638336817Sdim  _(VNDIOCCLR, READ, struct_vnd_ioctl_sz);
639336817Sdim  _(VNDIOCGET, READWRITE, struct_vnd_user_sz);
640336817Sdim  /* Entries from file: dev/spkrio.h */
641336817Sdim  _(SPKRTONE, READ, struct_tone_sz);
642336817Sdim  _(SPKRTUNE, NONE, 0);
643336817Sdim  _(SPKRGETVOL, WRITE, sizeof(unsigned int));
644336817Sdim  _(SPKRSETVOL, READ, sizeof(unsigned int));
645353358Sdim#if defined(__x86_64__)
646344779Sdim  /* Entries from file: dev/nvmm/nvmm_ioctl.h */
647344779Sdim  _(NVMM_IOC_CAPABILITY, WRITE, struct_nvmm_ioc_capability_sz);
648344779Sdim  _(NVMM_IOC_MACHINE_CREATE, READWRITE, struct_nvmm_ioc_machine_create_sz);
649344779Sdim  _(NVMM_IOC_MACHINE_DESTROY, READ, struct_nvmm_ioc_machine_destroy_sz);
650344779Sdim  _(NVMM_IOC_MACHINE_CONFIGURE, READ, struct_nvmm_ioc_machine_configure_sz);
651344779Sdim  _(NVMM_IOC_VCPU_CREATE, READ, struct_nvmm_ioc_vcpu_create_sz);
652344779Sdim  _(NVMM_IOC_VCPU_DESTROY, READ, struct_nvmm_ioc_vcpu_destroy_sz);
653360784Sdim  _(NVMM_IOC_VCPU_CONFIGURE, READ, struct_nvmm_ioc_vcpu_configure_sz);
654344779Sdim  _(NVMM_IOC_VCPU_SETSTATE, READ, struct_nvmm_ioc_vcpu_setstate_sz);
655344779Sdim  _(NVMM_IOC_VCPU_GETSTATE, READ, struct_nvmm_ioc_vcpu_getstate_sz);
656344779Sdim  _(NVMM_IOC_VCPU_INJECT, READ, struct_nvmm_ioc_vcpu_inject_sz);
657344779Sdim  _(NVMM_IOC_VCPU_RUN, READWRITE, struct_nvmm_ioc_vcpu_run_sz);
658344779Sdim  _(NVMM_IOC_GPA_MAP, READ, struct_nvmm_ioc_gpa_map_sz);
659344779Sdim  _(NVMM_IOC_GPA_UNMAP, READ, struct_nvmm_ioc_gpa_unmap_sz);
660344779Sdim  _(NVMM_IOC_HVA_MAP, READ, struct_nvmm_ioc_hva_map_sz);
661344779Sdim  _(NVMM_IOC_HVA_UNMAP, READ, struct_nvmm_ioc_hva_unmap_sz);
662353358Sdim  _(NVMM_IOC_CTL, READ, struct_nvmm_ioc_ctl_sz);
663344779Sdim#endif
664353358Sdim  /* Entries from file: dev/spi/spi_io.h */
665353358Sdim  _(SPI_IOCTL_CONFIGURE, READ, struct_spi_ioctl_configure_sz);
666353358Sdim  _(SPI_IOCTL_TRANSFER, READ, struct_spi_ioctl_transfer_sz);
667344779Sdim  /* Entries from file: fs/autofs/autofs_ioctl.h */
668344779Sdim  _(AUTOFSREQUEST, WRITE, struct_autofs_daemon_request_sz);
669344779Sdim  _(AUTOFSDONE, READ, struct_autofs_daemon_done_sz);
670336817Sdim  /* Entries from file: net/bpf.h */
671336817Sdim  _(BIOCGBLEN, WRITE, sizeof(unsigned int));
672336817Sdim  _(BIOCSBLEN, READWRITE, sizeof(unsigned int));
673336817Sdim  _(BIOCSETF, READ, struct_bpf_program_sz);
674336817Sdim  _(BIOCFLUSH, NONE, 0);
675336817Sdim  _(BIOCPROMISC, NONE, 0);
676336817Sdim  _(BIOCGDLT, WRITE, sizeof(unsigned int));
677336817Sdim  _(BIOCGETIF, WRITE, struct_ifreq_sz);
678336817Sdim  _(BIOCSETIF, READ, struct_ifreq_sz);
679336817Sdim  _(BIOCGSTATS, WRITE, struct_bpf_stat_sz);
680336817Sdim  _(BIOCGSTATSOLD, WRITE, struct_bpf_stat_old_sz);
681336817Sdim  _(BIOCIMMEDIATE, READ, sizeof(unsigned int));
682336817Sdim  _(BIOCVERSION, WRITE, struct_bpf_version_sz);
683336817Sdim  _(BIOCSTCPF, READ, struct_bpf_program_sz);
684336817Sdim  _(BIOCSUDPF, READ, struct_bpf_program_sz);
685336817Sdim  _(BIOCGHDRCMPLT, WRITE, sizeof(unsigned int));
686336817Sdim  _(BIOCSHDRCMPLT, READ, sizeof(unsigned int));
687336817Sdim  _(BIOCSDLT, READ, sizeof(unsigned int));
688336817Sdim  _(BIOCGDLTLIST, READWRITE, struct_bpf_dltlist_sz);
689344779Sdim  _(BIOCGDIRECTION, WRITE, sizeof(unsigned int));
690344779Sdim  _(BIOCSDIRECTION, READ, sizeof(unsigned int));
691336817Sdim  _(BIOCSRTIMEOUT, READ, struct_timeval_sz);
692336817Sdim  _(BIOCGRTIMEOUT, WRITE, struct_timeval_sz);
693336817Sdim  _(BIOCGFEEDBACK, WRITE, sizeof(unsigned int));
694336817Sdim  _(BIOCSFEEDBACK, READ, sizeof(unsigned int));
695336817Sdim  /* Entries from file: net/if_gre.h */
696336817Sdim  _(GRESADDRS, READ, struct_ifreq_sz);
697336817Sdim  _(GRESADDRD, READ, struct_ifreq_sz);
698336817Sdim  _(GREGADDRS, READWRITE, struct_ifreq_sz);
699336817Sdim  _(GREGADDRD, READWRITE, struct_ifreq_sz);
700336817Sdim  _(GRESPROTO, READ, struct_ifreq_sz);
701336817Sdim  _(GREGPROTO, READWRITE, struct_ifreq_sz);
702336817Sdim  _(GRESSOCK, READ, struct_ifreq_sz);
703336817Sdim  _(GREDSOCK, READ, struct_ifreq_sz);
704336817Sdim  /* Entries from file: net/if_ppp.h */
705336817Sdim  _(PPPIOCGRAWIN, WRITE, struct_ppp_rawin_sz);
706336817Sdim  _(PPPIOCGFLAGS, WRITE, sizeof(int));
707336817Sdim  _(PPPIOCSFLAGS, READ, sizeof(int));
708336817Sdim  _(PPPIOCGASYNCMAP, WRITE, sizeof(int));
709336817Sdim  _(PPPIOCSASYNCMAP, READ, sizeof(int));
710336817Sdim  _(PPPIOCGUNIT, WRITE, sizeof(int));
711336817Sdim  _(PPPIOCGRASYNCMAP, WRITE, sizeof(int));
712336817Sdim  _(PPPIOCSRASYNCMAP, READ, sizeof(int));
713336817Sdim  _(PPPIOCGMRU, WRITE, sizeof(int));
714336817Sdim  _(PPPIOCSMRU, READ, sizeof(int));
715336817Sdim  _(PPPIOCSMAXCID, READ, sizeof(int));
716336817Sdim  _(PPPIOCGXASYNCMAP, WRITE, (8 * sizeof(u32)));
717336817Sdim  _(PPPIOCSXASYNCMAP, READ, (8 * sizeof(u32)));
718336817Sdim  _(PPPIOCXFERUNIT, NONE, 0);
719336817Sdim  _(PPPIOCSCOMPRESS, READ, struct_ppp_option_data_sz);
720336817Sdim  _(PPPIOCGNPMODE, READWRITE, struct_npioctl_sz);
721336817Sdim  _(PPPIOCSNPMODE, READ, struct_npioctl_sz);
722336817Sdim  _(PPPIOCGIDLE, WRITE, struct_ppp_idle_sz);
723336817Sdim  _(PPPIOCGMTU, WRITE, sizeof(int));
724336817Sdim  _(PPPIOCSMTU, READ, sizeof(int));
725336817Sdim  _(SIOCGPPPSTATS, READWRITE, struct_ifpppstatsreq_sz);
726336817Sdim  _(SIOCGPPPCSTATS, READWRITE, struct_ifpppcstatsreq_sz);
727336817Sdim  /* Entries from file: net/npf.h */
728336817Sdim  _(IOC_NPF_VERSION, WRITE, sizeof(int));
729336817Sdim  _(IOC_NPF_SWITCH, READ, sizeof(int));
730344779Sdim  _(IOC_NPF_LOAD, READWRITE, struct_nvlist_ref_sz);
731336817Sdim  _(IOC_NPF_TABLE, READ, struct_npf_ioctl_table_sz);
732336817Sdim  _(IOC_NPF_STATS, READ, sizeof(uptr));
733344779Sdim  _(IOC_NPF_SAVE, WRITE, struct_nvlist_ref_sz);
734344779Sdim  _(IOC_NPF_RULE, READWRITE, struct_nvlist_ref_sz);
735344779Sdim  _(IOC_NPF_CONN_LOOKUP, READWRITE, struct_nvlist_ref_sz);
736360784Sdim  _(IOC_NPF_TABLE_REPLACE, READWRITE, struct_nvlist_ref_sz);
737336817Sdim  /* Entries from file: net/if_pppoe.h */
738336817Sdim  _(PPPOESETPARMS, READ, struct_pppoediscparms_sz);
739336817Sdim  _(PPPOEGETPARMS, READWRITE, struct_pppoediscparms_sz);
740336817Sdim  _(PPPOEGETSESSION, READWRITE, struct_pppoeconnectionstate_sz);
741336817Sdim  /* Entries from file: net/if_sppp.h */
742336817Sdim  _(SPPPGETAUTHCFG, READWRITE, struct_spppauthcfg_sz);
743336817Sdim  _(SPPPSETAUTHCFG, READ, struct_spppauthcfg_sz);
744336817Sdim  _(SPPPGETLCPCFG, READWRITE, struct_sppplcpcfg_sz);
745336817Sdim  _(SPPPSETLCPCFG, READ, struct_sppplcpcfg_sz);
746336817Sdim  _(SPPPGETSTATUS, READWRITE, struct_spppstatus_sz);
747336817Sdim  _(SPPPGETSTATUSNCP, READWRITE, struct_spppstatusncp_sz);
748336817Sdim  _(SPPPGETIDLETO, READWRITE, struct_spppidletimeout_sz);
749336817Sdim  _(SPPPSETIDLETO, READ, struct_spppidletimeout_sz);
750336817Sdim  _(SPPPGETAUTHFAILURES, READWRITE, struct_spppauthfailurestats_sz);
751336817Sdim  _(SPPPSETAUTHFAILURE, READ, struct_spppauthfailuresettings_sz);
752336817Sdim  _(SPPPSETDNSOPTS, READ, struct_spppdnssettings_sz);
753336817Sdim  _(SPPPGETDNSOPTS, READWRITE, struct_spppdnssettings_sz);
754336817Sdim  _(SPPPGETDNSADDRS, READWRITE, struct_spppdnsaddrs_sz);
755336817Sdim  _(SPPPSETKEEPALIVE, READ, struct_spppkeepalivesettings_sz);
756336817Sdim  _(SPPPGETKEEPALIVE, READWRITE, struct_spppkeepalivesettings_sz);
757336817Sdim  /* Entries from file: net/if_srt.h */
758336817Sdim  _(SRT_GETNRT, WRITE, sizeof(unsigned int));
759336817Sdim  _(SRT_GETRT, READWRITE, struct_srt_rt_sz);
760336817Sdim  _(SRT_SETRT, READ, struct_srt_rt_sz);
761336817Sdim  _(SRT_DELRT, READ, sizeof(unsigned int));
762336817Sdim  _(SRT_SFLAGS, READ, sizeof(unsigned int));
763336817Sdim  _(SRT_GFLAGS, WRITE, sizeof(unsigned int));
764336817Sdim  _(SRT_SGFLAGS, READWRITE, sizeof(unsigned int));
765336817Sdim  _(SRT_DEBUG, READ, sizeof(uptr));
766336817Sdim  /* Entries from file: net/if_tap.h */
767336817Sdim  _(TAPGIFNAME, WRITE, struct_ifreq_sz);
768336817Sdim  /* Entries from file: net/if_tun.h */
769336817Sdim  _(TUNSDEBUG, READ, sizeof(int));
770336817Sdim  _(TUNGDEBUG, WRITE, sizeof(int));
771336817Sdim  _(TUNSIFMODE, READ, sizeof(int));
772336817Sdim  _(TUNSIFHEAD, READ, sizeof(int));
773336817Sdim  _(TUNGIFHEAD, WRITE, sizeof(int));
774336817Sdim  /* Entries from file: net/pfvar.h */
775336817Sdim  _(DIOCSTART, NONE, 0);
776336817Sdim  _(DIOCSTOP, NONE, 0);
777336817Sdim  _(DIOCADDRULE, READWRITE, struct_pfioc_rule_sz);
778336817Sdim  _(DIOCGETRULES, READWRITE, struct_pfioc_rule_sz);
779336817Sdim  _(DIOCGETRULE, READWRITE, struct_pfioc_rule_sz);
780336817Sdim  _(DIOCSETLCK, READWRITE, sizeof(u32));
781336817Sdim  _(DIOCCLRSTATES, READWRITE, struct_pfioc_state_kill_sz);
782336817Sdim  _(DIOCGETSTATE, READWRITE, struct_pfioc_state_sz);
783336817Sdim  _(DIOCSETSTATUSIF, READWRITE, struct_pfioc_if_sz);
784336817Sdim  _(DIOCGETSTATUS, READWRITE, struct_pf_status_sz);
785336817Sdim  _(DIOCCLRSTATUS, NONE, 0);
786336817Sdim  _(DIOCNATLOOK, READWRITE, struct_pfioc_natlook_sz);
787336817Sdim  _(DIOCSETDEBUG, READWRITE, sizeof(u32));
788336817Sdim  _(DIOCGETSTATES, READWRITE, struct_pfioc_states_sz);
789336817Sdim  _(DIOCCHANGERULE, READWRITE, struct_pfioc_rule_sz);
790336817Sdim  _(DIOCSETTIMEOUT, READWRITE, struct_pfioc_tm_sz);
791336817Sdim  _(DIOCGETTIMEOUT, READWRITE, struct_pfioc_tm_sz);
792336817Sdim  _(DIOCADDSTATE, READWRITE, struct_pfioc_state_sz);
793336817Sdim  _(DIOCCLRRULECTRS, NONE, 0);
794336817Sdim  _(DIOCGETLIMIT, READWRITE, struct_pfioc_limit_sz);
795336817Sdim  _(DIOCSETLIMIT, READWRITE, struct_pfioc_limit_sz);
796336817Sdim  _(DIOCKILLSTATES, READWRITE, struct_pfioc_state_kill_sz);
797336817Sdim  _(DIOCSTARTALTQ, NONE, 0);
798336817Sdim  _(DIOCSTOPALTQ, NONE, 0);
799336817Sdim  _(DIOCADDALTQ, READWRITE, struct_pfioc_altq_sz);
800336817Sdim  _(DIOCGETALTQS, READWRITE, struct_pfioc_altq_sz);
801336817Sdim  _(DIOCGETALTQ, READWRITE, struct_pfioc_altq_sz);
802336817Sdim  _(DIOCCHANGEALTQ, READWRITE, struct_pfioc_altq_sz);
803336817Sdim  _(DIOCGETQSTATS, READWRITE, struct_pfioc_qstats_sz);
804336817Sdim  _(DIOCBEGINADDRS, READWRITE, struct_pfioc_pooladdr_sz);
805336817Sdim  _(DIOCADDADDR, READWRITE, struct_pfioc_pooladdr_sz);
806336817Sdim  _(DIOCGETADDRS, READWRITE, struct_pfioc_pooladdr_sz);
807336817Sdim  _(DIOCGETADDR, READWRITE, struct_pfioc_pooladdr_sz);
808336817Sdim  _(DIOCCHANGEADDR, READWRITE, struct_pfioc_pooladdr_sz);
809336817Sdim  _(DIOCADDSTATES, READWRITE, struct_pfioc_states_sz);
810336817Sdim  _(DIOCGETRULESETS, READWRITE, struct_pfioc_ruleset_sz);
811336817Sdim  _(DIOCGETRULESET, READWRITE, struct_pfioc_ruleset_sz);
812336817Sdim  _(DIOCRCLRTABLES, READWRITE, struct_pfioc_table_sz);
813336817Sdim  _(DIOCRADDTABLES, READWRITE, struct_pfioc_table_sz);
814336817Sdim  _(DIOCRDELTABLES, READWRITE, struct_pfioc_table_sz);
815336817Sdim  _(DIOCRGETTABLES, READWRITE, struct_pfioc_table_sz);
816336817Sdim  _(DIOCRGETTSTATS, READWRITE, struct_pfioc_table_sz);
817336817Sdim  _(DIOCRCLRTSTATS, READWRITE, struct_pfioc_table_sz);
818336817Sdim  _(DIOCRCLRADDRS, READWRITE, struct_pfioc_table_sz);
819336817Sdim  _(DIOCRADDADDRS, READWRITE, struct_pfioc_table_sz);
820336817Sdim  _(DIOCRDELADDRS, READWRITE, struct_pfioc_table_sz);
821336817Sdim  _(DIOCRSETADDRS, READWRITE, struct_pfioc_table_sz);
822336817Sdim  _(DIOCRGETADDRS, READWRITE, struct_pfioc_table_sz);
823336817Sdim  _(DIOCRGETASTATS, READWRITE, struct_pfioc_table_sz);
824336817Sdim  _(DIOCRCLRASTATS, READWRITE, struct_pfioc_table_sz);
825336817Sdim  _(DIOCRTSTADDRS, READWRITE, struct_pfioc_table_sz);
826336817Sdim  _(DIOCRSETTFLAGS, READWRITE, struct_pfioc_table_sz);
827336817Sdim  _(DIOCRINADEFINE, READWRITE, struct_pfioc_table_sz);
828336817Sdim  _(DIOCOSFPFLUSH, NONE, 0);
829336817Sdim  _(DIOCOSFPADD, READWRITE, struct_pf_osfp_ioctl_sz);
830336817Sdim  _(DIOCOSFPGET, READWRITE, struct_pf_osfp_ioctl_sz);
831336817Sdim  _(DIOCXBEGIN, READWRITE, struct_pfioc_trans_sz);
832336817Sdim  _(DIOCXCOMMIT, READWRITE, struct_pfioc_trans_sz);
833336817Sdim  _(DIOCXROLLBACK, READWRITE, struct_pfioc_trans_sz);
834336817Sdim  _(DIOCGETSRCNODES, READWRITE, struct_pfioc_src_nodes_sz);
835336817Sdim  _(DIOCCLRSRCNODES, NONE, 0);
836336817Sdim  _(DIOCSETHOSTID, READWRITE, sizeof(u32));
837336817Sdim  _(DIOCIGETIFACES, READWRITE, struct_pfioc_iface_sz);
838336817Sdim  _(DIOCSETIFFLAG, READWRITE, struct_pfioc_iface_sz);
839336817Sdim  _(DIOCCLRIFFLAG, READWRITE, struct_pfioc_iface_sz);
840336817Sdim  _(DIOCKILLSRCNODES, READWRITE, struct_pfioc_src_node_kill_sz);
841336817Sdim  /* Entries from file: netbt/hci.h */
842336817Sdim  _(SIOCGBTINFO, READWRITE, struct_btreq_sz);
843336817Sdim  _(SIOCGBTINFOA, READWRITE, struct_btreq_sz);
844336817Sdim  _(SIOCNBTINFO, READWRITE, struct_btreq_sz);
845336817Sdim  _(SIOCSBTFLAGS, READWRITE, struct_btreq_sz);
846336817Sdim  _(SIOCSBTPOLICY, READWRITE, struct_btreq_sz);
847336817Sdim  _(SIOCSBTPTYPE, READWRITE, struct_btreq_sz);
848336817Sdim  _(SIOCGBTSTATS, READWRITE, struct_btreq_sz);
849336817Sdim  _(SIOCZBTSTATS, READWRITE, struct_btreq_sz);
850336817Sdim  _(SIOCBTDUMP, READ, struct_btreq_sz);
851336817Sdim  _(SIOCSBTSCOMTU, READWRITE, struct_btreq_sz);
852336817Sdim  _(SIOCGBTFEAT, READWRITE, struct_btreq_sz);
853336817Sdim  /* Entries from file: netinet/ip_nat.h */
854336817Sdim  _(SIOCADNAT, READ, struct_ipfobj_sz);
855336817Sdim  _(SIOCRMNAT, READ, struct_ipfobj_sz);
856336817Sdim  _(SIOCGNATS, READWRITE, struct_ipfobj_sz);
857336817Sdim  _(SIOCGNATL, READWRITE, struct_ipfobj_sz);
858336817Sdim  _(SIOCPURGENAT, READWRITE, struct_ipfobj_sz);
859344779Sdim  /* Entries from file: netinet/sctp_uio.h */
860344779Sdim  _(SIOCCONNECTX, READWRITE, struct_sctp_connectx_addrs_sz);
861344779Sdim  _(SIOCCONNECTXDEL, READWRITE, struct_sctp_connectx_addrs_sz);
862336817Sdim  /* Entries from file: netinet6/in6_var.h */
863336817Sdim  _(SIOCSIFINFO_FLAGS, READWRITE, struct_in6_ndireq_sz);
864336817Sdim  _(SIOCAADDRCTL_POLICY, READ, struct_in6_addrpolicy_sz);
865336817Sdim  _(SIOCDADDRCTL_POLICY, READ, struct_in6_addrpolicy_sz);
866336817Sdim  /* Entries from file: netsmb/smb_dev.h */
867336817Sdim  _(SMBIOC_OPENSESSION, READ, struct_smbioc_ossn_sz);
868336817Sdim  _(SMBIOC_OPENSHARE, READ, struct_smbioc_oshare_sz);
869336817Sdim  _(SMBIOC_REQUEST, READWRITE, struct_smbioc_rq_sz);
870336817Sdim  _(SMBIOC_SETFLAGS, READ, struct_smbioc_flags_sz);
871336817Sdim  _(SMBIOC_LOOKUP, READ, struct_smbioc_lookup_sz);
872336817Sdim  _(SMBIOC_READ, READWRITE, struct_smbioc_rw_sz);
873336817Sdim  _(SMBIOC_WRITE, READWRITE, struct_smbioc_rw_sz);
874336817Sdim  /* Entries from file: sys/agpio.h */
875336817Sdim  _(AGPIOC_INFO, WRITE, struct__agp_info_sz);
876336817Sdim  _(AGPIOC_ACQUIRE, NONE, 0);
877336817Sdim  _(AGPIOC_RELEASE, NONE, 0);
878336817Sdim  _(AGPIOC_SETUP, READ, struct__agp_setup_sz);
879336817Sdim  _(AGPIOC_ALLOCATE, READWRITE, struct__agp_allocate_sz);
880336817Sdim  _(AGPIOC_DEALLOCATE, READ, sizeof(int));
881336817Sdim  _(AGPIOC_BIND, READ, struct__agp_bind_sz);
882336817Sdim  _(AGPIOC_UNBIND, READ, struct__agp_unbind_sz);
883336817Sdim  /* Entries from file: sys/audioio.h */
884336817Sdim  _(AUDIO_GETINFO, WRITE, struct_audio_info_sz);
885336817Sdim  _(AUDIO_SETINFO, READWRITE, struct_audio_info_sz);
886336817Sdim  _(AUDIO_DRAIN, NONE, 0);
887336817Sdim  _(AUDIO_FLUSH, NONE, 0);
888336817Sdim  _(AUDIO_WSEEK, WRITE, sizeof(unsigned long));
889336817Sdim  _(AUDIO_RERROR, WRITE, sizeof(int));
890336817Sdim  _(AUDIO_GETDEV, WRITE, struct_audio_device_sz);
891336817Sdim  _(AUDIO_GETENC, READWRITE, struct_audio_encoding_sz);
892336817Sdim  _(AUDIO_GETFD, WRITE, sizeof(int));
893336817Sdim  _(AUDIO_SETFD, READWRITE, sizeof(int));
894336817Sdim  _(AUDIO_PERROR, WRITE, sizeof(int));
895336817Sdim  _(AUDIO_GETIOFFS, WRITE, struct_audio_offset_sz);
896336817Sdim  _(AUDIO_GETOOFFS, WRITE, struct_audio_offset_sz);
897336817Sdim  _(AUDIO_GETPROPS, WRITE, sizeof(int));
898336817Sdim  _(AUDIO_GETBUFINFO, WRITE, struct_audio_info_sz);
899336817Sdim  _(AUDIO_SETCHAN, READ, sizeof(int));
900336817Sdim  _(AUDIO_GETCHAN, WRITE, sizeof(int));
901353358Sdim  _(AUDIO_QUERYFORMAT, READWRITE, struct_audio_format_query_sz);
902353358Sdim  _(AUDIO_GETFORMAT, WRITE, struct_audio_info_sz);
903353358Sdim  _(AUDIO_SETFORMAT, READ, struct_audio_info_sz);
904336817Sdim  _(AUDIO_MIXER_READ, READWRITE, struct_mixer_ctrl_sz);
905336817Sdim  _(AUDIO_MIXER_WRITE, READWRITE, struct_mixer_ctrl_sz);
906336817Sdim  _(AUDIO_MIXER_DEVINFO, READWRITE, struct_mixer_devinfo_sz);
907336817Sdim  /* Entries from file: sys/ataio.h */
908336817Sdim  _(ATAIOCCOMMAND, READWRITE, struct_atareq_sz);
909336817Sdim  _(ATABUSIOSCAN, READ, struct_atabusioscan_args_sz);
910336817Sdim  _(ATABUSIORESET, NONE, 0);
911336817Sdim  _(ATABUSIODETACH, READ, struct_atabusiodetach_args_sz);
912336817Sdim  /* Entries from file: sys/cdio.h */
913336817Sdim  _(CDIOCPLAYTRACKS, READ, struct_ioc_play_track_sz);
914336817Sdim  _(CDIOCPLAYBLOCKS, READ, struct_ioc_play_blocks_sz);
915336817Sdim  _(CDIOCREADSUBCHANNEL, READWRITE, struct_ioc_read_subchannel_sz);
916336817Sdim  _(CDIOREADTOCHEADER, WRITE, struct_ioc_toc_header_sz);
917336817Sdim  _(CDIOREADTOCENTRIES, READWRITE, struct_ioc_read_toc_entry_sz);
918336817Sdim  _(CDIOREADMSADDR, READWRITE, sizeof(int));
919336817Sdim  _(CDIOCSETPATCH, READ, struct_ioc_patch_sz);
920336817Sdim  _(CDIOCGETVOL, WRITE, struct_ioc_vol_sz);
921336817Sdim  _(CDIOCSETVOL, READ, struct_ioc_vol_sz);
922336817Sdim  _(CDIOCSETMONO, NONE, 0);
923336817Sdim  _(CDIOCSETSTEREO, NONE, 0);
924336817Sdim  _(CDIOCSETMUTE, NONE, 0);
925336817Sdim  _(CDIOCSETLEFT, NONE, 0);
926336817Sdim  _(CDIOCSETRIGHT, NONE, 0);
927336817Sdim  _(CDIOCSETDEBUG, NONE, 0);
928336817Sdim  _(CDIOCCLRDEBUG, NONE, 0);
929336817Sdim  _(CDIOCPAUSE, NONE, 0);
930336817Sdim  _(CDIOCRESUME, NONE, 0);
931336817Sdim  _(CDIOCRESET, NONE, 0);
932336817Sdim  _(CDIOCSTART, NONE, 0);
933336817Sdim  _(CDIOCSTOP, NONE, 0);
934336817Sdim  _(CDIOCEJECT, NONE, 0);
935336817Sdim  _(CDIOCALLOW, NONE, 0);
936336817Sdim  _(CDIOCPREVENT, NONE, 0);
937336817Sdim  _(CDIOCCLOSE, NONE, 0);
938336817Sdim  _(CDIOCPLAYMSF, READ, struct_ioc_play_msf_sz);
939336817Sdim  _(CDIOCLOADUNLOAD, READ, struct_ioc_load_unload_sz);
940336817Sdim  /* Entries from file: sys/chio.h */
941336817Sdim  _(CHIOMOVE, READ, struct_changer_move_request_sz);
942336817Sdim  _(CHIOEXCHANGE, READ, struct_changer_exchange_request_sz);
943336817Sdim  _(CHIOPOSITION, READ, struct_changer_position_request_sz);
944336817Sdim  _(CHIOSPICKER, READ, sizeof(int));
945336817Sdim  _(CHIOGPARAMS, WRITE, struct_changer_params_sz);
946336817Sdim  _(CHIOIELEM, NONE, 0);
947336817Sdim  _(OCHIOGSTATUS, READ, struct_ochanger_element_status_request_sz);
948336817Sdim  _(CHIOGSTATUS, READ, struct_changer_element_status_request_sz);
949336817Sdim  _(CHIOSVOLTAG, READ, struct_changer_set_voltag_request_sz);
950336817Sdim  /* Entries from file: sys/clockctl.h */
951336817Sdim  _(CLOCKCTL_SETTIMEOFDAY, READ, struct_clockctl_settimeofday_sz);
952336817Sdim  _(CLOCKCTL_ADJTIME, READWRITE, struct_clockctl_adjtime_sz);
953336817Sdim  _(CLOCKCTL_CLOCK_SETTIME, READ, struct_clockctl_clock_settime_sz);
954336817Sdim  _(CLOCKCTL_NTP_ADJTIME, READWRITE, struct_clockctl_ntp_adjtime_sz);
955336817Sdim  /* Entries from file: sys/cpuio.h */
956336817Sdim  _(IOC_CPU_SETSTATE, READ, struct_cpustate_sz);
957336817Sdim  _(IOC_CPU_GETSTATE, READWRITE, struct_cpustate_sz);
958336817Sdim  _(IOC_CPU_GETCOUNT, WRITE, sizeof(int));
959336817Sdim  _(IOC_CPU_MAPID, READWRITE, sizeof(int));
960336817Sdim  _(IOC_CPU_UCODE_GET_VERSION, READWRITE, struct_cpu_ucode_version_sz);
961336817Sdim  _(IOC_CPU_UCODE_APPLY, READ, struct_cpu_ucode_sz);
962336817Sdim  /* Entries from file: sys/dkio.h */
963336817Sdim  _(DIOCGDINFO, WRITE, struct_disklabel_sz);
964336817Sdim  _(DIOCSDINFO, READ, struct_disklabel_sz);
965336817Sdim  _(DIOCWDINFO, READ, 0);
966336817Sdim  _(DIOCRFORMAT, READWRITE, struct_format_op_sz);
967336817Sdim  _(DIOCWFORMAT, READWRITE, struct_format_op_sz);
968336817Sdim  _(DIOCSSTEP, READ, sizeof(int));
969336817Sdim  _(DIOCSRETRIES, READ, sizeof(int));
970336817Sdim  _(DIOCKLABEL, READ, sizeof(int));
971336817Sdim  _(DIOCWLABEL, READ, sizeof(int));
972336817Sdim  _(DIOCSBAD, READ, struct_dkbad_sz);
973336817Sdim  _(DIOCEJECT, READ, sizeof(int));
974336817Sdim  _(ODIOCEJECT, NONE, 0);
975336817Sdim  _(DIOCLOCK, READ, sizeof(int));
976336817Sdim  _(DIOCGDEFLABEL, WRITE, struct_disklabel_sz);
977336817Sdim  _(DIOCCLRLABEL, NONE, 0);
978336817Sdim  _(DIOCGCACHE, WRITE, sizeof(int));
979336817Sdim  _(DIOCSCACHE, READ, sizeof(int));
980336817Sdim  _(DIOCCACHESYNC, READ, sizeof(int));
981336817Sdim  _(DIOCBSLIST, READWRITE, struct_disk_badsecinfo_sz);
982336817Sdim  _(DIOCBSFLUSH, NONE, 0);
983336817Sdim  _(DIOCAWEDGE, READWRITE, struct_dkwedge_info_sz);
984336817Sdim  _(DIOCGWEDGEINFO, WRITE, struct_dkwedge_info_sz);
985336817Sdim  _(DIOCDWEDGE, READ, struct_dkwedge_info_sz);
986336817Sdim  _(DIOCLWEDGES, READWRITE, struct_dkwedge_list_sz);
987336817Sdim  _(DIOCGSTRATEGY, WRITE, struct_disk_strategy_sz);
988336817Sdim  _(DIOCSSTRATEGY, READ, struct_disk_strategy_sz);
989336817Sdim  _(DIOCGDISKINFO, WRITE, struct_plistref_sz);
990336817Sdim  _(DIOCTUR, WRITE, sizeof(int));
991336817Sdim  _(DIOCMWEDGES, WRITE, sizeof(int));
992336817Sdim  _(DIOCGSECTORSIZE, WRITE, sizeof(unsigned int));
993336817Sdim  _(DIOCGMEDIASIZE, WRITE, sizeof(uptr));
994353358Sdim  _(DIOCRMWEDGES, WRITE, sizeof(int));
995336817Sdim  /* Entries from file: sys/drvctlio.h */
996336817Sdim  _(DRVDETACHDEV, READ, struct_devdetachargs_sz);
997336817Sdim  _(DRVRESCANBUS, READ, struct_devrescanargs_sz);
998336817Sdim  _(DRVCTLCOMMAND, READWRITE, struct_plistref_sz);
999336817Sdim  _(DRVRESUMEDEV, READ, struct_devpmargs_sz);
1000336817Sdim  _(DRVLISTDEV, READWRITE, struct_devlistargs_sz);
1001336817Sdim  _(DRVGETEVENT, WRITE, struct_plistref_sz);
1002336817Sdim  _(DRVSUSPENDDEV, READ, struct_devpmargs_sz);
1003336817Sdim  /* Entries from file: sys/dvdio.h */
1004336817Sdim  _(DVD_READ_STRUCT, READWRITE, union_dvd_struct_sz);
1005336817Sdim  _(DVD_WRITE_STRUCT, READWRITE, union_dvd_struct_sz);
1006336817Sdim  _(DVD_AUTH, READWRITE, union_dvd_authinfo_sz);
1007336817Sdim  /* Entries from file: sys/envsys.h */
1008336817Sdim  _(ENVSYS_GETDICTIONARY, READWRITE, struct_plistref_sz);
1009336817Sdim  _(ENVSYS_SETDICTIONARY, READWRITE, struct_plistref_sz);
1010336817Sdim  _(ENVSYS_REMOVEPROPS, READWRITE, struct_plistref_sz);
1011336817Sdim  _(ENVSYS_GTREDATA, READWRITE, struct_envsys_tre_data_sz);
1012336817Sdim  _(ENVSYS_GTREINFO, READWRITE, struct_envsys_basic_info_sz);
1013336817Sdim  /* Entries from file: sys/event.h */
1014336817Sdim  _(KFILTER_BYFILTER, READWRITE, struct_kfilter_mapping_sz);
1015336817Sdim  _(KFILTER_BYNAME, READWRITE, struct_kfilter_mapping_sz);
1016336817Sdim  /* Entries from file: sys/fdio.h */
1017336817Sdim  _(FDIOCGETOPTS, WRITE, 0);
1018336817Sdim  _(FDIOCSETOPTS, READ, sizeof(int));
1019336817Sdim  _(FDIOCSETFORMAT, READ, struct_fdformat_parms_sz);
1020336817Sdim  _(FDIOCGETFORMAT, WRITE, struct_fdformat_parms_sz);
1021336817Sdim  _(FDIOCFORMAT_TRACK, READ, struct_fdformat_cmd_sz);
1022336817Sdim  /* Entries from file: sys/filio.h */
1023336817Sdim  _(FIOCLEX, NONE, 0);
1024336817Sdim  _(FIONCLEX, NONE, 0);
1025344779Sdim  _(FIOSEEKDATA, READWRITE, sizeof(uptr));
1026344779Sdim  _(FIOSEEKHOLE, READWRITE, sizeof(uptr));
1027336817Sdim  _(FIONREAD, WRITE, sizeof(int));
1028336817Sdim  _(FIONBIO, READ, sizeof(int));
1029336817Sdim  _(FIOASYNC, READ, sizeof(int));
1030336817Sdim  _(FIOSETOWN, READ, sizeof(int));
1031336817Sdim  _(FIOGETOWN, WRITE, sizeof(int));
1032336817Sdim  _(OFIOGETBMAP, READWRITE, sizeof(u32));
1033336817Sdim  _(FIOGETBMAP, READWRITE, sizeof(u64));
1034336817Sdim  _(FIONWRITE, WRITE, sizeof(int));
1035336817Sdim  _(FIONSPACE, WRITE, sizeof(int));
1036336817Sdim  /* Entries from file: sys/gpio.h */
1037336817Sdim  _(GPIOINFO, WRITE, struct_gpio_info_sz);
1038336817Sdim  _(GPIOSET, READWRITE, struct_gpio_set_sz);
1039336817Sdim  _(GPIOUNSET, READWRITE, struct_gpio_set_sz);
1040336817Sdim  _(GPIOREAD, READWRITE, struct_gpio_req_sz);
1041336817Sdim  _(GPIOWRITE, READWRITE, struct_gpio_req_sz);
1042336817Sdim  _(GPIOTOGGLE, READWRITE, struct_gpio_req_sz);
1043336817Sdim  _(GPIOATTACH, READWRITE, struct_gpio_attach_sz);
1044336817Sdim  /* Entries from file: sys/ioctl.h */
1045336817Sdim  _(PTIOCNETBSD, READ, struct_ioctl_pt_sz);
1046336817Sdim  _(PTIOCSUNOS, READ, struct_ioctl_pt_sz);
1047336817Sdim  _(PTIOCLINUX, READ, struct_ioctl_pt_sz);
1048336817Sdim  _(PTIOCFREEBSD, READ, struct_ioctl_pt_sz);
1049336817Sdim  _(PTIOCULTRIX, READ, struct_ioctl_pt_sz);
1050336817Sdim  /* Entries from file: sys/ioctl_compat.h */
1051336817Sdim  _(TIOCHPCL, NONE, 0);
1052336817Sdim  _(TIOCGETP, WRITE, struct_sgttyb_sz);
1053336817Sdim  _(TIOCSETP, READ, struct_sgttyb_sz);
1054336817Sdim  _(TIOCSETN, READ, 0);
1055336817Sdim  _(TIOCSETC, READ, struct_tchars_sz);
1056336817Sdim  _(TIOCGETC, WRITE, struct_tchars_sz);
1057336817Sdim  _(TIOCLBIS, READ, sizeof(int));
1058336817Sdim  _(TIOCLBIC, READ, sizeof(int));
1059336817Sdim  _(TIOCLSET, READ, sizeof(int));
1060336817Sdim  _(TIOCLGET, WRITE, sizeof(int));
1061336817Sdim  _(TIOCSLTC, READ, struct_ltchars_sz);
1062336817Sdim  _(TIOCGLTC, WRITE, struct_ltchars_sz);
1063336817Sdim  _(OTIOCCONS, NONE, 0);
1064336817Sdim  /* Entries from file: sys/joystick.h */
1065336817Sdim  _(JOY_SETTIMEOUT, READ, sizeof(int));
1066336817Sdim  _(JOY_GETTIMEOUT, WRITE, sizeof(int));
1067336817Sdim  _(JOY_SET_X_OFFSET, READ, sizeof(int));
1068336817Sdim  _(JOY_SET_Y_OFFSET, READ, sizeof(int));
1069336817Sdim  _(JOY_GET_Y_OFFSET, WRITE, sizeof(int));
1070336817Sdim  /* Entries from file: sys/ksyms.h */
1071336817Sdim  _(OKIOCGSYMBOL, READ, struct_ksyms_ogsymbol_sz);
1072336817Sdim  _(OKIOCGVALUE, READ, struct_ksyms_ogsymbol_sz);
1073336817Sdim  _(KIOCGSIZE, WRITE, sizeof(int));
1074336817Sdim  _(KIOCGVALUE, READWRITE, struct_ksyms_gvalue_sz);
1075336817Sdim  _(KIOCGSYMBOL, READWRITE, struct_ksyms_gsymbol_sz);
1076336817Sdim  /* Entries from file: sys/lua.h */
1077336817Sdim  _(LUAINFO, READWRITE, struct_lua_info_sz);
1078336817Sdim  _(LUACREATE, READWRITE, struct_lua_create_sz);
1079336817Sdim  _(LUADESTROY, READWRITE, struct_lua_create_sz);
1080336817Sdim  _(LUAREQUIRE, READWRITE, struct_lua_require_sz);
1081336817Sdim  _(LUALOAD, READWRITE, struct_lua_load_sz);
1082336817Sdim  /* Entries from file: sys/midiio.h */
1083336817Sdim  _(MIDI_PRETIME, READWRITE, sizeof(int));
1084336817Sdim  _(MIDI_MPUMODE, READWRITE, sizeof(int));
1085336817Sdim  _(MIDI_MPUCMD, READWRITE, struct_mpu_command_rec_sz);
1086336817Sdim  _(SEQUENCER_RESET, NONE, 0);
1087336817Sdim  _(SEQUENCER_SYNC, NONE, 0);
1088336817Sdim  _(SEQUENCER_INFO, READWRITE, struct_synth_info_sz);
1089336817Sdim  _(SEQUENCER_CTRLRATE, READWRITE, sizeof(int));
1090336817Sdim  _(SEQUENCER_GETOUTCOUNT, WRITE, sizeof(int));
1091336817Sdim  _(SEQUENCER_GETINCOUNT, WRITE, sizeof(int));
1092336817Sdim  _(SEQUENCER_RESETSAMPLES, READ, sizeof(int));
1093336817Sdim  _(SEQUENCER_NRSYNTHS, WRITE, sizeof(int));
1094336817Sdim  _(SEQUENCER_NRMIDIS, WRITE, sizeof(int));
1095336817Sdim  _(SEQUENCER_THRESHOLD, READ, sizeof(int));
1096336817Sdim  _(SEQUENCER_MEMAVL, READWRITE, sizeof(int));
1097336817Sdim  _(SEQUENCER_PANIC, NONE, 0);
1098336817Sdim  _(SEQUENCER_OUTOFBAND, READ, struct_seq_event_rec_sz);
1099336817Sdim  _(SEQUENCER_GETTIME, WRITE, sizeof(int));
1100336817Sdim  _(SEQUENCER_TMR_TIMEBASE, READWRITE, sizeof(int));
1101336817Sdim  _(SEQUENCER_TMR_START, NONE, 0);
1102336817Sdim  _(SEQUENCER_TMR_STOP, NONE, 0);
1103336817Sdim  _(SEQUENCER_TMR_CONTINUE, NONE, 0);
1104336817Sdim  _(SEQUENCER_TMR_TEMPO, READWRITE, sizeof(int));
1105336817Sdim  _(SEQUENCER_TMR_SOURCE, READWRITE, sizeof(int));
1106336817Sdim  _(SEQUENCER_TMR_METRONOME, READ, sizeof(int));
1107336817Sdim  _(SEQUENCER_TMR_SELECT, READ, sizeof(int));
1108336817Sdim  /* Entries from file: sys/mtio.h */
1109336817Sdim  _(MTIOCTOP, READ, struct_mtop_sz);
1110336817Sdim  _(MTIOCGET, WRITE, struct_mtget_sz);
1111336817Sdim  _(MTIOCIEOT, NONE, 0);
1112336817Sdim  _(MTIOCEEOT, NONE, 0);
1113336817Sdim  _(MTIOCRDSPOS, WRITE, sizeof(u32));
1114336817Sdim  _(MTIOCRDHPOS, WRITE, sizeof(u32));
1115336817Sdim  _(MTIOCSLOCATE, READ, sizeof(u32));
1116336817Sdim  _(MTIOCHLOCATE, READ, sizeof(u32));
1117336817Sdim  /* Entries from file: sys/power.h */
1118336817Sdim  _(POWER_EVENT_RECVDICT, READWRITE, struct_plistref_sz);
1119336817Sdim  _(POWER_IOC_GET_TYPE, WRITE, struct_power_type_sz);
1120336817Sdim  /* Entries from file: sys/radioio.h */
1121336817Sdim  _(RIOCGINFO, WRITE, struct_radio_info_sz);
1122336817Sdim  _(RIOCSINFO, READWRITE, struct_radio_info_sz);
1123336817Sdim  _(RIOCSSRCH, READ, sizeof(int));
1124336817Sdim  /* Entries from file: sys/rndio.h */
1125336817Sdim  _(RNDGETENTCNT, WRITE, sizeof(u32));
1126336817Sdim  _(RNDGETSRCNUM, READWRITE, struct_rndstat_sz);
1127336817Sdim  _(RNDGETSRCNAME, READWRITE, struct_rndstat_name_sz);
1128336817Sdim  _(RNDCTL, READ, struct_rndctl_sz);
1129336817Sdim  _(RNDADDDATA, READ, struct_rnddata_sz);
1130336817Sdim  _(RNDGETPOOLSTAT, WRITE, struct_rndpoolstat_sz);
1131336817Sdim  _(RNDGETESTNUM, READWRITE, struct_rndstat_est_sz);
1132336817Sdim  _(RNDGETESTNAME, READWRITE, struct_rndstat_est_name_sz);
1133336817Sdim  /* Entries from file: sys/scanio.h */
1134336817Sdim  _(SCIOCGET, WRITE, struct_scan_io_sz);
1135336817Sdim  _(SCIOCSET, READ, struct_scan_io_sz);
1136336817Sdim  _(SCIOCRESTART, NONE, 0);
1137336817Sdim  /* Entries from file: sys/scsiio.h */
1138336817Sdim  _(SCIOCCOMMAND, READWRITE, struct_scsireq_sz);
1139336817Sdim  _(SCIOCDEBUG, READ, sizeof(int));
1140336817Sdim  _(SCIOCIDENTIFY, WRITE, struct_scsi_addr_sz);
1141336817Sdim  _(OSCIOCIDENTIFY, WRITE, struct_oscsi_addr_sz);
1142336817Sdim  _(SCIOCDECONFIG, NONE, 0);
1143336817Sdim  _(SCIOCRECONFIG, NONE, 0);
1144336817Sdim  _(SCIOCRESET, NONE, 0);
1145336817Sdim  _(SCBUSIOSCAN, READ, struct_scbusioscan_args_sz);
1146336817Sdim  _(SCBUSIORESET, NONE, 0);
1147336817Sdim  _(SCBUSIODETACH, READ, struct_scbusiodetach_args_sz);
1148336817Sdim  _(SCBUSACCEL, READ, struct_scbusaccel_args_sz);
1149336817Sdim  /* Entries from file: sys/sockio.h */
1150336817Sdim  _(SIOCSHIWAT, READ, sizeof(int));
1151336817Sdim  _(SIOCGHIWAT, WRITE, sizeof(int));
1152336817Sdim  _(SIOCSLOWAT, READ, sizeof(int));
1153336817Sdim  _(SIOCGLOWAT, WRITE, sizeof(int));
1154336817Sdim  _(SIOCATMARK, WRITE, sizeof(int));
1155336817Sdim  _(SIOCSPGRP, READ, sizeof(int));
1156336817Sdim  _(SIOCGPGRP, WRITE, sizeof(int));
1157344779Sdim  _(SIOCPEELOFF, READWRITE, sizeof(int));
1158336817Sdim  _(SIOCADDRT, READ, struct_ortentry_sz);
1159336817Sdim  _(SIOCDELRT, READ, struct_ortentry_sz);
1160336817Sdim  _(SIOCSIFADDR, READ, struct_ifreq_sz);
1161336817Sdim  _(SIOCGIFADDR, READWRITE, struct_ifreq_sz);
1162336817Sdim  _(SIOCSIFDSTADDR, READ, struct_ifreq_sz);
1163336817Sdim  _(SIOCGIFDSTADDR, READWRITE, struct_ifreq_sz);
1164336817Sdim  _(SIOCSIFFLAGS, READ, struct_ifreq_sz);
1165336817Sdim  _(SIOCGIFFLAGS, READWRITE, struct_ifreq_sz);
1166336817Sdim  _(SIOCGIFBRDADDR, READWRITE, struct_ifreq_sz);
1167336817Sdim  _(SIOCSIFBRDADDR, READ, struct_ifreq_sz);
1168336817Sdim  _(SIOCGIFCONF, READWRITE, struct_ifconf_sz);
1169336817Sdim  _(SIOCGIFNETMASK, READWRITE, struct_ifreq_sz);
1170336817Sdim  _(SIOCSIFNETMASK, READ, struct_ifreq_sz);
1171336817Sdim  _(SIOCGIFMETRIC, READWRITE, struct_ifreq_sz);
1172336817Sdim  _(SIOCSIFMETRIC, READ, struct_ifreq_sz);
1173336817Sdim  _(SIOCDIFADDR, READ, struct_ifreq_sz);
1174336817Sdim  _(SIOCAIFADDR, READ, struct_ifaliasreq_sz);
1175336817Sdim  _(SIOCGIFALIAS, READWRITE, struct_ifaliasreq_sz);
1176336817Sdim  _(SIOCGIFAFLAG_IN, READWRITE, struct_ifreq_sz);
1177336817Sdim  _(SIOCALIFADDR, READ, struct_if_laddrreq_sz);
1178336817Sdim  _(SIOCGLIFADDR, READWRITE, struct_if_laddrreq_sz);
1179336817Sdim  _(SIOCDLIFADDR, READ, struct_if_laddrreq_sz);
1180336817Sdim  _(SIOCSIFADDRPREF, READ, struct_if_addrprefreq_sz);
1181336817Sdim  _(SIOCGIFADDRPREF, READWRITE, struct_if_addrprefreq_sz);
1182336817Sdim  _(SIOCADDMULTI, READ, struct_ifreq_sz);
1183336817Sdim  _(SIOCDELMULTI, READ, struct_ifreq_sz);
1184336817Sdim  _(SIOCGETVIFCNT, READWRITE, struct_sioc_vif_req_sz);
1185336817Sdim  _(SIOCGETSGCNT, READWRITE, struct_sioc_sg_req_sz);
1186336817Sdim  _(SIOCSIFMEDIA, READWRITE, struct_ifreq_sz);
1187336817Sdim  _(SIOCGIFMEDIA, READWRITE, struct_ifmediareq_sz);
1188336817Sdim  _(SIOCSIFGENERIC, READ, struct_ifreq_sz);
1189336817Sdim  _(SIOCGIFGENERIC, READWRITE, struct_ifreq_sz);
1190336817Sdim  _(SIOCSIFPHYADDR, READ, struct_ifaliasreq_sz);
1191336817Sdim  _(SIOCGIFPSRCADDR, READWRITE, struct_ifreq_sz);
1192336817Sdim  _(SIOCGIFPDSTADDR, READWRITE, struct_ifreq_sz);
1193336817Sdim  _(SIOCDIFPHYADDR, READ, struct_ifreq_sz);
1194336817Sdim  _(SIOCSLIFPHYADDR, READ, struct_if_laddrreq_sz);
1195336817Sdim  _(SIOCGLIFPHYADDR, READWRITE, struct_if_laddrreq_sz);
1196336817Sdim  _(SIOCSIFMTU, READ, struct_ifreq_sz);
1197336817Sdim  _(SIOCGIFMTU, READWRITE, struct_ifreq_sz);
1198336817Sdim  _(SIOCSDRVSPEC, READ, struct_ifdrv_sz);
1199336817Sdim  _(SIOCGDRVSPEC, READWRITE, struct_ifdrv_sz);
1200336817Sdim  _(SIOCIFCREATE, READ, struct_ifreq_sz);
1201336817Sdim  _(SIOCIFDESTROY, READ, struct_ifreq_sz);
1202336817Sdim  _(SIOCIFGCLONERS, READWRITE, struct_if_clonereq_sz);
1203336817Sdim  _(SIOCGIFDLT, READWRITE, struct_ifreq_sz);
1204336817Sdim  _(SIOCGIFCAP, READWRITE, struct_ifcapreq_sz);
1205336817Sdim  _(SIOCSIFCAP, READ, struct_ifcapreq_sz);
1206336817Sdim  _(SIOCSVH, READWRITE, struct_ifreq_sz);
1207336817Sdim  _(SIOCGVH, READWRITE, struct_ifreq_sz);
1208336817Sdim  _(SIOCINITIFADDR, READWRITE, struct_ifaddr_sz);
1209336817Sdim  _(SIOCGIFDATA, READWRITE, struct_ifdatareq_sz);
1210336817Sdim  _(SIOCZIFDATA, READWRITE, struct_ifdatareq_sz);
1211336817Sdim  _(SIOCGLINKSTR, READWRITE, struct_ifdrv_sz);
1212336817Sdim  _(SIOCSLINKSTR, READ, struct_ifdrv_sz);
1213336817Sdim  _(SIOCGETHERCAP, READWRITE, struct_eccapreq_sz);
1214336817Sdim  _(SIOCGIFINDEX, READWRITE, struct_ifreq_sz);
1215344779Sdim  _(SIOCSETHERCAP, READ, struct_eccapreq_sz);
1216353358Sdim  _(SIOCSIFDESCR, READ, struct_ifreq_sz);
1217353358Sdim  _(SIOCGIFDESCR, READWRITE, struct_ifreq_sz);
1218344779Sdim  _(SIOCGUMBINFO, READWRITE, struct_ifreq_sz);
1219344779Sdim  _(SIOCSUMBPARAM, READ, struct_ifreq_sz);
1220344779Sdim  _(SIOCGUMBPARAM, READWRITE, struct_ifreq_sz);
1221336817Sdim  _(SIOCSETPFSYNC, READ, struct_ifreq_sz);
1222336817Sdim  _(SIOCGETPFSYNC, READWRITE, struct_ifreq_sz);
1223336817Sdim  /* Entries from file: sys/timepps.h */
1224336817Sdim  _(PPS_IOC_CREATE, NONE, 0);
1225336817Sdim  _(PPS_IOC_DESTROY, NONE, 0);
1226336817Sdim  _(PPS_IOC_SETPARAMS, READ, struct_pps_params_sz);
1227336817Sdim  _(PPS_IOC_GETPARAMS, WRITE, struct_pps_params_sz);
1228336817Sdim  _(PPS_IOC_GETCAP, WRITE, sizeof(int));
1229336817Sdim  _(PPS_IOC_FETCH, READWRITE, struct_pps_info_sz);
1230336817Sdim  _(PPS_IOC_KCBIND, READ, sizeof(int));
1231336817Sdim  /* Entries from file: sys/ttycom.h */
1232336817Sdim  _(TIOCEXCL, NONE, 0);
1233336817Sdim  _(TIOCNXCL, NONE, 0);
1234336817Sdim  _(TIOCFLUSH, READ, sizeof(int));
1235336817Sdim  _(TIOCGETA, WRITE, struct_termios_sz);
1236336817Sdim  _(TIOCSETA, READ, struct_termios_sz);
1237336817Sdim  _(TIOCSETAW, READ, 0);
1238336817Sdim  _(TIOCSETAF, READ, 0);
1239336817Sdim  _(TIOCGETD, WRITE, sizeof(int));
1240336817Sdim  _(TIOCSETD, READ, sizeof(int));
1241336817Sdim  _(TIOCGLINED, WRITE, (32 * sizeof(char)));
1242336817Sdim  _(TIOCSLINED, READ, (32 * sizeof(char)));
1243336817Sdim  _(TIOCSBRK, NONE, 0);
1244336817Sdim  _(TIOCCBRK, NONE, 0);
1245336817Sdim  _(TIOCSDTR, NONE, 0);
1246336817Sdim  _(TIOCCDTR, NONE, 0);
1247336817Sdim  _(TIOCGPGRP, WRITE, sizeof(int));
1248336817Sdim  _(TIOCSPGRP, READ, sizeof(int));
1249336817Sdim  _(TIOCOUTQ, WRITE, sizeof(int));
1250336817Sdim  _(TIOCSTI, READ, sizeof(char));
1251336817Sdim  _(TIOCNOTTY, NONE, 0);
1252336817Sdim  _(TIOCPKT, READ, sizeof(int));
1253336817Sdim  _(TIOCSTOP, NONE, 0);
1254336817Sdim  _(TIOCSTART, NONE, 0);
1255336817Sdim  _(TIOCMSET, READ, sizeof(int));
1256336817Sdim  _(TIOCMBIS, READ, sizeof(int));
1257336817Sdim  _(TIOCMBIC, READ, sizeof(int));
1258336817Sdim  _(TIOCMGET, WRITE, sizeof(int));
1259336817Sdim  _(TIOCREMOTE, READ, sizeof(int));
1260336817Sdim  _(TIOCGWINSZ, WRITE, struct_winsize_sz);
1261336817Sdim  _(TIOCSWINSZ, READ, struct_winsize_sz);
1262336817Sdim  _(TIOCUCNTL, READ, sizeof(int));
1263336817Sdim  _(TIOCSTAT, READ, sizeof(int));
1264336817Sdim  _(TIOCGSID, WRITE, sizeof(int));
1265336817Sdim  _(TIOCCONS, READ, sizeof(int));
1266336817Sdim  _(TIOCSCTTY, NONE, 0);
1267336817Sdim  _(TIOCEXT, READ, sizeof(int));
1268336817Sdim  _(TIOCSIG, NONE, 0);
1269336817Sdim  _(TIOCDRAIN, NONE, 0);
1270336817Sdim  _(TIOCGFLAGS, WRITE, sizeof(int));
1271336817Sdim  _(TIOCSFLAGS, READ, sizeof(int));
1272336817Sdim  _(TIOCDCDTIMESTAMP, WRITE, struct_timeval_sz);
1273336817Sdim  _(TIOCRCVFRAME, READ, sizeof(uptr));
1274336817Sdim  _(TIOCXMTFRAME, READ, sizeof(uptr));
1275336817Sdim  _(TIOCPTMGET, WRITE, struct_ptmget_sz);
1276336817Sdim  _(TIOCGRANTPT, NONE, 0);
1277336817Sdim  _(TIOCPTSNAME, WRITE, struct_ptmget_sz);
1278336817Sdim  _(TIOCSQSIZE, READ, sizeof(int));
1279336817Sdim  _(TIOCGQSIZE, WRITE, sizeof(int));
1280336817Sdim  /* Entries from file: sys/verified_exec.h */
1281336817Sdim  _(VERIEXEC_LOAD, READ, struct_plistref_sz);
1282336817Sdim  _(VERIEXEC_TABLESIZE, READ, struct_plistref_sz);
1283336817Sdim  _(VERIEXEC_DELETE, READ, struct_plistref_sz);
1284336817Sdim  _(VERIEXEC_QUERY, READWRITE, struct_plistref_sz);
1285336817Sdim  _(VERIEXEC_DUMP, WRITE, struct_plistref_sz);
1286336817Sdim  _(VERIEXEC_FLUSH, NONE, 0);
1287336817Sdim  /* Entries from file: sys/videoio.h */
1288336817Sdim  _(VIDIOC_QUERYCAP, WRITE, struct_v4l2_capability_sz);
1289336817Sdim  _(VIDIOC_RESERVED, NONE, 0);
1290336817Sdim  _(VIDIOC_ENUM_FMT, READWRITE, struct_v4l2_fmtdesc_sz);
1291336817Sdim  _(VIDIOC_G_FMT, READWRITE, struct_v4l2_format_sz);
1292336817Sdim  _(VIDIOC_S_FMT, READWRITE, struct_v4l2_format_sz);
1293336817Sdim  _(VIDIOC_REQBUFS, READWRITE, struct_v4l2_requestbuffers_sz);
1294336817Sdim  _(VIDIOC_QUERYBUF, READWRITE, struct_v4l2_buffer_sz);
1295336817Sdim  _(VIDIOC_G_FBUF, WRITE, struct_v4l2_framebuffer_sz);
1296336817Sdim  _(VIDIOC_S_FBUF, READ, struct_v4l2_framebuffer_sz);
1297336817Sdim  _(VIDIOC_OVERLAY, READ, sizeof(int));
1298336817Sdim  _(VIDIOC_QBUF, READWRITE, struct_v4l2_buffer_sz);
1299336817Sdim  _(VIDIOC_DQBUF, READWRITE, struct_v4l2_buffer_sz);
1300336817Sdim  _(VIDIOC_STREAMON, READ, sizeof(int));
1301336817Sdim  _(VIDIOC_STREAMOFF, READ, sizeof(int));
1302336817Sdim  _(VIDIOC_G_PARM, READWRITE, struct_v4l2_streamparm_sz);
1303336817Sdim  _(VIDIOC_S_PARM, READWRITE, struct_v4l2_streamparm_sz);
1304336817Sdim  _(VIDIOC_G_STD, WRITE, sizeof(u64));
1305336817Sdim  _(VIDIOC_S_STD, READ, sizeof(u64));
1306336817Sdim  _(VIDIOC_ENUMSTD, READWRITE, struct_v4l2_standard_sz);
1307336817Sdim  _(VIDIOC_ENUMINPUT, READWRITE, struct_v4l2_input_sz);
1308336817Sdim  _(VIDIOC_G_CTRL, READWRITE, struct_v4l2_control_sz);
1309336817Sdim  _(VIDIOC_S_CTRL, READWRITE, struct_v4l2_control_sz);
1310336817Sdim  _(VIDIOC_G_TUNER, READWRITE, struct_v4l2_tuner_sz);
1311336817Sdim  _(VIDIOC_S_TUNER, READ, struct_v4l2_tuner_sz);
1312336817Sdim  _(VIDIOC_G_AUDIO, WRITE, struct_v4l2_audio_sz);
1313336817Sdim  _(VIDIOC_S_AUDIO, READ, struct_v4l2_audio_sz);
1314336817Sdim  _(VIDIOC_QUERYCTRL, READWRITE, struct_v4l2_queryctrl_sz);
1315336817Sdim  _(VIDIOC_QUERYMENU, READWRITE, struct_v4l2_querymenu_sz);
1316336817Sdim  _(VIDIOC_G_INPUT, WRITE, sizeof(int));
1317336817Sdim  _(VIDIOC_S_INPUT, READWRITE, sizeof(int));
1318336817Sdim  _(VIDIOC_G_OUTPUT, WRITE, sizeof(int));
1319336817Sdim  _(VIDIOC_S_OUTPUT, READWRITE, sizeof(int));
1320336817Sdim  _(VIDIOC_ENUMOUTPUT, READWRITE, struct_v4l2_output_sz);
1321336817Sdim  _(VIDIOC_G_AUDOUT, WRITE, struct_v4l2_audioout_sz);
1322336817Sdim  _(VIDIOC_S_AUDOUT, READ, struct_v4l2_audioout_sz);
1323336817Sdim  _(VIDIOC_G_MODULATOR, READWRITE, struct_v4l2_modulator_sz);
1324336817Sdim  _(VIDIOC_S_MODULATOR, READ, struct_v4l2_modulator_sz);
1325336817Sdim  _(VIDIOC_G_FREQUENCY, READWRITE, struct_v4l2_frequency_sz);
1326336817Sdim  _(VIDIOC_S_FREQUENCY, READ, struct_v4l2_frequency_sz);
1327336817Sdim  _(VIDIOC_CROPCAP, READWRITE, struct_v4l2_cropcap_sz);
1328336817Sdim  _(VIDIOC_G_CROP, READWRITE, struct_v4l2_crop_sz);
1329336817Sdim  _(VIDIOC_S_CROP, READ, struct_v4l2_crop_sz);
1330336817Sdim  _(VIDIOC_G_JPEGCOMP, WRITE, struct_v4l2_jpegcompression_sz);
1331336817Sdim  _(VIDIOC_S_JPEGCOMP, READ, struct_v4l2_jpegcompression_sz);
1332336817Sdim  _(VIDIOC_QUERYSTD, WRITE, sizeof(u64));
1333336817Sdim  _(VIDIOC_TRY_FMT, READWRITE, struct_v4l2_format_sz);
1334336817Sdim  _(VIDIOC_ENUMAUDIO, READWRITE, struct_v4l2_audio_sz);
1335336817Sdim  _(VIDIOC_ENUMAUDOUT, READWRITE, struct_v4l2_audioout_sz);
1336336817Sdim  _(VIDIOC_G_PRIORITY, WRITE, enum_v4l2_priority_sz);
1337336817Sdim  _(VIDIOC_S_PRIORITY, READ, enum_v4l2_priority_sz);
1338336817Sdim  _(VIDIOC_ENUM_FRAMESIZES, READWRITE, struct_v4l2_frmsizeenum_sz);
1339336817Sdim  _(VIDIOC_ENUM_FRAMEINTERVALS, READWRITE, struct_v4l2_frmivalenum_sz);
1340336817Sdim  /* Entries from file: sys/wdog.h */
1341336817Sdim  _(WDOGIOC_GMODE, READWRITE, struct_wdog_mode_sz);
1342336817Sdim  _(WDOGIOC_SMODE, READ, struct_wdog_mode_sz);
1343336817Sdim  _(WDOGIOC_WHICH, WRITE, struct_wdog_mode_sz);
1344336817Sdim  _(WDOGIOC_TICKLE, NONE, 0);
1345336817Sdim  _(WDOGIOC_GTICKLER, WRITE, sizeof(int));
1346336817Sdim  _(WDOGIOC_GWDOGS, READWRITE, struct_wdog_conf_sz);
1347353358Sdim  /* Entries from file: sys/kcov.h */
1348353358Sdim  _(KCOV_IOC_SETBUFSIZE, READ, sizeof(u64));
1349353358Sdim  _(KCOV_IOC_ENABLE, READ, sizeof(int));
1350353358Sdim  _(KCOV_IOC_DISABLE, NONE, 0);
1351353358Sdim  /* Entries from file: sys/ipmi.h */
1352353358Sdim  _(IPMICTL_RECEIVE_MSG_TRUNC, READWRITE, struct_ipmi_recv_sz);
1353353358Sdim  _(IPMICTL_RECEIVE_MSG, READWRITE, struct_ipmi_recv_sz);
1354353358Sdim  _(IPMICTL_SEND_COMMAND, READ, struct_ipmi_req_sz);
1355353358Sdim  _(IPMICTL_REGISTER_FOR_CMD, READ, struct_ipmi_cmdspec_sz);
1356353358Sdim  _(IPMICTL_UNREGISTER_FOR_CMD, READ, struct_ipmi_cmdspec_sz);
1357353358Sdim  _(IPMICTL_SET_GETS_EVENTS_CMD, READ, sizeof(int));
1358353358Sdim  _(IPMICTL_SET_MY_ADDRESS_CMD, READ, sizeof(unsigned int));
1359353358Sdim  _(IPMICTL_GET_MY_ADDRESS_CMD, WRITE, sizeof(unsigned int));
1360353358Sdim  _(IPMICTL_SET_MY_LUN_CMD, READ, sizeof(unsigned int));
1361353358Sdim  _(IPMICTL_GET_MY_LUN_CMD, WRITE, sizeof(unsigned int));
1362336817Sdim  /* Entries from file: soundcard.h */
1363336817Sdim  _(SNDCTL_DSP_RESET, NONE, 0);
1364336817Sdim  _(SNDCTL_DSP_SYNC, NONE, 0);
1365336817Sdim  _(SNDCTL_DSP_SPEED, READWRITE, sizeof(int));
1366336817Sdim  _(SOUND_PCM_READ_RATE, WRITE, sizeof(int));
1367336817Sdim  _(SNDCTL_DSP_STEREO, READWRITE, sizeof(int));
1368336817Sdim  _(SNDCTL_DSP_GETBLKSIZE, READWRITE, sizeof(int));
1369336817Sdim  _(SNDCTL_DSP_SETFMT, READWRITE, sizeof(int));
1370336817Sdim  _(SOUND_PCM_READ_BITS, WRITE, sizeof(int));
1371336817Sdim  _(SNDCTL_DSP_CHANNELS, READWRITE, sizeof(int));
1372336817Sdim  _(SOUND_PCM_READ_CHANNELS, WRITE, sizeof(int));
1373336817Sdim  _(SOUND_PCM_WRITE_FILTER, READWRITE, sizeof(int));
1374336817Sdim  _(SOUND_PCM_READ_FILTER, WRITE, sizeof(int));
1375336817Sdim  _(SNDCTL_DSP_POST, NONE, 0);
1376336817Sdim  _(SNDCTL_DSP_SUBDIVIDE, READWRITE, sizeof(int));
1377336817Sdim  _(SNDCTL_DSP_SETFRAGMENT, READWRITE, sizeof(int));
1378336817Sdim  _(SNDCTL_DSP_GETFMTS, WRITE, sizeof(int));
1379336817Sdim  _(SNDCTL_DSP_GETOSPACE, WRITE, struct_audio_buf_info_sz);
1380336817Sdim  _(SNDCTL_DSP_GETISPACE, WRITE, struct_audio_buf_info_sz);
1381336817Sdim  _(SNDCTL_DSP_NONBLOCK, NONE, 0);
1382336817Sdim  _(SNDCTL_DSP_GETCAPS, WRITE, sizeof(int));
1383336817Sdim  _(SNDCTL_DSP_GETTRIGGER, WRITE, sizeof(int));
1384336817Sdim  _(SNDCTL_DSP_SETTRIGGER, READ, sizeof(int));
1385336817Sdim  _(SNDCTL_DSP_GETIPTR, WRITE, struct_count_info_sz);
1386336817Sdim  _(SNDCTL_DSP_GETOPTR, WRITE, struct_count_info_sz);
1387336817Sdim  _(SNDCTL_DSP_MAPINBUF, WRITE, struct_buffmem_desc_sz);
1388336817Sdim  _(SNDCTL_DSP_MAPOUTBUF, WRITE, struct_buffmem_desc_sz);
1389336817Sdim  _(SNDCTL_DSP_SETSYNCRO, NONE, 0);
1390336817Sdim  _(SNDCTL_DSP_SETDUPLEX, NONE, 0);
1391336817Sdim  _(SNDCTL_DSP_PROFILE, READ, sizeof(int));
1392336817Sdim  _(SNDCTL_DSP_GETODELAY, WRITE, sizeof(int));
1393336817Sdim  _(SOUND_MIXER_INFO, WRITE, struct_mixer_info_sz);
1394336817Sdim  _(SOUND_OLD_MIXER_INFO, WRITE, struct__old_mixer_info_sz);
1395336817Sdim  _(OSS_GETVERSION, WRITE, sizeof(int));
1396336817Sdim  _(SNDCTL_SYSINFO, WRITE, struct_oss_sysinfo_sz);
1397336817Sdim  _(SNDCTL_AUDIOINFO, READWRITE, struct_oss_audioinfo_sz);
1398336817Sdim  _(SNDCTL_ENGINEINFO, READWRITE, struct_oss_audioinfo_sz);
1399336817Sdim  _(SNDCTL_DSP_GETPLAYVOL, WRITE, sizeof(unsigned int));
1400336817Sdim  _(SNDCTL_DSP_SETPLAYVOL, READ, sizeof(unsigned int));
1401336817Sdim  _(SNDCTL_DSP_GETRECVOL, WRITE, sizeof(unsigned int));
1402336817Sdim  _(SNDCTL_DSP_SETRECVOL, READ, sizeof(unsigned int));
1403336817Sdim  _(SNDCTL_DSP_SKIP, NONE, 0);
1404336817Sdim  _(SNDCTL_DSP_SILENCE, NONE, 0);
1405360784Sdim  /* Entries from file: dev/filemon/filemon.h (compat <= 9.99.26) */
1406360784Sdim  _(FILEMON_SET_FD, READWRITE, sizeof(int));
1407360784Sdim  _(FILEMON_SET_PID, READWRITE, sizeof(int));
1408336817Sdim#undef _
1409360784Sdim} // NOLINT
1410336817Sdim
1411336817Sdimstatic bool ioctl_initialized = false;
1412336817Sdim
1413336817Sdimstruct ioctl_desc_compare {
1414336817Sdim  bool operator()(const ioctl_desc &left, const ioctl_desc &right) const {
1415336817Sdim    return left.req < right.req;
1416336817Sdim  }
1417336817Sdim};
1418336817Sdim
1419336817Sdimstatic void ioctl_init() {
1420336817Sdim  ioctl_table_fill();
1421336817Sdim  Sort(ioctl_table, ioctl_table_size, ioctl_desc_compare());
1422336817Sdim
1423336817Sdim  bool bad = false;
1424336817Sdim  for (unsigned i = 0; i < ioctl_table_size - 1; ++i) {
1425336817Sdim    if (ioctl_table[i].req >= ioctl_table[i + 1].req) {
1426336817Sdim      Printf("Duplicate or unsorted ioctl request id %x >= %x (%s vs %s)\n",
1427336817Sdim             ioctl_table[i].req, ioctl_table[i + 1].req, ioctl_table[i].name,
1428336817Sdim             ioctl_table[i + 1].name);
1429336817Sdim      bad = true;
1430336817Sdim    }
1431336817Sdim  }
1432336817Sdim
1433336817Sdim  if (bad)
1434336817Sdim    Die();
1435336817Sdim
1436336817Sdim  ioctl_initialized = true;
1437336817Sdim}
1438336817Sdim
1439336817Sdimstatic const ioctl_desc *ioctl_table_lookup(unsigned req) {
1440336817Sdim  int left = 0;
1441336817Sdim  int right = ioctl_table_size;
1442336817Sdim  while (left < right) {
1443336817Sdim    int mid = (left + right) / 2;
1444336817Sdim    if (ioctl_table[mid].req < req)
1445336817Sdim      left = mid + 1;
1446336817Sdim    else
1447336817Sdim      right = mid;
1448336817Sdim  }
1449336817Sdim  if (left == right && ioctl_table[left].req == req)
1450336817Sdim    return ioctl_table + left;
1451336817Sdim  else
1452336817Sdim    return nullptr;
1453336817Sdim}
1454336817Sdim
1455336817Sdimstatic bool ioctl_decode(unsigned req, ioctl_desc *desc) {
1456336817Sdim  CHECK(desc);
1457336817Sdim  desc->req = req;
1458336817Sdim  desc->name = "<DECODED_IOCTL>";
1459336817Sdim  desc->size = IOC_SIZE(req);
1460336817Sdim  // Sanity check.
1461336817Sdim  if (desc->size > 0xFFFF)
1462336817Sdim    return false;
1463336817Sdim  unsigned dir = IOC_DIR(req);
1464336817Sdim  switch (dir) {
1465336817Sdim  case IOC_NONE:
1466336817Sdim    desc->type = ioctl_desc::NONE;
1467336817Sdim    break;
1468336817Sdim  case IOC_READ | IOC_WRITE:
1469336817Sdim    desc->type = ioctl_desc::READWRITE;
1470336817Sdim    break;
1471336817Sdim  case IOC_READ:
1472336817Sdim    desc->type = ioctl_desc::WRITE;
1473336817Sdim    break;
1474336817Sdim  case IOC_WRITE:
1475336817Sdim    desc->type = ioctl_desc::READ;
1476336817Sdim    break;
1477336817Sdim  default:
1478336817Sdim    return false;
1479336817Sdim  }
1480336817Sdim  // Size can be 0 iff type is NONE.
1481336817Sdim  if ((desc->type == IOC_NONE) != (desc->size == 0))
1482336817Sdim    return false;
1483336817Sdim  // Sanity check.
1484336817Sdim  if (IOC_TYPE(req) == 0)
1485336817Sdim    return false;
1486336817Sdim  return true;
1487336817Sdim}
1488336817Sdim
1489336817Sdimstatic const ioctl_desc *ioctl_lookup(unsigned req) {
1490336817Sdim  const ioctl_desc *desc = ioctl_table_lookup(req);
1491336817Sdim  if (desc)
1492336817Sdim    return desc;
1493336817Sdim
1494336817Sdim  // Try stripping access size from the request id.
1495336817Sdim  desc = ioctl_table_lookup(req & ~(IOC_SIZEMASK << IOC_SIZESHIFT));
1496336817Sdim  // Sanity check: requests that encode access size are either read or write and
1497336817Sdim  // have size of 0 in the table.
1498336817Sdim  if (desc && desc->size == 0 &&
1499336817Sdim      (desc->type == ioctl_desc::READWRITE || desc->type == ioctl_desc::WRITE ||
1500336817Sdim       desc->type == ioctl_desc::READ))
1501336817Sdim    return desc;
1502336817Sdim  return nullptr;
1503336817Sdim}
1504336817Sdim
1505336817Sdimstatic void ioctl_common_pre(void *ctx, const ioctl_desc *desc, int d,
1506336817Sdim                             unsigned request, void *arg) {
1507336817Sdim  if (desc->type == ioctl_desc::READ || desc->type == ioctl_desc::READWRITE) {
1508336817Sdim    unsigned size = desc->size ? desc->size : IOC_SIZE(request);
1509336817Sdim    COMMON_INTERCEPTOR_READ_RANGE(ctx, arg, size);
1510336817Sdim  }
1511336817Sdim  if (desc->type != ioctl_desc::CUSTOM)
1512336817Sdim    return;
1513336817Sdim  if (request == IOCTL_SIOCGIFCONF) {
1514336817Sdim    struct __sanitizer_ifconf *ifc = (__sanitizer_ifconf *)arg;
1515336817Sdim    COMMON_INTERCEPTOR_READ_RANGE(ctx, (char *)&ifc->ifc_len,
1516336817Sdim                                  sizeof(ifc->ifc_len));
1517336817Sdim  }
1518336817Sdim}
1519336817Sdim
1520336817Sdimstatic void ioctl_common_post(void *ctx, const ioctl_desc *desc, int res, int d,
1521336817Sdim                              unsigned request, void *arg) {
1522336817Sdim  if (desc->type == ioctl_desc::WRITE || desc->type == ioctl_desc::READWRITE) {
1523336817Sdim    // FIXME: add verbose output
1524336817Sdim    unsigned size = desc->size ? desc->size : IOC_SIZE(request);
1525336817Sdim    COMMON_INTERCEPTOR_WRITE_RANGE(ctx, arg, size);
1526336817Sdim  }
1527336817Sdim  if (desc->type != ioctl_desc::CUSTOM)
1528336817Sdim    return;
1529336817Sdim  if (request == IOCTL_SIOCGIFCONF) {
1530336817Sdim    struct __sanitizer_ifconf *ifc = (__sanitizer_ifconf *)arg;
1531336817Sdim    COMMON_INTERCEPTOR_WRITE_RANGE(ctx, ifc->ifc_ifcu.ifcu_req, ifc->ifc_len);
1532336817Sdim  }
1533336817Sdim}
1534336817Sdim
1535336817Sdim#endif // SANITIZER_NETBSD
1536