1//===-- sanitizer_interceptors_ioctl_netbsd.inc -----------------*- C++ -*-===// 2// 3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4// See https://llvm.org/LICENSE.txt for license information. 5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6// 7//===----------------------------------------------------------------------===// 8// 9// Ioctl handling in common sanitizer interceptors. 10//===----------------------------------------------------------------------===// 11 12#if SANITIZER_NETBSD 13 14#include "sanitizer_flags.h" 15 16struct ioctl_desc { 17 unsigned req; 18 // FIXME: support read+write arguments. Currently READWRITE and WRITE do the 19 // same thing. 20 // XXX: The declarations below may use WRITE instead of READWRITE, unless 21 // explicitly noted. 22 enum { NONE, READ, WRITE, READWRITE, CUSTOM } type : 3; 23 unsigned size : 29; 24 const char *name; 25}; 26 27const unsigned ioctl_table_max = 1238; 28static ioctl_desc ioctl_table[ioctl_table_max]; 29static unsigned ioctl_table_size = 0; 30 31// This can not be declared as a global, because references to struct_*_sz 32// require a global initializer. And this table must be available before global 33// initializers are run. 34static void ioctl_table_fill() { 35#define _(rq, tp, sz) \ 36 if (IOCTL_##rq != IOCTL_NOT_PRESENT) { \ 37 CHECK(ioctl_table_size < ioctl_table_max); \ 38 ioctl_table[ioctl_table_size].req = IOCTL_##rq; \ 39 ioctl_table[ioctl_table_size].type = ioctl_desc::tp; \ 40 ioctl_table[ioctl_table_size].size = sz; \ 41 ioctl_table[ioctl_table_size].name = #rq; \ 42 ++ioctl_table_size; \ 43 } 44 45 /* Entries from file: altq/altq_afmap.h */ 46 _(AFM_ADDFMAP, READWRITE, struct_atm_flowmap_sz); 47 _(AFM_DELFMAP, READWRITE, struct_atm_flowmap_sz); 48 _(AFM_CLEANFMAP, READWRITE, struct_atm_flowmap_sz); 49 _(AFM_GETFMAP, READWRITE, struct_atm_flowmap_sz); 50 /* Entries from file: altq/altq.h */ 51 _(ALTQGTYPE, READWRITE, struct_altqreq_sz); 52 _(ALTQTBRSET, READ, struct_tbrreq_sz); 53 _(ALTQTBRGET, READWRITE, struct_tbrreq_sz); 54 /* Entries from file: altq/altq_blue.h */ 55 _(BLUE_IF_ATTACH, READ, struct_blue_interface_sz); 56 _(BLUE_DISABLE, READ, struct_blue_interface_sz); 57 _(BLUE_CONFIG, READWRITE, struct_blue_conf_sz); 58 _(BLUE_GETSTATS, READWRITE, struct_blue_stats_sz); 59 /* Entries from file: altq/altq_cbq.h */ 60 _(CBQ_ENABLE, READ, struct_cbq_interface_sz); 61 _(CBQ_ADD_CLASS, READWRITE, struct_cbq_add_class_sz); 62 _(CBQ_DEL_CLASS, READ, struct_cbq_delete_class_sz); 63 _(CBQ_MODIFY_CLASS, READWRITE, struct_cbq_modify_class_sz); 64 _(CBQ_DEL_FILTER, READ, struct_cbq_delete_filter_sz); 65 _(CBQ_GETSTATS, READWRITE, struct_cbq_getstats_sz); 66 /* Entries from file: altq/altq_cdnr.h */ 67 _(CDNR_IF_DETACH, READ, struct_cdnr_interface_sz); 68 _(CDNR_ADD_FILTER, READWRITE, struct_cdnr_add_filter_sz); 69 _(CDNR_GETSTATS, READWRITE, struct_cdnr_get_stats_sz); 70 _(CDNR_ADD_ELEM, READWRITE, struct_cdnr_add_element_sz); 71 _(CDNR_DEL_ELEM, READ, struct_cdnr_delete_element_sz); 72 _(CDNR_ADD_TBM, READWRITE, struct_cdnr_add_tbmeter_sz); 73 _(CDNR_MOD_TBM, READ, struct_cdnr_modify_tbmeter_sz); 74 _(CDNR_TBM_STATS, READWRITE, struct_cdnr_tbmeter_stats_sz); 75 _(CDNR_ADD_TCM, READWRITE, struct_cdnr_add_trtcm_sz); 76 _(CDNR_MOD_TCM, READWRITE, struct_cdnr_modify_trtcm_sz); 77 _(CDNR_TCM_STATS, READWRITE, struct_cdnr_tcm_stats_sz); 78 _(CDNR_ADD_TSW, READWRITE, struct_cdnr_add_tswtcm_sz); 79 _(CDNR_MOD_TSW, READWRITE, struct_cdnr_modify_tswtcm_sz); 80 /* Entries from file: altq/altq_fifoq.h */ 81 _(FIFOQ_CONFIG, READWRITE, struct_fifoq_conf_sz); 82 _(FIFOQ_GETSTATS, READWRITE, struct_fifoq_getstats_sz); 83 /* Entries from file: altq/altq_hfsc.h */ 84 _(HFSC_CLEAR_HIERARCHY, READ, struct_hfsc_interface_sz); 85 _(HFSC_ADD_CLASS, READWRITE, struct_hfsc_add_class_sz); 86 _(HFSC_GETSTATS, READWRITE, struct_hfsc_class_stats_sz); 87 /* Entries from file: altq/altq_jobs.h */ 88 _(JOBS_IF_ATTACH, READ, struct_jobs_attach_sz); 89 _(JOBS_IF_DETACH, READ, struct_jobs_interface_sz); 90 _(JOBS_ENABLE, READ, struct_jobs_interface_sz); 91 _(JOBS_DISABLE, READ, struct_jobs_interface_sz); 92 _(JOBS_CLEAR, READ, struct_jobs_interface_sz); 93 _(JOBS_ADD_CLASS, READWRITE, struct_jobs_add_class_sz); 94 _(JOBS_MOD_CLASS, READ, struct_jobs_modify_class_sz); 95 /* Entries from file: altq/altq_priq.h */ 96 _(PRIQ_IF_ATTACH, READ, struct_priq_interface_sz); 97 _(PRIQ_CLEAR, READ, struct_priq_interface_sz); 98 _(PRIQ_ADD_CLASS, READWRITE, struct_priq_add_class_sz); 99 _(PRIQ_DEL_CLASS, READ, struct_priq_delete_class_sz); 100 _(PRIQ_MOD_CLASS, READ, struct_priq_modify_class_sz); 101 _(PRIQ_ADD_FILTER, READWRITE, struct_priq_add_filter_sz); 102 _(PRIQ_DEL_FILTER, READ, struct_priq_delete_filter_sz); 103 _(PRIQ_GETSTATS, READWRITE, struct_priq_class_stats_sz); 104 /* Entries from file: altq/altq_red.h */ 105 _(RED_CONFIG, READWRITE, struct_red_conf_sz); 106 _(RED_GETSTATS, READWRITE, struct_red_stats_sz); 107 _(RED_SETDEFAULTS, READ, struct_redparams_sz); 108 /* Entries from file: altq/altq_rio.h */ 109 _(RIO_CONFIG, READWRITE, struct_rio_conf_sz); 110 _(RIO_GETSTATS, READWRITE, struct_rio_stats_sz); 111 _(RIO_SETDEFAULTS, READ, struct_redparams_sz); 112 /* Entries from file: altq/altq_wfq.h */ 113 _(WFQ_CONFIG, READWRITE, struct_wfq_conf_sz); 114 _(WFQ_GET_QID, READWRITE, struct_wfq_getqid_sz); 115 _(WFQ_SET_WEIGHT, READWRITE, struct_wfq_setweight_sz); 116 /* Entries from file: crypto/cryptodev.h */ 117 _(CRIOGET, READWRITE, sizeof(u32)); 118 _(CIOCFSESSION, READ, sizeof(u32)); 119 _(CIOCKEY, READWRITE, struct_crypt_kop_sz); 120 _(CIOCNFKEYM, READWRITE, struct_crypt_mkop_sz); 121 _(CIOCNFSESSION, READ, struct_crypt_sfop_sz); 122 _(CIOCNCRYPTRETM, READWRITE, struct_cryptret_sz); 123 _(CIOCNCRYPTRET, READWRITE, struct_crypt_result_sz); 124 _(CIOCGSESSION, READWRITE, struct_session_op_sz); 125 _(CIOCNGSESSION, READWRITE, struct_crypt_sgop_sz); 126 _(CIOCCRYPT, READWRITE, struct_crypt_op_sz); 127 _(CIOCNCRYPTM, READWRITE, struct_crypt_mop_sz); 128 _(CIOCASYMFEAT, WRITE, sizeof(u32)); 129 /* Entries from file: dev/apm/apmio.h */ 130 _(APM_IOC_REJECT, READ, struct_apm_event_info_sz); 131 _(OAPM_IOC_GETPOWER, WRITE, struct_apm_power_info_sz); 132 _(APM_IOC_GETPOWER, READWRITE, struct_apm_power_info_sz); 133 _(APM_IOC_NEXTEVENT, WRITE, struct_apm_event_info_sz); 134 _(APM_IOC_DEV_CTL, READ, struct_apm_ctl_sz); 135 /* Entries from file: dev/dm/netbsd-dm.h */ 136 _(NETBSD_DM_IOCTL, READWRITE, struct_plistref_sz); 137 /* Entries from file: dev/dmover/dmover_io.h */ 138 _(DMIO_SETFUNC, READ, struct_dmio_setfunc_sz); 139 /* Entries from file: dev/dtv/dtvio_demux.h */ 140 _(DMX_START, NONE, 0); 141 _(DMX_STOP, NONE, 0); 142 _(DMX_SET_FILTER, READ, struct_dmx_sct_filter_params_sz); 143 _(DMX_SET_PES_FILTER, READ, struct_dmx_pes_filter_params_sz); 144 _(DMX_SET_BUFFER_SIZE, NONE, 0); 145 _(DMX_GET_STC, READWRITE, struct_dmx_stc_sz); 146 _(DMX_ADD_PID, READ, sizeof(u16)); 147 _(DMX_REMOVE_PID, READ, sizeof(u16)); 148 _(DMX_GET_CAPS, WRITE, struct_dmx_caps_sz); 149 _(DMX_SET_SOURCE, READ, enum_dmx_source_sz); 150 /* Entries from file: dev/dtv/dtvio_frontend.h */ 151 _(FE_READ_STATUS, WRITE, enum_fe_status_sz); 152 _(FE_READ_BER, WRITE, sizeof(u32)); 153 _(FE_READ_SNR, WRITE, sizeof(u16)); 154 _(FE_READ_SIGNAL_STRENGTH, WRITE, sizeof(u16)); 155 _(FE_READ_UNCORRECTED_BLOCKS, WRITE, sizeof(u32)); 156 _(FE_SET_FRONTEND, READWRITE, struct_dvb_frontend_parameters_sz); 157 _(FE_GET_FRONTEND, WRITE, struct_dvb_frontend_parameters_sz); 158 _(FE_GET_EVENT, WRITE, struct_dvb_frontend_event_sz); 159 _(FE_GET_INFO, WRITE, struct_dvb_frontend_info_sz); 160 _(FE_DISEQC_RESET_OVERLOAD, NONE, 0); 161 _(FE_DISEQC_SEND_MASTER_CMD, READ, struct_dvb_diseqc_master_cmd_sz); 162 _(FE_DISEQC_RECV_SLAVE_REPLY, WRITE, struct_dvb_diseqc_slave_reply_sz); 163 _(FE_DISEQC_SEND_BURST, READ, enum_fe_sec_mini_cmd_sz); 164 _(FE_SET_TONE, READ, enum_fe_sec_tone_mode_sz); 165 _(FE_SET_VOLTAGE, READ, enum_fe_sec_voltage_sz); 166 _(FE_ENABLE_HIGH_LNB_VOLTAGE, READ, sizeof(int)); 167 _(FE_SET_FRONTEND_TUNE_MODE, READ, sizeof(unsigned int)); 168 _(FE_DISHNETWORK_SEND_LEGACY_CMD, READ, sizeof(unsigned long)); 169 /* Entries from file: dev/hdaudio/hdaudioio.h */ 170 _(HDAUDIO_FGRP_INFO, READWRITE, struct_plistref_sz); 171 _(HDAUDIO_FGRP_GETCONFIG, READWRITE, struct_plistref_sz); 172 _(HDAUDIO_FGRP_SETCONFIG, READWRITE, struct_plistref_sz); 173 _(HDAUDIO_FGRP_WIDGET_INFO, READWRITE, struct_plistref_sz); 174 _(HDAUDIO_FGRP_CODEC_INFO, READWRITE, struct_plistref_sz); 175 _(HDAUDIO_AFG_WIDGET_INFO, READWRITE, struct_plistref_sz); 176 _(HDAUDIO_AFG_CODEC_INFO, READWRITE, struct_plistref_sz); 177 /* Entries from file: dev/hdmicec/hdmicecio.h */ 178 _(CEC_GET_PHYS_ADDR, WRITE, sizeof(u16)); 179 _(CEC_GET_LOG_ADDRS, WRITE, sizeof(u16)); 180 _(CEC_SET_LOG_ADDRS, READ, sizeof(u16)); 181 _(CEC_GET_VENDOR_ID, WRITE, sizeof(u32)); 182 /* Entries from file: dev/hpc/hpcfbio.h */ 183 _(HPCFBIO_GCONF, READWRITE, struct_hpcfb_fbconf_sz); 184 _(HPCFBIO_SCONF, READ, struct_hpcfb_fbconf_sz); 185 _(HPCFBIO_GDSPCONF, READWRITE, struct_hpcfb_dspconf_sz); 186 _(HPCFBIO_SDSPCONF, READ, struct_hpcfb_dspconf_sz); 187 _(HPCFBIO_GOP, WRITE, struct_hpcfb_dsp_op_sz); 188 _(HPCFBIO_SOP, READWRITE, struct_hpcfb_dsp_op_sz); 189 /* Entries from file: dev/i2o/iopio.h */ 190 _(IOPIOCPT, READWRITE, struct_ioppt_sz); 191 _(IOPIOCGLCT, READWRITE, struct_iovec_sz); 192 _(IOPIOCGSTATUS, READWRITE, struct_iovec_sz); 193 _(IOPIOCRECONFIG, NONE, 0); 194 _(IOPIOCGTIDMAP, READWRITE, struct_iovec_sz); 195 /* Entries from file: dev/ic/athioctl.h */ 196 _(SIOCGATHSTATS, READWRITE, struct_ifreq_sz); 197 _(SIOCGATHDIAG, READWRITE, struct_ath_diag_sz); 198 /* Entries from file: dev/ic/bt8xx.h */ 199 _(METEORCAPTUR, READ, sizeof(int)); 200 _(METEORCAPFRM, READ, struct_meteor_capframe_sz); 201 _(METEORSETGEO, READ, struct_meteor_geomet_sz); 202 _(METEORGETGEO, WRITE, struct_meteor_geomet_sz); 203 _(METEORSTATUS, WRITE, sizeof(unsigned short)); 204 _(METEORSHUE, READ, sizeof(signed char)); 205 _(METEORGHUE, WRITE, sizeof(signed char)); 206 _(METEORSFMT, READ, sizeof(unsigned int)); 207 _(METEORGFMT, WRITE, sizeof(unsigned int)); 208 _(METEORSINPUT, READ, sizeof(unsigned int)); 209 _(METEORGINPUT, WRITE, sizeof(unsigned int)); 210 _(METEORSCHCV, READ, sizeof(unsigned char)); 211 _(METEORGCHCV, WRITE, sizeof(unsigned char)); 212 _(METEORSCOUNT, READ, struct_meteor_counts_sz); 213 _(METEORGCOUNT, WRITE, struct_meteor_counts_sz); 214 _(METEORSFPS, READ, sizeof(unsigned short)); 215 _(METEORGFPS, WRITE, sizeof(unsigned short)); 216 _(METEORSSIGNAL, READ, sizeof(unsigned int)); 217 _(METEORGSIGNAL, WRITE, sizeof(unsigned int)); 218 _(METEORSVIDEO, READ, struct_meteor_video_sz); 219 _(METEORGVIDEO, WRITE, struct_meteor_video_sz); 220 _(METEORSBRIG, READ, sizeof(unsigned char)); 221 _(METEORGBRIG, WRITE, sizeof(unsigned char)); 222 _(METEORSCSAT, READ, sizeof(unsigned char)); 223 _(METEORGCSAT, WRITE, sizeof(unsigned char)); 224 _(METEORSCONT, READ, sizeof(unsigned char)); 225 _(METEORGCONT, WRITE, sizeof(unsigned char)); 226 _(METEORSHWS, READ, sizeof(unsigned char)); 227 _(METEORGHWS, WRITE, sizeof(unsigned char)); 228 _(METEORSVWS, READ, sizeof(unsigned char)); 229 _(METEORGVWS, WRITE, sizeof(unsigned char)); 230 _(METEORSTS, READ, sizeof(unsigned char)); 231 _(METEORGTS, WRITE, sizeof(unsigned char)); 232 _(TVTUNER_SETCHNL, READ, sizeof(unsigned int)); 233 _(TVTUNER_GETCHNL, WRITE, sizeof(unsigned int)); 234 _(TVTUNER_SETTYPE, READ, sizeof(unsigned int)); 235 _(TVTUNER_GETTYPE, WRITE, sizeof(unsigned int)); 236 _(TVTUNER_GETSTATUS, WRITE, sizeof(unsigned int)); 237 _(TVTUNER_SETFREQ, READ, sizeof(unsigned int)); 238 _(TVTUNER_GETFREQ, WRITE, sizeof(unsigned int)); 239 _(TVTUNER_SETAFC, READ, sizeof(int)); 240 _(TVTUNER_GETAFC, WRITE, sizeof(int)); 241 _(RADIO_SETMODE, READ, sizeof(unsigned int)); 242 _(RADIO_GETMODE, WRITE, sizeof(unsigned char)); 243 _(RADIO_SETFREQ, READ, sizeof(unsigned int)); 244 _(RADIO_GETFREQ, WRITE, sizeof(unsigned int)); 245 _(METEORSACTPIXFMT, READ, sizeof(int)); 246 _(METEORGACTPIXFMT, WRITE, sizeof(int)); 247 _(METEORGSUPPIXFMT, READWRITE, struct_meteor_pixfmt_sz); 248 _(TVTUNER_GETCHNLSET, READWRITE, struct_bktr_chnlset_sz); 249 _(REMOTE_GETKEY, WRITE, struct_bktr_remote_sz); 250 /* Entries from file: dev/ic/icp_ioctl.h */ 251 _(GDT_IOCTL_GENERAL, READWRITE, struct_gdt_ucmd_sz); 252 _(GDT_IOCTL_DRVERS, WRITE, sizeof(int)); 253 _(GDT_IOCTL_CTRTYPE, READWRITE, struct_gdt_ctrt_sz); 254 _(GDT_IOCTL_OSVERS, WRITE, struct_gdt_osv_sz); 255 _(GDT_IOCTL_CTRCNT, WRITE, sizeof(int)); 256 _(GDT_IOCTL_EVENT, READWRITE, struct_gdt_event_sz); 257 _(GDT_IOCTL_STATIST, WRITE, struct_gdt_statist_sz); 258 _(GDT_IOCTL_RESCAN, READWRITE, struct_gdt_rescan_sz); 259 /* Entries from file: dev/ic/isp_ioctl.h */ 260 _(ISP_SDBLEV, READWRITE, sizeof(int)); 261 _(ISP_RESETHBA, NONE, 0); 262 _(ISP_RESCAN, NONE, 0); 263 _(ISP_SETROLE, READWRITE, sizeof(int)); 264 _(ISP_GETROLE, WRITE, sizeof(int)); 265 _(ISP_GET_STATS, WRITE, struct_isp_stats_sz); 266 _(ISP_CLR_STATS, NONE, 0); 267 _(ISP_FC_LIP, NONE, 0); 268 _(ISP_FC_GETDINFO, READWRITE, struct_isp_fc_device_sz); 269 _(ISP_GET_FW_CRASH_DUMP, NONE, 0); 270 _(ISP_FORCE_CRASH_DUMP, NONE, 0); 271 _(ISP_FC_GETHINFO, READWRITE, struct_isp_hba_device_sz); 272 _(ISP_TSK_MGMT, READWRITE, struct_isp_fc_tsk_mgmt_sz); 273 _(ISP_FC_GETDLIST, NONE, 0); 274 /* Entries from file: dev/ic/mlxio.h */ 275 _(MLXD_STATUS, WRITE, sizeof(int)); 276 _(MLXD_CHECKASYNC, WRITE, sizeof(int)); 277 _(MLXD_DETACH, READ, sizeof(int)); 278 _(MLX_RESCAN_DRIVES, NONE, 0); 279 _(MLX_PAUSE_CHANNEL, READ, struct_mlx_pause_sz); 280 _(MLX_COMMAND, READWRITE, struct_mlx_usercommand_sz); 281 _(MLX_REBUILDASYNC, READWRITE, struct_mlx_rebuild_request_sz); 282 _(MLX_REBUILDSTAT, WRITE, struct_mlx_rebuild_status_sz); 283 _(MLX_GET_SYSDRIVE, READWRITE, sizeof(int)); 284 _(MLX_GET_CINFO, WRITE, struct_mlx_cinfo_sz); 285 /* Entries from file: dev/ic/nvmeio.h */ 286 _(NVME_PASSTHROUGH_CMD, READWRITE, struct_nvme_pt_command_sz); 287 /* Entries from file: dev/ic/qemufwcfgio.h */ 288 _(FWCFGIO_SET_INDEX, READ, sizeof(u16)); 289 /* Entries from file: dev/ir/irdaio.h */ 290 _(IRDA_RESET_PARAMS, NONE, 0); 291 _(IRDA_SET_PARAMS, READ, struct_irda_params_sz); 292 _(IRDA_GET_SPEEDMASK, WRITE, sizeof(unsigned int)); 293 _(IRDA_GET_TURNAROUNDMASK, WRITE, sizeof(unsigned int)); 294 _(IRFRAMETTY_GET_DEVICE, WRITE, sizeof(unsigned int)); 295 _(IRFRAMETTY_GET_DONGLE, WRITE, sizeof(unsigned int)); 296 _(IRFRAMETTY_SET_DONGLE, READ, sizeof(unsigned int)); 297 /* Entries from file: dev/isa/isvio.h */ 298 _(ISV_CMD, READWRITE, struct_isv_cmd_sz); 299 /* Entries from file: dev/isa/wtreg.h */ 300 _(WTQICMD, NONE, 0); 301 /* Entries from file: dev/iscsi/iscsi_ioctl.h */ 302 _(ISCSI_GET_VERSION, READWRITE, struct_iscsi_get_version_parameters_sz); 303 _(ISCSI_LOGIN, READWRITE, struct_iscsi_login_parameters_sz); 304 _(ISCSI_LOGOUT, READWRITE, struct_iscsi_logout_parameters_sz); 305 _(ISCSI_ADD_CONNECTION, READWRITE, struct_iscsi_login_parameters_sz); 306 _(ISCSI_RESTORE_CONNECTION, READWRITE, struct_iscsi_login_parameters_sz); 307 _(ISCSI_REMOVE_CONNECTION, READWRITE, struct_iscsi_remove_parameters_sz); 308 _(ISCSI_CONNECTION_STATUS, READWRITE, struct_iscsi_conn_status_parameters_sz); 309 _(ISCSI_SEND_TARGETS, READWRITE, struct_iscsi_send_targets_parameters_sz); 310 _(ISCSI_SET_NODE_NAME, READWRITE, struct_iscsi_set_node_name_parameters_sz); 311 _(ISCSI_IO_COMMAND, READWRITE, struct_iscsi_iocommand_parameters_sz); 312 _(ISCSI_REGISTER_EVENT, READWRITE, struct_iscsi_register_event_parameters_sz); 313 _(ISCSI_DEREGISTER_EVENT, READWRITE, 314 struct_iscsi_register_event_parameters_sz); 315 _(ISCSI_WAIT_EVENT, READWRITE, struct_iscsi_wait_event_parameters_sz); 316 _(ISCSI_POLL_EVENT, READWRITE, struct_iscsi_wait_event_parameters_sz); 317 /* Entries from file: dev/ofw/openfirmio.h */ 318 _(OFIOCGET, READWRITE, struct_ofiocdesc_sz); 319 _(OFIOCSET, READ, struct_ofiocdesc_sz); 320 _(OFIOCNEXTPROP, READWRITE, struct_ofiocdesc_sz); 321 _(OFIOCGETOPTNODE, WRITE, sizeof(int)); 322 _(OFIOCGETNEXT, READWRITE, sizeof(int)); 323 _(OFIOCGETCHILD, READWRITE, sizeof(int)); 324 _(OFIOCFINDDEVICE, READWRITE, struct_ofiocdesc_sz); 325 /* Entries from file: dev/pci/amrio.h */ 326 _(AMR_IO_VERSION, WRITE, sizeof(int)); 327 _(AMR_IO_COMMAND, READWRITE, struct_amr_user_ioctl_sz); 328 /* Entries from file: dev/pci/mlyio.h */ 329 _(MLYIO_COMMAND, READWRITE, struct_mly_user_command_sz); 330 _(MLYIO_HEALTH, READ, struct_mly_user_health_sz); 331 /* Entries from file: dev/pci/pciio.h */ 332 _(PCI_IOC_CFGREAD, READWRITE, struct_pciio_cfgreg_sz); 333 _(PCI_IOC_CFGWRITE, READ, struct_pciio_cfgreg_sz); 334 _(PCI_IOC_BDF_CFGREAD, READWRITE, struct_pciio_bdf_cfgreg_sz); 335 _(PCI_IOC_BDF_CFGWRITE, READ, struct_pciio_bdf_cfgreg_sz); 336 _(PCI_IOC_BUSINFO, WRITE, struct_pciio_businfo_sz); 337 _(PCI_IOC_DRVNAME, READWRITE, struct_pciio_drvname_sz); 338 _(PCI_IOC_DRVNAMEONBUS, READWRITE, struct_pciio_drvnameonbus_sz); 339 /* Entries from file: dev/pci/tweio.h */ 340 _(TWEIO_COMMAND, READWRITE, struct_twe_usercommand_sz); 341 _(TWEIO_STATS, READWRITE, union_twe_statrequest_sz); 342 _(TWEIO_AEN_POLL, WRITE, sizeof(int)); 343 _(TWEIO_AEN_WAIT, WRITE, sizeof(int)); 344 _(TWEIO_SET_PARAM, READ, struct_twe_paramcommand_sz); 345 _(TWEIO_GET_PARAM, READ, struct_twe_paramcommand_sz); 346 _(TWEIO_RESET, NONE, 0); 347 _(TWEIO_ADD_UNIT, READ, struct_twe_drivecommand_sz); 348 _(TWEIO_DEL_UNIT, READ, struct_twe_drivecommand_sz); 349 /* Entries from file: dev/pcmcia/if_cnwioctl.h */ 350 _(SIOCSCNWDOMAIN, READ, struct_ifreq_sz); 351 _(SIOCGCNWDOMAIN, READWRITE, struct_ifreq_sz); 352 _(SIOCSCNWKEY, READWRITE, struct_ifreq_sz); 353 _(SIOCGCNWSTATUS, READWRITE, struct_cnwstatus_sz); 354 _(SIOCGCNWSTATS, READWRITE, struct_cnwistats_sz); 355 _(SIOCGCNWTRAIL, READWRITE, struct_cnwitrail_sz); 356 /* Entries from file: dev/pcmcia/if_rayreg.h */ 357 _(SIOCGRAYSIGLEV, READWRITE, struct_ifreq_sz); 358 /* Entries from file: dev/raidframe/raidframeio.h */ 359 _(RAIDFRAME_SHUTDOWN, NONE, 0); 360 _(RAIDFRAME_TUR, READ, sizeof(u64)); 361 _(RAIDFRAME_FAIL_DISK, READ, struct_rf_recon_req_sz); 362 _(RAIDFRAME_CHECK_RECON_STATUS, READWRITE, sizeof(int)); 363 _(RAIDFRAME_REWRITEPARITY, NONE, 0); 364 _(RAIDFRAME_COPYBACK, NONE, 0); 365 _(RAIDFRAME_SPARET_WAIT, WRITE, struct_RF_SparetWait_sz); 366 _(RAIDFRAME_SEND_SPARET, READ, sizeof(uptr)); 367 _(RAIDFRAME_ABORT_SPARET_WAIT, NONE, 0); 368 _(RAIDFRAME_START_ATRACE, NONE, 0); 369 _(RAIDFRAME_STOP_ATRACE, NONE, 0); 370 _(RAIDFRAME_GET_SIZE, WRITE, sizeof(int)); 371 _(RAIDFRAME_RESET_ACCTOTALS, NONE, 0); 372 _(RAIDFRAME_KEEP_ACCTOTALS, READ, sizeof(int)); 373 _(RAIDFRAME_GET_COMPONENT_LABEL, READWRITE, struct_RF_ComponentLabel_sz); 374 _(RAIDFRAME_SET_COMPONENT_LABEL, READ, struct_RF_ComponentLabel_sz); 375 _(RAIDFRAME_INIT_LABELS, READ, struct_RF_ComponentLabel_sz); 376 _(RAIDFRAME_ADD_HOT_SPARE, READ, struct_RF_SingleComponent_sz); 377 _(RAIDFRAME_REMOVE_HOT_SPARE, READ, struct_RF_SingleComponent_sz); 378 _(RAIDFRAME_REBUILD_IN_PLACE, READ, struct_RF_SingleComponent_sz); 379 _(RAIDFRAME_CHECK_PARITY, READWRITE, sizeof(int)); 380 _(RAIDFRAME_CHECK_PARITYREWRITE_STATUS, READWRITE, sizeof(int)); 381 _(RAIDFRAME_CHECK_COPYBACK_STATUS, READWRITE, sizeof(int)); 382 _(RAIDFRAME_SET_AUTOCONFIG, READWRITE, sizeof(int)); 383 _(RAIDFRAME_SET_ROOT, READWRITE, sizeof(int)); 384 _(RAIDFRAME_DELETE_COMPONENT, READ, struct_RF_SingleComponent_sz); 385 _(RAIDFRAME_INCORPORATE_HOT_SPARE, READ, struct_RF_SingleComponent_sz); 386 _(RAIDFRAME_CHECK_RECON_STATUS_EXT, READWRITE, struct_RF_ProgressInfo_sz); 387 _(RAIDFRAME_CHECK_PARITYREWRITE_STATUS_EXT, READWRITE, 388 struct_RF_ProgressInfo_sz); 389 _(RAIDFRAME_CHECK_COPYBACK_STATUS_EXT, READWRITE, struct_RF_ProgressInfo_sz); 390 _(RAIDFRAME_PARITYMAP_STATUS, WRITE, struct_rf_pmstat_sz); 391 _(RAIDFRAME_PARITYMAP_GET_DISABLE, WRITE, sizeof(int)); 392 _(RAIDFRAME_PARITYMAP_SET_DISABLE, READ, sizeof(int)); 393 _(RAIDFRAME_PARITYMAP_SET_PARAMS, READ, struct_rf_pmparams_sz); 394 _(RAIDFRAME_SET_LAST_UNIT, READ, sizeof(int)); 395 _(RAIDFRAME_GET_INFO, READWRITE, sizeof(uptr)); 396 _(RAIDFRAME_CONFIGURE, READ, sizeof(uptr)); 397 /* Entries from file: dev/sbus/mbppio.h */ 398 _(MBPPIOCSPARAM, READ, struct_mbpp_param_sz); 399 _(MBPPIOCGPARAM, WRITE, struct_mbpp_param_sz); 400 _(MBPPIOCGSTAT, WRITE, sizeof(int)); 401 /* Entries from file: dev/scsipi/ses.h */ 402 _(SESIOC_GETNOBJ, NONE, 0); 403 _(SESIOC_GETOBJMAP, NONE, 0); 404 _(SESIOC_GETENCSTAT, NONE, 0); 405 _(SESIOC_SETENCSTAT, NONE, 0); 406 _(SESIOC_GETOBJSTAT, NONE, 0); 407 _(SESIOC_SETOBJSTAT, NONE, 0); 408 _(SESIOC_GETTEXT, NONE, 0); 409 _(SESIOC_INIT, NONE, 0); 410 /* Entries from file: dev/sun/disklabel.h */ 411 _(SUN_DKIOCGGEOM, WRITE, struct_sun_dkgeom_sz); 412 _(SUN_DKIOCINFO, WRITE, struct_sun_dkctlr_sz); 413 _(SUN_DKIOCGPART, WRITE, struct_sun_dkpart_sz); 414 /* Entries from file: dev/sun/fbio.h */ 415 _(FBIOGTYPE, WRITE, struct_fbtype_sz); 416 _(FBIOPUTCMAP, READ, struct_fbcmap_sz); 417 _(FBIOGETCMAP, READ, struct_fbcmap_sz); 418 _(FBIOGATTR, WRITE, struct_fbgattr_sz); 419 _(FBIOSVIDEO, READ, sizeof(int)); 420 _(FBIOGVIDEO, WRITE, sizeof(int)); 421 _(FBIOSCURSOR, READ, struct_fbcursor_sz); 422 _(FBIOGCURSOR, READWRITE, struct_fbcursor_sz); 423 _(FBIOSCURPOS, READ, struct_fbcurpos_sz); 424 _(FBIOGCURPOS, READ, struct_fbcurpos_sz); 425 _(FBIOGCURMAX, WRITE, struct_fbcurpos_sz); 426 /* Entries from file: dev/sun/kbio.h */ 427 _(KIOCTRANS, READ, sizeof(int)); 428 _(KIOCSETKEY, READWRITE, struct_okiockey_sz); 429 _(KIOCGETKEY, READWRITE, struct_okiockey_sz); 430 _(KIOCGTRANS, WRITE, sizeof(int)); 431 _(KIOCCMD, READ, sizeof(int)); 432 _(KIOCTYPE, WRITE, sizeof(int)); 433 _(KIOCSDIRECT, READ, sizeof(int)); 434 _(KIOCSKEY, READ, struct_kiockeymap_sz); 435 _(KIOCGKEY, READWRITE, struct_kiockeymap_sz); 436 _(KIOCSLED, READ, sizeof(char)); 437 _(KIOCGLED, WRITE, sizeof(char)); 438 _(KIOCLAYOUT, WRITE, sizeof(int)); 439 /* Entries from file: dev/sun/vuid_event.h */ 440 _(VUIDSFORMAT, READ, sizeof(int)); 441 _(VUIDGFORMAT, WRITE, sizeof(int)); 442 /* Entries from file: dev/tc/sticio.h */ 443 _(STICIO_GXINFO, WRITE, struct_stic_xinfo_sz); 444 _(STICIO_RESET, NONE, 0); 445 _(STICIO_STARTQ, NONE, 0); 446 _(STICIO_STOPQ, NONE, 0); 447 /* Entries from file: dev/usb/ukyopon.h */ 448 _(UKYOPON_IDENTIFY, WRITE, struct_ukyopon_identify_sz); 449 /* Entries from file: dev/usb/urio.h */ 450 _(URIO_SEND_COMMAND, READWRITE, struct_urio_command_sz); 451 _(URIO_RECV_COMMAND, READWRITE, struct_urio_command_sz); 452 /* Entries from file: dev/usb/usb.h */ 453 _(USB_REQUEST, READWRITE, struct_usb_ctl_request_sz); 454 _(USB_SETDEBUG, READ, sizeof(int)); 455 _(USB_DISCOVER, NONE, 0); 456 _(USB_DEVICEINFO, READWRITE, struct_usb_device_info_sz); 457 _(USB_DEVICEINFO_OLD, READWRITE, struct_usb_device_info_old_sz); 458 _(USB_DEVICESTATS, WRITE, struct_usb_device_stats_sz); 459 _(USB_GET_REPORT_DESC, WRITE, struct_usb_ctl_report_desc_sz); 460 _(USB_SET_IMMED, READ, sizeof(int)); 461 _(USB_GET_REPORT, READWRITE, struct_usb_ctl_report_sz); 462 _(USB_SET_REPORT, READ, struct_usb_ctl_report_sz); 463 _(USB_GET_REPORT_ID, WRITE, sizeof(int)); 464 _(USB_GET_CONFIG, WRITE, sizeof(int)); 465 _(USB_SET_CONFIG, READ, sizeof(int)); 466 _(USB_GET_ALTINTERFACE, READWRITE, struct_usb_alt_interface_sz); 467 _(USB_SET_ALTINTERFACE, READWRITE, struct_usb_alt_interface_sz); 468 _(USB_GET_NO_ALT, READWRITE, struct_usb_alt_interface_sz); 469 _(USB_GET_DEVICE_DESC, WRITE, struct_usb_device_descriptor_sz); 470 _(USB_GET_CONFIG_DESC, READWRITE, struct_usb_config_desc_sz); 471 _(USB_GET_INTERFACE_DESC, READWRITE, struct_usb_interface_desc_sz); 472 _(USB_GET_ENDPOINT_DESC, READWRITE, struct_usb_endpoint_desc_sz); 473 _(USB_GET_FULL_DESC, READWRITE, struct_usb_full_desc_sz); 474 _(USB_GET_STRING_DESC, READWRITE, struct_usb_string_desc_sz); 475 _(USB_DO_REQUEST, READWRITE, struct_usb_ctl_request_sz); 476 _(USB_GET_DEVICEINFO, WRITE, struct_usb_device_info_sz); 477 _(USB_GET_DEVICEINFO_OLD, WRITE, struct_usb_device_info_old_sz); 478 _(USB_SET_SHORT_XFER, READ, sizeof(int)); 479 _(USB_SET_TIMEOUT, READ, sizeof(int)); 480 _(USB_SET_BULK_RA, READ, sizeof(int)); 481 _(USB_SET_BULK_WB, READ, sizeof(int)); 482 _(USB_SET_BULK_RA_OPT, READ, struct_usb_bulk_ra_wb_opt_sz); 483 _(USB_SET_BULK_WB_OPT, READ, struct_usb_bulk_ra_wb_opt_sz); 484 _(USB_GET_CM_OVER_DATA, WRITE, sizeof(int)); 485 _(USB_SET_CM_OVER_DATA, READ, sizeof(int)); 486 /* Entries from file: dev/usb/utoppy.h */ 487 _(UTOPPYIOTURBO, READ, sizeof(int)); 488 _(UTOPPYIOREBOOT, NONE, 0); 489 _(UTOPPYIOSTATS, WRITE, struct_utoppy_stats_sz); 490 _(UTOPPYIORENAME, READ, struct_utoppy_rename_sz); 491 _(UTOPPYIOMKDIR, READ, sizeof(uptr)); 492 _(UTOPPYIODELETE, READ, sizeof(uptr)); 493 _(UTOPPYIOREADDIR, READ, sizeof(uptr)); 494 _(UTOPPYIOREADFILE, READ, struct_utoppy_readfile_sz); 495 _(UTOPPYIOWRITEFILE, READ, struct_utoppy_writefile_sz); 496 /* Entries from file: dev/vme/xio.h */ 497 _(DIOSXDCMD, READWRITE, struct_xd_iocmd_sz); 498 /* Entries from file: dev/wscons/wsdisplay_usl_io.h */ 499 _(VT_OPENQRY, WRITE, sizeof(int)); 500 _(VT_SETMODE, READ, struct_vt_mode_sz); 501 _(VT_GETMODE, WRITE, struct_vt_mode_sz); 502 _(VT_RELDISP, NONE, 0); 503 _(VT_ACTIVATE, NONE, 0); 504 _(VT_WAITACTIVE, NONE, 0); 505 _(VT_GETACTIVE, WRITE, sizeof(int)); 506 _(VT_GETSTATE, WRITE, struct_vt_stat_sz); 507 _(KDGETKBENT, READWRITE, struct_kbentry_sz); 508 _(KDGKBMODE, WRITE, sizeof(int)); 509 _(KDSKBMODE, NONE, 0); 510 _(KDMKTONE, NONE, 0); 511 _(KDSETMODE, NONE, 0); 512 _(KDENABIO, NONE, 0); 513 _(KDDISABIO, NONE, 0); 514 _(KDGKBTYPE, WRITE, sizeof(char)); 515 _(KDGETLED, WRITE, sizeof(int)); 516 _(KDSETLED, NONE, 0); 517 _(KDSETRAD, NONE, 0); 518 _(VGAPCVTID, READWRITE, struct_pcvtid_sz); 519 _(CONS_GETVERS, WRITE, sizeof(int)); 520 /* Entries from file: dev/wscons/wsconsio.h */ 521 _(WSKBDIO_GTYPE, WRITE, sizeof(unsigned int)); 522 _(WSKBDIO_BELL, NONE, 0); 523 _(WSKBDIO_COMPLEXBELL, READ, struct_wskbd_bell_data_sz); 524 _(WSKBDIO_SETBELL, READ, struct_wskbd_bell_data_sz); 525 _(WSKBDIO_GETBELL, WRITE, struct_wskbd_bell_data_sz); 526 _(WSKBDIO_SETDEFAULTBELL, READ, struct_wskbd_bell_data_sz); 527 _(WSKBDIO_GETDEFAULTBELL, WRITE, struct_wskbd_bell_data_sz); 528 _(WSKBDIO_SETKEYREPEAT, READ, struct_wskbd_keyrepeat_data_sz); 529 _(WSKBDIO_GETKEYREPEAT, WRITE, struct_wskbd_keyrepeat_data_sz); 530 _(WSKBDIO_SETDEFAULTKEYREPEAT, READ, struct_wskbd_keyrepeat_data_sz); 531 _(WSKBDIO_GETDEFAULTKEYREPEAT, WRITE, struct_wskbd_keyrepeat_data_sz); 532 _(WSKBDIO_SETLEDS, READ, sizeof(int)); 533 _(WSKBDIO_GETLEDS, WRITE, sizeof(int)); 534 _(WSKBDIO_GETMAP, READWRITE, struct_wskbd_map_data_sz); 535 _(WSKBDIO_SETMAP, READ, struct_wskbd_map_data_sz); 536 _(WSKBDIO_GETENCODING, WRITE, sizeof(int)); 537 _(WSKBDIO_SETENCODING, READ, sizeof(int)); 538 _(WSKBDIO_SETMODE, READ, sizeof(int)); 539 _(WSKBDIO_GETMODE, WRITE, sizeof(int)); 540 _(WSKBDIO_SETKEYCLICK, READ, sizeof(int)); 541 _(WSKBDIO_GETKEYCLICK, WRITE, sizeof(int)); 542 _(WSKBDIO_GETSCROLL, WRITE, struct_wskbd_scroll_data_sz); 543 _(WSKBDIO_SETSCROLL, READ, struct_wskbd_scroll_data_sz); 544 _(WSKBDIO_SETVERSION, READ, sizeof(int)); 545 _(WSMOUSEIO_GTYPE, WRITE, sizeof(unsigned int)); 546 _(WSMOUSEIO_SRES, READ, sizeof(unsigned int)); 547 _(WSMOUSEIO_SSCALE, READ, sizeof(unsigned int)); 548 _(WSMOUSEIO_SRATE, READ, sizeof(unsigned int)); 549 _(WSMOUSEIO_SCALIBCOORDS, READ, struct_wsmouse_calibcoords_sz); 550 _(WSMOUSEIO_GCALIBCOORDS, WRITE, struct_wsmouse_calibcoords_sz); 551 _(WSMOUSEIO_GETID, READWRITE, struct_wsmouse_id_sz); 552 _(WSMOUSEIO_GETREPEAT, WRITE, struct_wsmouse_repeat_sz); 553 _(WSMOUSEIO_SETREPEAT, READ, struct_wsmouse_repeat_sz); 554 _(WSMOUSEIO_SETVERSION, READ, sizeof(int)); 555 _(WSDISPLAYIO_GTYPE, WRITE, sizeof(unsigned int)); 556 _(WSDISPLAYIO_GINFO, WRITE, struct_wsdisplay_fbinfo_sz); 557 _(WSDISPLAYIO_GETCMAP, READ, struct_wsdisplay_cmap_sz); 558 _(WSDISPLAYIO_PUTCMAP, READ, struct_wsdisplay_cmap_sz); 559 _(WSDISPLAYIO_GVIDEO, WRITE, sizeof(unsigned int)); 560 _(WSDISPLAYIO_SVIDEO, READ, sizeof(unsigned int)); 561 _(WSDISPLAYIO_GCURPOS, WRITE, struct_wsdisplay_curpos_sz); 562 _(WSDISPLAYIO_SCURPOS, READ, struct_wsdisplay_curpos_sz); 563 _(WSDISPLAYIO_GCURMAX, WRITE, struct_wsdisplay_curpos_sz); 564 _(WSDISPLAYIO_GCURSOR, READWRITE, struct_wsdisplay_cursor_sz); 565 _(WSDISPLAYIO_SCURSOR, READ, struct_wsdisplay_cursor_sz); 566 _(WSDISPLAYIO_GMODE, WRITE, sizeof(unsigned int)); 567 _(WSDISPLAYIO_SMODE, READ, sizeof(unsigned int)); 568 _(WSDISPLAYIO_LDFONT, READ, struct_wsdisplay_font_sz); 569 _(WSDISPLAYIO_ADDSCREEN, READ, struct_wsdisplay_addscreendata_sz); 570 _(WSDISPLAYIO_DELSCREEN, READ, struct_wsdisplay_delscreendata_sz); 571 _(WSDISPLAYIO_SFONT, READ, struct_wsdisplay_usefontdata_sz); 572 _(_O_WSDISPLAYIO_SETKEYBOARD, READWRITE, struct_wsdisplay_kbddata_sz); 573 _(WSDISPLAYIO_GETPARAM, READWRITE, struct_wsdisplay_param_sz); 574 _(WSDISPLAYIO_SETPARAM, READWRITE, struct_wsdisplay_param_sz); 575 _(WSDISPLAYIO_GETACTIVESCREEN, WRITE, sizeof(int)); 576 _(WSDISPLAYIO_GETWSCHAR, READWRITE, struct_wsdisplay_char_sz); 577 _(WSDISPLAYIO_PUTWSCHAR, READWRITE, struct_wsdisplay_char_sz); 578 _(WSDISPLAYIO_DGSCROLL, WRITE, struct_wsdisplay_scroll_data_sz); 579 _(WSDISPLAYIO_DSSCROLL, READ, struct_wsdisplay_scroll_data_sz); 580 _(WSDISPLAYIO_GMSGATTRS, WRITE, struct_wsdisplay_msgattrs_sz); 581 _(WSDISPLAYIO_SMSGATTRS, READ, struct_wsdisplay_msgattrs_sz); 582 _(WSDISPLAYIO_GBORDER, WRITE, sizeof(int)); 583 _(WSDISPLAYIO_SBORDER, READ, sizeof(int)); 584 _(WSDISPLAYIO_SSPLASH, READ, sizeof(int)); 585 _(WSDISPLAYIO_SPROGRESS, READ, sizeof(int)); 586 _(WSDISPLAYIO_LINEBYTES, WRITE, sizeof(unsigned int)); 587 _(WSDISPLAYIO_SETVERSION, READ, sizeof(int)); 588 _(WSMUXIO_ADD_DEVICE, READ, struct_wsmux_device_sz); 589 _(WSMUXIO_REMOVE_DEVICE, READ, struct_wsmux_device_sz); 590 _(WSMUXIO_LIST_DEVICES, READWRITE, struct_wsmux_device_list_sz); 591 _(WSMUXIO_INJECTEVENT, READ, struct_wscons_event_sz); 592 _(WSDISPLAYIO_GET_BUSID, WRITE, struct_wsdisplayio_bus_id_sz); 593 _(WSDISPLAYIO_GET_EDID, READWRITE, struct_wsdisplayio_edid_info_sz); 594 _(WSDISPLAYIO_SET_POLLING, READ, sizeof(int)); 595 _(WSDISPLAYIO_GET_FBINFO, READWRITE, struct_wsdisplayio_fbinfo_sz); 596 _(WSDISPLAYIO_DOBLIT, READWRITE, struct_wsdisplayio_blit_sz); 597 _(WSDISPLAYIO_WAITBLIT, READWRITE, struct_wsdisplayio_blit_sz); 598 /* Entries from file: dev/biovar.h */ 599 _(BIOCLOCATE, READWRITE, struct_bio_locate_sz); 600 _(BIOCINQ, READWRITE, struct_bioc_inq_sz); 601 _(BIOCDISK_NOVOL, READWRITE, struct_bioc_disk_sz); 602 _(BIOCDISK, READWRITE, struct_bioc_disk_sz); 603 _(BIOCVOL, READWRITE, struct_bioc_vol_sz); 604 _(BIOCALARM, READWRITE, struct_bioc_alarm_sz); 605 _(BIOCBLINK, READWRITE, struct_bioc_blink_sz); 606 _(BIOCSETSTATE, READWRITE, struct_bioc_setstate_sz); 607 _(BIOCVOLOPS, READWRITE, struct_bioc_volops_sz); 608 /* Entries from file: dev/md.h */ 609 _(MD_GETCONF, WRITE, struct_md_conf_sz); 610 _(MD_SETCONF, READ, struct_md_conf_sz); 611 /* Entries from file: dev/ccdvar.h */ 612 _(CCDIOCSET, READWRITE, struct_ccd_ioctl_sz); 613 _(CCDIOCCLR, READ, struct_ccd_ioctl_sz); 614 /* Entries from file: dev/cgdvar.h */ 615 _(CGDIOCSET, READWRITE, struct_cgd_ioctl_sz); 616 _(CGDIOCCLR, READ, struct_cgd_ioctl_sz); 617 _(CGDIOCGET, READWRITE, struct_cgd_user_sz); 618 /* Entries from file: dev/fssvar.h */ 619 _(FSSIOCSET, READ, struct_fss_set_sz); 620 _(FSSIOCGET, WRITE, struct_fss_get_sz); 621 _(FSSIOCCLR, NONE, 0); 622 _(FSSIOFSET, READ, sizeof(int)); 623 _(FSSIOFGET, WRITE, sizeof(int)); 624 /* Entries from file: dev/bluetooth/btdev.h */ 625 _(BTDEV_ATTACH, READ, struct_plistref_sz); 626 _(BTDEV_DETACH, READ, struct_plistref_sz); 627 /* Entries from file: dev/bluetooth/btsco.h */ 628 _(BTSCO_GETINFO, WRITE, struct_btsco_info_sz); 629 /* Entries from file: dev/kttcpio.h */ 630 _(KTTCP_IO_SEND, READWRITE, struct_kttcp_io_args_sz); 631 _(KTTCP_IO_RECV, READWRITE, struct_kttcp_io_args_sz); 632 /* Entries from file: dev/lockstat.h */ 633 _(IOC_LOCKSTAT_GVERSION, WRITE, sizeof(int)); 634 _(IOC_LOCKSTAT_ENABLE, READ, struct_lsenable_sz); 635 _(IOC_LOCKSTAT_DISABLE, WRITE, struct_lsdisable_sz); 636 /* Entries from file: dev/vndvar.h */ 637 _(VNDIOCSET, READWRITE, struct_vnd_ioctl_sz); 638 _(VNDIOCCLR, READ, struct_vnd_ioctl_sz); 639 _(VNDIOCGET, READWRITE, struct_vnd_user_sz); 640 /* Entries from file: dev/spkrio.h */ 641 _(SPKRTONE, READ, struct_tone_sz); 642 _(SPKRTUNE, NONE, 0); 643 _(SPKRGETVOL, WRITE, sizeof(unsigned int)); 644 _(SPKRSETVOL, READ, sizeof(unsigned int)); 645#if defined(__x86_64__) 646 /* Entries from file: dev/nvmm/nvmm_ioctl.h */ 647 _(NVMM_IOC_CAPABILITY, WRITE, struct_nvmm_ioc_capability_sz); 648 _(NVMM_IOC_MACHINE_CREATE, READWRITE, struct_nvmm_ioc_machine_create_sz); 649 _(NVMM_IOC_MACHINE_DESTROY, READ, struct_nvmm_ioc_machine_destroy_sz); 650 _(NVMM_IOC_MACHINE_CONFIGURE, READ, struct_nvmm_ioc_machine_configure_sz); 651 _(NVMM_IOC_VCPU_CREATE, READ, struct_nvmm_ioc_vcpu_create_sz); 652 _(NVMM_IOC_VCPU_DESTROY, READ, struct_nvmm_ioc_vcpu_destroy_sz); 653 _(NVMM_IOC_VCPU_CONFIGURE, READ, struct_nvmm_ioc_vcpu_configure_sz); 654 _(NVMM_IOC_VCPU_SETSTATE, READ, struct_nvmm_ioc_vcpu_setstate_sz); 655 _(NVMM_IOC_VCPU_GETSTATE, READ, struct_nvmm_ioc_vcpu_getstate_sz); 656 _(NVMM_IOC_VCPU_INJECT, READ, struct_nvmm_ioc_vcpu_inject_sz); 657 _(NVMM_IOC_VCPU_RUN, READWRITE, struct_nvmm_ioc_vcpu_run_sz); 658 _(NVMM_IOC_GPA_MAP, READ, struct_nvmm_ioc_gpa_map_sz); 659 _(NVMM_IOC_GPA_UNMAP, READ, struct_nvmm_ioc_gpa_unmap_sz); 660 _(NVMM_IOC_HVA_MAP, READ, struct_nvmm_ioc_hva_map_sz); 661 _(NVMM_IOC_HVA_UNMAP, READ, struct_nvmm_ioc_hva_unmap_sz); 662 _(NVMM_IOC_CTL, READ, struct_nvmm_ioc_ctl_sz); 663#endif 664 /* Entries from file: dev/spi/spi_io.h */ 665 _(SPI_IOCTL_CONFIGURE, READ, struct_spi_ioctl_configure_sz); 666 _(SPI_IOCTL_TRANSFER, READ, struct_spi_ioctl_transfer_sz); 667 /* Entries from file: fs/autofs/autofs_ioctl.h */ 668 _(AUTOFSREQUEST, WRITE, struct_autofs_daemon_request_sz); 669 _(AUTOFSDONE, READ, struct_autofs_daemon_done_sz); 670 /* Entries from file: net/bpf.h */ 671 _(BIOCGBLEN, WRITE, sizeof(unsigned int)); 672 _(BIOCSBLEN, READWRITE, sizeof(unsigned int)); 673 _(BIOCSETF, READ, struct_bpf_program_sz); 674 _(BIOCFLUSH, NONE, 0); 675 _(BIOCPROMISC, NONE, 0); 676 _(BIOCGDLT, WRITE, sizeof(unsigned int)); 677 _(BIOCGETIF, WRITE, struct_ifreq_sz); 678 _(BIOCSETIF, READ, struct_ifreq_sz); 679 _(BIOCGSTATS, WRITE, struct_bpf_stat_sz); 680 _(BIOCGSTATSOLD, WRITE, struct_bpf_stat_old_sz); 681 _(BIOCIMMEDIATE, READ, sizeof(unsigned int)); 682 _(BIOCVERSION, WRITE, struct_bpf_version_sz); 683 _(BIOCSTCPF, READ, struct_bpf_program_sz); 684 _(BIOCSUDPF, READ, struct_bpf_program_sz); 685 _(BIOCGHDRCMPLT, WRITE, sizeof(unsigned int)); 686 _(BIOCSHDRCMPLT, READ, sizeof(unsigned int)); 687 _(BIOCSDLT, READ, sizeof(unsigned int)); 688 _(BIOCGDLTLIST, READWRITE, struct_bpf_dltlist_sz); 689 _(BIOCGDIRECTION, WRITE, sizeof(unsigned int)); 690 _(BIOCSDIRECTION, READ, sizeof(unsigned int)); 691 _(BIOCSRTIMEOUT, READ, struct_timeval_sz); 692 _(BIOCGRTIMEOUT, WRITE, struct_timeval_sz); 693 _(BIOCGFEEDBACK, WRITE, sizeof(unsigned int)); 694 _(BIOCSFEEDBACK, READ, sizeof(unsigned int)); 695 /* Entries from file: net/if_gre.h */ 696 _(GRESADDRS, READ, struct_ifreq_sz); 697 _(GRESADDRD, READ, struct_ifreq_sz); 698 _(GREGADDRS, READWRITE, struct_ifreq_sz); 699 _(GREGADDRD, READWRITE, struct_ifreq_sz); 700 _(GRESPROTO, READ, struct_ifreq_sz); 701 _(GREGPROTO, READWRITE, struct_ifreq_sz); 702 _(GRESSOCK, READ, struct_ifreq_sz); 703 _(GREDSOCK, READ, struct_ifreq_sz); 704 /* Entries from file: net/if_ppp.h */ 705 _(PPPIOCGRAWIN, WRITE, struct_ppp_rawin_sz); 706 _(PPPIOCGFLAGS, WRITE, sizeof(int)); 707 _(PPPIOCSFLAGS, READ, sizeof(int)); 708 _(PPPIOCGASYNCMAP, WRITE, sizeof(int)); 709 _(PPPIOCSASYNCMAP, READ, sizeof(int)); 710 _(PPPIOCGUNIT, WRITE, sizeof(int)); 711 _(PPPIOCGRASYNCMAP, WRITE, sizeof(int)); 712 _(PPPIOCSRASYNCMAP, READ, sizeof(int)); 713 _(PPPIOCGMRU, WRITE, sizeof(int)); 714 _(PPPIOCSMRU, READ, sizeof(int)); 715 _(PPPIOCSMAXCID, READ, sizeof(int)); 716 _(PPPIOCGXASYNCMAP, WRITE, (8 * sizeof(u32))); 717 _(PPPIOCSXASYNCMAP, READ, (8 * sizeof(u32))); 718 _(PPPIOCXFERUNIT, NONE, 0); 719 _(PPPIOCSCOMPRESS, READ, struct_ppp_option_data_sz); 720 _(PPPIOCGNPMODE, READWRITE, struct_npioctl_sz); 721 _(PPPIOCSNPMODE, READ, struct_npioctl_sz); 722 _(PPPIOCGIDLE, WRITE, struct_ppp_idle_sz); 723 _(PPPIOCGMTU, WRITE, sizeof(int)); 724 _(PPPIOCSMTU, READ, sizeof(int)); 725 _(SIOCGPPPSTATS, READWRITE, struct_ifpppstatsreq_sz); 726 _(SIOCGPPPCSTATS, READWRITE, struct_ifpppcstatsreq_sz); 727 /* Entries from file: net/npf.h */ 728 _(IOC_NPF_VERSION, WRITE, sizeof(int)); 729 _(IOC_NPF_SWITCH, READ, sizeof(int)); 730 _(IOC_NPF_LOAD, READWRITE, struct_nvlist_ref_sz); 731 _(IOC_NPF_TABLE, READ, struct_npf_ioctl_table_sz); 732 _(IOC_NPF_STATS, READ, sizeof(uptr)); 733 _(IOC_NPF_SAVE, WRITE, struct_nvlist_ref_sz); 734 _(IOC_NPF_RULE, READWRITE, struct_nvlist_ref_sz); 735 _(IOC_NPF_CONN_LOOKUP, READWRITE, struct_nvlist_ref_sz); 736 _(IOC_NPF_TABLE_REPLACE, READWRITE, struct_nvlist_ref_sz); 737 /* Entries from file: net/if_pppoe.h */ 738 _(PPPOESETPARMS, READ, struct_pppoediscparms_sz); 739 _(PPPOEGETPARMS, READWRITE, struct_pppoediscparms_sz); 740 _(PPPOEGETSESSION, READWRITE, struct_pppoeconnectionstate_sz); 741 /* Entries from file: net/if_sppp.h */ 742 _(SPPPGETAUTHCFG, READWRITE, struct_spppauthcfg_sz); 743 _(SPPPSETAUTHCFG, READ, struct_spppauthcfg_sz); 744 _(SPPPGETLCPCFG, READWRITE, struct_sppplcpcfg_sz); 745 _(SPPPSETLCPCFG, READ, struct_sppplcpcfg_sz); 746 _(SPPPGETSTATUS, READWRITE, struct_spppstatus_sz); 747 _(SPPPGETSTATUSNCP, READWRITE, struct_spppstatusncp_sz); 748 _(SPPPGETIDLETO, READWRITE, struct_spppidletimeout_sz); 749 _(SPPPSETIDLETO, READ, struct_spppidletimeout_sz); 750 _(SPPPGETAUTHFAILURES, READWRITE, struct_spppauthfailurestats_sz); 751 _(SPPPSETAUTHFAILURE, READ, struct_spppauthfailuresettings_sz); 752 _(SPPPSETDNSOPTS, READ, struct_spppdnssettings_sz); 753 _(SPPPGETDNSOPTS, READWRITE, struct_spppdnssettings_sz); 754 _(SPPPGETDNSADDRS, READWRITE, struct_spppdnsaddrs_sz); 755 _(SPPPSETKEEPALIVE, READ, struct_spppkeepalivesettings_sz); 756 _(SPPPGETKEEPALIVE, READWRITE, struct_spppkeepalivesettings_sz); 757 /* Entries from file: net/if_srt.h */ 758 _(SRT_GETNRT, WRITE, sizeof(unsigned int)); 759 _(SRT_GETRT, READWRITE, struct_srt_rt_sz); 760 _(SRT_SETRT, READ, struct_srt_rt_sz); 761 _(SRT_DELRT, READ, sizeof(unsigned int)); 762 _(SRT_SFLAGS, READ, sizeof(unsigned int)); 763 _(SRT_GFLAGS, WRITE, sizeof(unsigned int)); 764 _(SRT_SGFLAGS, READWRITE, sizeof(unsigned int)); 765 _(SRT_DEBUG, READ, sizeof(uptr)); 766 /* Entries from file: net/if_tap.h */ 767 _(TAPGIFNAME, WRITE, struct_ifreq_sz); 768 /* Entries from file: net/if_tun.h */ 769 _(TUNSDEBUG, READ, sizeof(int)); 770 _(TUNGDEBUG, WRITE, sizeof(int)); 771 _(TUNSIFMODE, READ, sizeof(int)); 772 _(TUNSIFHEAD, READ, sizeof(int)); 773 _(TUNGIFHEAD, WRITE, sizeof(int)); 774 /* Entries from file: net/pfvar.h */ 775 _(DIOCSTART, NONE, 0); 776 _(DIOCSTOP, NONE, 0); 777 _(DIOCADDRULE, READWRITE, struct_pfioc_rule_sz); 778 _(DIOCGETRULES, READWRITE, struct_pfioc_rule_sz); 779 _(DIOCGETRULE, READWRITE, struct_pfioc_rule_sz); 780 _(DIOCSETLCK, READWRITE, sizeof(u32)); 781 _(DIOCCLRSTATES, READWRITE, struct_pfioc_state_kill_sz); 782 _(DIOCGETSTATE, READWRITE, struct_pfioc_state_sz); 783 _(DIOCSETSTATUSIF, READWRITE, struct_pfioc_if_sz); 784 _(DIOCGETSTATUS, READWRITE, struct_pf_status_sz); 785 _(DIOCCLRSTATUS, NONE, 0); 786 _(DIOCNATLOOK, READWRITE, struct_pfioc_natlook_sz); 787 _(DIOCSETDEBUG, READWRITE, sizeof(u32)); 788 _(DIOCGETSTATES, READWRITE, struct_pfioc_states_sz); 789 _(DIOCCHANGERULE, READWRITE, struct_pfioc_rule_sz); 790 _(DIOCSETTIMEOUT, READWRITE, struct_pfioc_tm_sz); 791 _(DIOCGETTIMEOUT, READWRITE, struct_pfioc_tm_sz); 792 _(DIOCADDSTATE, READWRITE, struct_pfioc_state_sz); 793 _(DIOCCLRRULECTRS, NONE, 0); 794 _(DIOCGETLIMIT, READWRITE, struct_pfioc_limit_sz); 795 _(DIOCSETLIMIT, READWRITE, struct_pfioc_limit_sz); 796 _(DIOCKILLSTATES, READWRITE, struct_pfioc_state_kill_sz); 797 _(DIOCSTARTALTQ, NONE, 0); 798 _(DIOCSTOPALTQ, NONE, 0); 799 _(DIOCADDALTQ, READWRITE, struct_pfioc_altq_sz); 800 _(DIOCGETALTQS, READWRITE, struct_pfioc_altq_sz); 801 _(DIOCGETALTQ, READWRITE, struct_pfioc_altq_sz); 802 _(DIOCCHANGEALTQ, READWRITE, struct_pfioc_altq_sz); 803 _(DIOCGETQSTATS, READWRITE, struct_pfioc_qstats_sz); 804 _(DIOCBEGINADDRS, READWRITE, struct_pfioc_pooladdr_sz); 805 _(DIOCADDADDR, READWRITE, struct_pfioc_pooladdr_sz); 806 _(DIOCGETADDRS, READWRITE, struct_pfioc_pooladdr_sz); 807 _(DIOCGETADDR, READWRITE, struct_pfioc_pooladdr_sz); 808 _(DIOCCHANGEADDR, READWRITE, struct_pfioc_pooladdr_sz); 809 _(DIOCADDSTATES, READWRITE, struct_pfioc_states_sz); 810 _(DIOCGETRULESETS, READWRITE, struct_pfioc_ruleset_sz); 811 _(DIOCGETRULESET, READWRITE, struct_pfioc_ruleset_sz); 812 _(DIOCRCLRTABLES, READWRITE, struct_pfioc_table_sz); 813 _(DIOCRADDTABLES, READWRITE, struct_pfioc_table_sz); 814 _(DIOCRDELTABLES, READWRITE, struct_pfioc_table_sz); 815 _(DIOCRGETTABLES, READWRITE, struct_pfioc_table_sz); 816 _(DIOCRGETTSTATS, READWRITE, struct_pfioc_table_sz); 817 _(DIOCRCLRTSTATS, READWRITE, struct_pfioc_table_sz); 818 _(DIOCRCLRADDRS, READWRITE, struct_pfioc_table_sz); 819 _(DIOCRADDADDRS, READWRITE, struct_pfioc_table_sz); 820 _(DIOCRDELADDRS, READWRITE, struct_pfioc_table_sz); 821 _(DIOCRSETADDRS, READWRITE, struct_pfioc_table_sz); 822 _(DIOCRGETADDRS, READWRITE, struct_pfioc_table_sz); 823 _(DIOCRGETASTATS, READWRITE, struct_pfioc_table_sz); 824 _(DIOCRCLRASTATS, READWRITE, struct_pfioc_table_sz); 825 _(DIOCRTSTADDRS, READWRITE, struct_pfioc_table_sz); 826 _(DIOCRSETTFLAGS, READWRITE, struct_pfioc_table_sz); 827 _(DIOCRINADEFINE, READWRITE, struct_pfioc_table_sz); 828 _(DIOCOSFPFLUSH, NONE, 0); 829 _(DIOCOSFPADD, READWRITE, struct_pf_osfp_ioctl_sz); 830 _(DIOCOSFPGET, READWRITE, struct_pf_osfp_ioctl_sz); 831 _(DIOCXBEGIN, READWRITE, struct_pfioc_trans_sz); 832 _(DIOCXCOMMIT, READWRITE, struct_pfioc_trans_sz); 833 _(DIOCXROLLBACK, READWRITE, struct_pfioc_trans_sz); 834 _(DIOCGETSRCNODES, READWRITE, struct_pfioc_src_nodes_sz); 835 _(DIOCCLRSRCNODES, NONE, 0); 836 _(DIOCSETHOSTID, READWRITE, sizeof(u32)); 837 _(DIOCIGETIFACES, READWRITE, struct_pfioc_iface_sz); 838 _(DIOCSETIFFLAG, READWRITE, struct_pfioc_iface_sz); 839 _(DIOCCLRIFFLAG, READWRITE, struct_pfioc_iface_sz); 840 _(DIOCKILLSRCNODES, READWRITE, struct_pfioc_src_node_kill_sz); 841 /* Entries from file: netbt/hci.h */ 842 _(SIOCGBTINFO, READWRITE, struct_btreq_sz); 843 _(SIOCGBTINFOA, READWRITE, struct_btreq_sz); 844 _(SIOCNBTINFO, READWRITE, struct_btreq_sz); 845 _(SIOCSBTFLAGS, READWRITE, struct_btreq_sz); 846 _(SIOCSBTPOLICY, READWRITE, struct_btreq_sz); 847 _(SIOCSBTPTYPE, READWRITE, struct_btreq_sz); 848 _(SIOCGBTSTATS, READWRITE, struct_btreq_sz); 849 _(SIOCZBTSTATS, READWRITE, struct_btreq_sz); 850 _(SIOCBTDUMP, READ, struct_btreq_sz); 851 _(SIOCSBTSCOMTU, READWRITE, struct_btreq_sz); 852 _(SIOCGBTFEAT, READWRITE, struct_btreq_sz); 853 /* Entries from file: netinet/ip_nat.h */ 854 _(SIOCADNAT, READ, struct_ipfobj_sz); 855 _(SIOCRMNAT, READ, struct_ipfobj_sz); 856 _(SIOCGNATS, READWRITE, struct_ipfobj_sz); 857 _(SIOCGNATL, READWRITE, struct_ipfobj_sz); 858 _(SIOCPURGENAT, READWRITE, struct_ipfobj_sz); 859 /* Entries from file: netinet/sctp_uio.h */ 860 _(SIOCCONNECTX, READWRITE, struct_sctp_connectx_addrs_sz); 861 _(SIOCCONNECTXDEL, READWRITE, struct_sctp_connectx_addrs_sz); 862 /* Entries from file: netinet6/in6_var.h */ 863 _(SIOCSIFINFO_FLAGS, READWRITE, struct_in6_ndireq_sz); 864 _(SIOCAADDRCTL_POLICY, READ, struct_in6_addrpolicy_sz); 865 _(SIOCDADDRCTL_POLICY, READ, struct_in6_addrpolicy_sz); 866 /* Entries from file: netsmb/smb_dev.h */ 867 _(SMBIOC_OPENSESSION, READ, struct_smbioc_ossn_sz); 868 _(SMBIOC_OPENSHARE, READ, struct_smbioc_oshare_sz); 869 _(SMBIOC_REQUEST, READWRITE, struct_smbioc_rq_sz); 870 _(SMBIOC_SETFLAGS, READ, struct_smbioc_flags_sz); 871 _(SMBIOC_LOOKUP, READ, struct_smbioc_lookup_sz); 872 _(SMBIOC_READ, READWRITE, struct_smbioc_rw_sz); 873 _(SMBIOC_WRITE, READWRITE, struct_smbioc_rw_sz); 874 /* Entries from file: sys/agpio.h */ 875 _(AGPIOC_INFO, WRITE, struct__agp_info_sz); 876 _(AGPIOC_ACQUIRE, NONE, 0); 877 _(AGPIOC_RELEASE, NONE, 0); 878 _(AGPIOC_SETUP, READ, struct__agp_setup_sz); 879 _(AGPIOC_ALLOCATE, READWRITE, struct__agp_allocate_sz); 880 _(AGPIOC_DEALLOCATE, READ, sizeof(int)); 881 _(AGPIOC_BIND, READ, struct__agp_bind_sz); 882 _(AGPIOC_UNBIND, READ, struct__agp_unbind_sz); 883 /* Entries from file: sys/audioio.h */ 884 _(AUDIO_GETINFO, WRITE, struct_audio_info_sz); 885 _(AUDIO_SETINFO, READWRITE, struct_audio_info_sz); 886 _(AUDIO_DRAIN, NONE, 0); 887 _(AUDIO_FLUSH, NONE, 0); 888 _(AUDIO_WSEEK, WRITE, sizeof(unsigned long)); 889 _(AUDIO_RERROR, WRITE, sizeof(int)); 890 _(AUDIO_GETDEV, WRITE, struct_audio_device_sz); 891 _(AUDIO_GETENC, READWRITE, struct_audio_encoding_sz); 892 _(AUDIO_GETFD, WRITE, sizeof(int)); 893 _(AUDIO_SETFD, READWRITE, sizeof(int)); 894 _(AUDIO_PERROR, WRITE, sizeof(int)); 895 _(AUDIO_GETIOFFS, WRITE, struct_audio_offset_sz); 896 _(AUDIO_GETOOFFS, WRITE, struct_audio_offset_sz); 897 _(AUDIO_GETPROPS, WRITE, sizeof(int)); 898 _(AUDIO_GETBUFINFO, WRITE, struct_audio_info_sz); 899 _(AUDIO_SETCHAN, READ, sizeof(int)); 900 _(AUDIO_GETCHAN, WRITE, sizeof(int)); 901 _(AUDIO_QUERYFORMAT, READWRITE, struct_audio_format_query_sz); 902 _(AUDIO_GETFORMAT, WRITE, struct_audio_info_sz); 903 _(AUDIO_SETFORMAT, READ, struct_audio_info_sz); 904 _(AUDIO_MIXER_READ, READWRITE, struct_mixer_ctrl_sz); 905 _(AUDIO_MIXER_WRITE, READWRITE, struct_mixer_ctrl_sz); 906 _(AUDIO_MIXER_DEVINFO, READWRITE, struct_mixer_devinfo_sz); 907 /* Entries from file: sys/ataio.h */ 908 _(ATAIOCCOMMAND, READWRITE, struct_atareq_sz); 909 _(ATABUSIOSCAN, READ, struct_atabusioscan_args_sz); 910 _(ATABUSIORESET, NONE, 0); 911 _(ATABUSIODETACH, READ, struct_atabusiodetach_args_sz); 912 /* Entries from file: sys/cdio.h */ 913 _(CDIOCPLAYTRACKS, READ, struct_ioc_play_track_sz); 914 _(CDIOCPLAYBLOCKS, READ, struct_ioc_play_blocks_sz); 915 _(CDIOCREADSUBCHANNEL, READWRITE, struct_ioc_read_subchannel_sz); 916 _(CDIOREADTOCHEADER, WRITE, struct_ioc_toc_header_sz); 917 _(CDIOREADTOCENTRIES, READWRITE, struct_ioc_read_toc_entry_sz); 918 _(CDIOREADMSADDR, READWRITE, sizeof(int)); 919 _(CDIOCSETPATCH, READ, struct_ioc_patch_sz); 920 _(CDIOCGETVOL, WRITE, struct_ioc_vol_sz); 921 _(CDIOCSETVOL, READ, struct_ioc_vol_sz); 922 _(CDIOCSETMONO, NONE, 0); 923 _(CDIOCSETSTEREO, NONE, 0); 924 _(CDIOCSETMUTE, NONE, 0); 925 _(CDIOCSETLEFT, NONE, 0); 926 _(CDIOCSETRIGHT, NONE, 0); 927 _(CDIOCSETDEBUG, NONE, 0); 928 _(CDIOCCLRDEBUG, NONE, 0); 929 _(CDIOCPAUSE, NONE, 0); 930 _(CDIOCRESUME, NONE, 0); 931 _(CDIOCRESET, NONE, 0); 932 _(CDIOCSTART, NONE, 0); 933 _(CDIOCSTOP, NONE, 0); 934 _(CDIOCEJECT, NONE, 0); 935 _(CDIOCALLOW, NONE, 0); 936 _(CDIOCPREVENT, NONE, 0); 937 _(CDIOCCLOSE, NONE, 0); 938 _(CDIOCPLAYMSF, READ, struct_ioc_play_msf_sz); 939 _(CDIOCLOADUNLOAD, READ, struct_ioc_load_unload_sz); 940 /* Entries from file: sys/chio.h */ 941 _(CHIOMOVE, READ, struct_changer_move_request_sz); 942 _(CHIOEXCHANGE, READ, struct_changer_exchange_request_sz); 943 _(CHIOPOSITION, READ, struct_changer_position_request_sz); 944 _(CHIOSPICKER, READ, sizeof(int)); 945 _(CHIOGPARAMS, WRITE, struct_changer_params_sz); 946 _(CHIOIELEM, NONE, 0); 947 _(OCHIOGSTATUS, READ, struct_ochanger_element_status_request_sz); 948 _(CHIOGSTATUS, READ, struct_changer_element_status_request_sz); 949 _(CHIOSVOLTAG, READ, struct_changer_set_voltag_request_sz); 950 /* Entries from file: sys/clockctl.h */ 951 _(CLOCKCTL_SETTIMEOFDAY, READ, struct_clockctl_settimeofday_sz); 952 _(CLOCKCTL_ADJTIME, READWRITE, struct_clockctl_adjtime_sz); 953 _(CLOCKCTL_CLOCK_SETTIME, READ, struct_clockctl_clock_settime_sz); 954 _(CLOCKCTL_NTP_ADJTIME, READWRITE, struct_clockctl_ntp_adjtime_sz); 955 /* Entries from file: sys/cpuio.h */ 956 _(IOC_CPU_SETSTATE, READ, struct_cpustate_sz); 957 _(IOC_CPU_GETSTATE, READWRITE, struct_cpustate_sz); 958 _(IOC_CPU_GETCOUNT, WRITE, sizeof(int)); 959 _(IOC_CPU_MAPID, READWRITE, sizeof(int)); 960 _(IOC_CPU_UCODE_GET_VERSION, READWRITE, struct_cpu_ucode_version_sz); 961 _(IOC_CPU_UCODE_APPLY, READ, struct_cpu_ucode_sz); 962 /* Entries from file: sys/dkio.h */ 963 _(DIOCGDINFO, WRITE, struct_disklabel_sz); 964 _(DIOCSDINFO, READ, struct_disklabel_sz); 965 _(DIOCWDINFO, READ, 0); 966 _(DIOCRFORMAT, READWRITE, struct_format_op_sz); 967 _(DIOCWFORMAT, READWRITE, struct_format_op_sz); 968 _(DIOCSSTEP, READ, sizeof(int)); 969 _(DIOCSRETRIES, READ, sizeof(int)); 970 _(DIOCKLABEL, READ, sizeof(int)); 971 _(DIOCWLABEL, READ, sizeof(int)); 972 _(DIOCSBAD, READ, struct_dkbad_sz); 973 _(DIOCEJECT, READ, sizeof(int)); 974 _(ODIOCEJECT, NONE, 0); 975 _(DIOCLOCK, READ, sizeof(int)); 976 _(DIOCGDEFLABEL, WRITE, struct_disklabel_sz); 977 _(DIOCCLRLABEL, NONE, 0); 978 _(DIOCGCACHE, WRITE, sizeof(int)); 979 _(DIOCSCACHE, READ, sizeof(int)); 980 _(DIOCCACHESYNC, READ, sizeof(int)); 981 _(DIOCBSLIST, READWRITE, struct_disk_badsecinfo_sz); 982 _(DIOCBSFLUSH, NONE, 0); 983 _(DIOCAWEDGE, READWRITE, struct_dkwedge_info_sz); 984 _(DIOCGWEDGEINFO, WRITE, struct_dkwedge_info_sz); 985 _(DIOCDWEDGE, READ, struct_dkwedge_info_sz); 986 _(DIOCLWEDGES, READWRITE, struct_dkwedge_list_sz); 987 _(DIOCGSTRATEGY, WRITE, struct_disk_strategy_sz); 988 _(DIOCSSTRATEGY, READ, struct_disk_strategy_sz); 989 _(DIOCGDISKINFO, WRITE, struct_plistref_sz); 990 _(DIOCTUR, WRITE, sizeof(int)); 991 _(DIOCMWEDGES, WRITE, sizeof(int)); 992 _(DIOCGSECTORSIZE, WRITE, sizeof(unsigned int)); 993 _(DIOCGMEDIASIZE, WRITE, sizeof(uptr)); 994 _(DIOCRMWEDGES, WRITE, sizeof(int)); 995 /* Entries from file: sys/drvctlio.h */ 996 _(DRVDETACHDEV, READ, struct_devdetachargs_sz); 997 _(DRVRESCANBUS, READ, struct_devrescanargs_sz); 998 _(DRVCTLCOMMAND, READWRITE, struct_plistref_sz); 999 _(DRVRESUMEDEV, READ, struct_devpmargs_sz); 1000 _(DRVLISTDEV, READWRITE, struct_devlistargs_sz); 1001 _(DRVGETEVENT, WRITE, struct_plistref_sz); 1002 _(DRVSUSPENDDEV, READ, struct_devpmargs_sz); 1003 /* Entries from file: sys/dvdio.h */ 1004 _(DVD_READ_STRUCT, READWRITE, union_dvd_struct_sz); 1005 _(DVD_WRITE_STRUCT, READWRITE, union_dvd_struct_sz); 1006 _(DVD_AUTH, READWRITE, union_dvd_authinfo_sz); 1007 /* Entries from file: sys/envsys.h */ 1008 _(ENVSYS_GETDICTIONARY, READWRITE, struct_plistref_sz); 1009 _(ENVSYS_SETDICTIONARY, READWRITE, struct_plistref_sz); 1010 _(ENVSYS_REMOVEPROPS, READWRITE, struct_plistref_sz); 1011 _(ENVSYS_GTREDATA, READWRITE, struct_envsys_tre_data_sz); 1012 _(ENVSYS_GTREINFO, READWRITE, struct_envsys_basic_info_sz); 1013 /* Entries from file: sys/event.h */ 1014 _(KFILTER_BYFILTER, READWRITE, struct_kfilter_mapping_sz); 1015 _(KFILTER_BYNAME, READWRITE, struct_kfilter_mapping_sz); 1016 /* Entries from file: sys/fdio.h */ 1017 _(FDIOCGETOPTS, WRITE, 0); 1018 _(FDIOCSETOPTS, READ, sizeof(int)); 1019 _(FDIOCSETFORMAT, READ, struct_fdformat_parms_sz); 1020 _(FDIOCGETFORMAT, WRITE, struct_fdformat_parms_sz); 1021 _(FDIOCFORMAT_TRACK, READ, struct_fdformat_cmd_sz); 1022 /* Entries from file: sys/filio.h */ 1023 _(FIOCLEX, NONE, 0); 1024 _(FIONCLEX, NONE, 0); 1025 _(FIOSEEKDATA, READWRITE, sizeof(uptr)); 1026 _(FIOSEEKHOLE, READWRITE, sizeof(uptr)); 1027 _(FIONREAD, WRITE, sizeof(int)); 1028 _(FIONBIO, READ, sizeof(int)); 1029 _(FIOASYNC, READ, sizeof(int)); 1030 _(FIOSETOWN, READ, sizeof(int)); 1031 _(FIOGETOWN, WRITE, sizeof(int)); 1032 _(OFIOGETBMAP, READWRITE, sizeof(u32)); 1033 _(FIOGETBMAP, READWRITE, sizeof(u64)); 1034 _(FIONWRITE, WRITE, sizeof(int)); 1035 _(FIONSPACE, WRITE, sizeof(int)); 1036 /* Entries from file: sys/gpio.h */ 1037 _(GPIOINFO, WRITE, struct_gpio_info_sz); 1038 _(GPIOSET, READWRITE, struct_gpio_set_sz); 1039 _(GPIOUNSET, READWRITE, struct_gpio_set_sz); 1040 _(GPIOREAD, READWRITE, struct_gpio_req_sz); 1041 _(GPIOWRITE, READWRITE, struct_gpio_req_sz); 1042 _(GPIOTOGGLE, READWRITE, struct_gpio_req_sz); 1043 _(GPIOATTACH, READWRITE, struct_gpio_attach_sz); 1044 /* Entries from file: sys/ioctl.h */ 1045 _(PTIOCNETBSD, READ, struct_ioctl_pt_sz); 1046 _(PTIOCSUNOS, READ, struct_ioctl_pt_sz); 1047 _(PTIOCLINUX, READ, struct_ioctl_pt_sz); 1048 _(PTIOCFREEBSD, READ, struct_ioctl_pt_sz); 1049 _(PTIOCULTRIX, READ, struct_ioctl_pt_sz); 1050 /* Entries from file: sys/ioctl_compat.h */ 1051 _(TIOCHPCL, NONE, 0); 1052 _(TIOCGETP, WRITE, struct_sgttyb_sz); 1053 _(TIOCSETP, READ, struct_sgttyb_sz); 1054 _(TIOCSETN, READ, 0); 1055 _(TIOCSETC, READ, struct_tchars_sz); 1056 _(TIOCGETC, WRITE, struct_tchars_sz); 1057 _(TIOCLBIS, READ, sizeof(int)); 1058 _(TIOCLBIC, READ, sizeof(int)); 1059 _(TIOCLSET, READ, sizeof(int)); 1060 _(TIOCLGET, WRITE, sizeof(int)); 1061 _(TIOCSLTC, READ, struct_ltchars_sz); 1062 _(TIOCGLTC, WRITE, struct_ltchars_sz); 1063 _(OTIOCCONS, NONE, 0); 1064 /* Entries from file: sys/joystick.h */ 1065 _(JOY_SETTIMEOUT, READ, sizeof(int)); 1066 _(JOY_GETTIMEOUT, WRITE, sizeof(int)); 1067 _(JOY_SET_X_OFFSET, READ, sizeof(int)); 1068 _(JOY_SET_Y_OFFSET, READ, sizeof(int)); 1069 _(JOY_GET_Y_OFFSET, WRITE, sizeof(int)); 1070 /* Entries from file: sys/ksyms.h */ 1071 _(OKIOCGSYMBOL, READ, struct_ksyms_ogsymbol_sz); 1072 _(OKIOCGVALUE, READ, struct_ksyms_ogsymbol_sz); 1073 _(KIOCGSIZE, WRITE, sizeof(int)); 1074 _(KIOCGVALUE, READWRITE, struct_ksyms_gvalue_sz); 1075 _(KIOCGSYMBOL, READWRITE, struct_ksyms_gsymbol_sz); 1076 /* Entries from file: sys/lua.h */ 1077 _(LUAINFO, READWRITE, struct_lua_info_sz); 1078 _(LUACREATE, READWRITE, struct_lua_create_sz); 1079 _(LUADESTROY, READWRITE, struct_lua_create_sz); 1080 _(LUAREQUIRE, READWRITE, struct_lua_require_sz); 1081 _(LUALOAD, READWRITE, struct_lua_load_sz); 1082 /* Entries from file: sys/midiio.h */ 1083 _(MIDI_PRETIME, READWRITE, sizeof(int)); 1084 _(MIDI_MPUMODE, READWRITE, sizeof(int)); 1085 _(MIDI_MPUCMD, READWRITE, struct_mpu_command_rec_sz); 1086 _(SEQUENCER_RESET, NONE, 0); 1087 _(SEQUENCER_SYNC, NONE, 0); 1088 _(SEQUENCER_INFO, READWRITE, struct_synth_info_sz); 1089 _(SEQUENCER_CTRLRATE, READWRITE, sizeof(int)); 1090 _(SEQUENCER_GETOUTCOUNT, WRITE, sizeof(int)); 1091 _(SEQUENCER_GETINCOUNT, WRITE, sizeof(int)); 1092 _(SEQUENCER_RESETSAMPLES, READ, sizeof(int)); 1093 _(SEQUENCER_NRSYNTHS, WRITE, sizeof(int)); 1094 _(SEQUENCER_NRMIDIS, WRITE, sizeof(int)); 1095 _(SEQUENCER_THRESHOLD, READ, sizeof(int)); 1096 _(SEQUENCER_MEMAVL, READWRITE, sizeof(int)); 1097 _(SEQUENCER_PANIC, NONE, 0); 1098 _(SEQUENCER_OUTOFBAND, READ, struct_seq_event_rec_sz); 1099 _(SEQUENCER_GETTIME, WRITE, sizeof(int)); 1100 _(SEQUENCER_TMR_TIMEBASE, READWRITE, sizeof(int)); 1101 _(SEQUENCER_TMR_START, NONE, 0); 1102 _(SEQUENCER_TMR_STOP, NONE, 0); 1103 _(SEQUENCER_TMR_CONTINUE, NONE, 0); 1104 _(SEQUENCER_TMR_TEMPO, READWRITE, sizeof(int)); 1105 _(SEQUENCER_TMR_SOURCE, READWRITE, sizeof(int)); 1106 _(SEQUENCER_TMR_METRONOME, READ, sizeof(int)); 1107 _(SEQUENCER_TMR_SELECT, READ, sizeof(int)); 1108 /* Entries from file: sys/mtio.h */ 1109 _(MTIOCTOP, READ, struct_mtop_sz); 1110 _(MTIOCGET, WRITE, struct_mtget_sz); 1111 _(MTIOCIEOT, NONE, 0); 1112 _(MTIOCEEOT, NONE, 0); 1113 _(MTIOCRDSPOS, WRITE, sizeof(u32)); 1114 _(MTIOCRDHPOS, WRITE, sizeof(u32)); 1115 _(MTIOCSLOCATE, READ, sizeof(u32)); 1116 _(MTIOCHLOCATE, READ, sizeof(u32)); 1117 /* Entries from file: sys/power.h */ 1118 _(POWER_EVENT_RECVDICT, READWRITE, struct_plistref_sz); 1119 _(POWER_IOC_GET_TYPE, WRITE, struct_power_type_sz); 1120 /* Entries from file: sys/radioio.h */ 1121 _(RIOCGINFO, WRITE, struct_radio_info_sz); 1122 _(RIOCSINFO, READWRITE, struct_radio_info_sz); 1123 _(RIOCSSRCH, READ, sizeof(int)); 1124 /* Entries from file: sys/rndio.h */ 1125 _(RNDGETENTCNT, WRITE, sizeof(u32)); 1126 _(RNDGETSRCNUM, READWRITE, struct_rndstat_sz); 1127 _(RNDGETSRCNAME, READWRITE, struct_rndstat_name_sz); 1128 _(RNDCTL, READ, struct_rndctl_sz); 1129 _(RNDADDDATA, READ, struct_rnddata_sz); 1130 _(RNDGETPOOLSTAT, WRITE, struct_rndpoolstat_sz); 1131 _(RNDGETESTNUM, READWRITE, struct_rndstat_est_sz); 1132 _(RNDGETESTNAME, READWRITE, struct_rndstat_est_name_sz); 1133 /* Entries from file: sys/scanio.h */ 1134 _(SCIOCGET, WRITE, struct_scan_io_sz); 1135 _(SCIOCSET, READ, struct_scan_io_sz); 1136 _(SCIOCRESTART, NONE, 0); 1137 /* Entries from file: sys/scsiio.h */ 1138 _(SCIOCCOMMAND, READWRITE, struct_scsireq_sz); 1139 _(SCIOCDEBUG, READ, sizeof(int)); 1140 _(SCIOCIDENTIFY, WRITE, struct_scsi_addr_sz); 1141 _(OSCIOCIDENTIFY, WRITE, struct_oscsi_addr_sz); 1142 _(SCIOCDECONFIG, NONE, 0); 1143 _(SCIOCRECONFIG, NONE, 0); 1144 _(SCIOCRESET, NONE, 0); 1145 _(SCBUSIOSCAN, READ, struct_scbusioscan_args_sz); 1146 _(SCBUSIORESET, NONE, 0); 1147 _(SCBUSIODETACH, READ, struct_scbusiodetach_args_sz); 1148 _(SCBUSACCEL, READ, struct_scbusaccel_args_sz); 1149 /* Entries from file: sys/sockio.h */ 1150 _(SIOCSHIWAT, READ, sizeof(int)); 1151 _(SIOCGHIWAT, WRITE, sizeof(int)); 1152 _(SIOCSLOWAT, READ, sizeof(int)); 1153 _(SIOCGLOWAT, WRITE, sizeof(int)); 1154 _(SIOCATMARK, WRITE, sizeof(int)); 1155 _(SIOCSPGRP, READ, sizeof(int)); 1156 _(SIOCGPGRP, WRITE, sizeof(int)); 1157 _(SIOCPEELOFF, READWRITE, sizeof(int)); 1158 _(SIOCADDRT, READ, struct_ortentry_sz); 1159 _(SIOCDELRT, READ, struct_ortentry_sz); 1160 _(SIOCSIFADDR, READ, struct_ifreq_sz); 1161 _(SIOCGIFADDR, READWRITE, struct_ifreq_sz); 1162 _(SIOCSIFDSTADDR, READ, struct_ifreq_sz); 1163 _(SIOCGIFDSTADDR, READWRITE, struct_ifreq_sz); 1164 _(SIOCSIFFLAGS, READ, struct_ifreq_sz); 1165 _(SIOCGIFFLAGS, READWRITE, struct_ifreq_sz); 1166 _(SIOCGIFBRDADDR, READWRITE, struct_ifreq_sz); 1167 _(SIOCSIFBRDADDR, READ, struct_ifreq_sz); 1168 _(SIOCGIFCONF, READWRITE, struct_ifconf_sz); 1169 _(SIOCGIFNETMASK, READWRITE, struct_ifreq_sz); 1170 _(SIOCSIFNETMASK, READ, struct_ifreq_sz); 1171 _(SIOCGIFMETRIC, READWRITE, struct_ifreq_sz); 1172 _(SIOCSIFMETRIC, READ, struct_ifreq_sz); 1173 _(SIOCDIFADDR, READ, struct_ifreq_sz); 1174 _(SIOCAIFADDR, READ, struct_ifaliasreq_sz); 1175 _(SIOCGIFALIAS, READWRITE, struct_ifaliasreq_sz); 1176 _(SIOCGIFAFLAG_IN, READWRITE, struct_ifreq_sz); 1177 _(SIOCALIFADDR, READ, struct_if_laddrreq_sz); 1178 _(SIOCGLIFADDR, READWRITE, struct_if_laddrreq_sz); 1179 _(SIOCDLIFADDR, READ, struct_if_laddrreq_sz); 1180 _(SIOCSIFADDRPREF, READ, struct_if_addrprefreq_sz); 1181 _(SIOCGIFADDRPREF, READWRITE, struct_if_addrprefreq_sz); 1182 _(SIOCADDMULTI, READ, struct_ifreq_sz); 1183 _(SIOCDELMULTI, READ, struct_ifreq_sz); 1184 _(SIOCGETVIFCNT, READWRITE, struct_sioc_vif_req_sz); 1185 _(SIOCGETSGCNT, READWRITE, struct_sioc_sg_req_sz); 1186 _(SIOCSIFMEDIA, READWRITE, struct_ifreq_sz); 1187 _(SIOCGIFMEDIA, READWRITE, struct_ifmediareq_sz); 1188 _(SIOCSIFGENERIC, READ, struct_ifreq_sz); 1189 _(SIOCGIFGENERIC, READWRITE, struct_ifreq_sz); 1190 _(SIOCSIFPHYADDR, READ, struct_ifaliasreq_sz); 1191 _(SIOCGIFPSRCADDR, READWRITE, struct_ifreq_sz); 1192 _(SIOCGIFPDSTADDR, READWRITE, struct_ifreq_sz); 1193 _(SIOCDIFPHYADDR, READ, struct_ifreq_sz); 1194 _(SIOCSLIFPHYADDR, READ, struct_if_laddrreq_sz); 1195 _(SIOCGLIFPHYADDR, READWRITE, struct_if_laddrreq_sz); 1196 _(SIOCSIFMTU, READ, struct_ifreq_sz); 1197 _(SIOCGIFMTU, READWRITE, struct_ifreq_sz); 1198 _(SIOCSDRVSPEC, READ, struct_ifdrv_sz); 1199 _(SIOCGDRVSPEC, READWRITE, struct_ifdrv_sz); 1200 _(SIOCIFCREATE, READ, struct_ifreq_sz); 1201 _(SIOCIFDESTROY, READ, struct_ifreq_sz); 1202 _(SIOCIFGCLONERS, READWRITE, struct_if_clonereq_sz); 1203 _(SIOCGIFDLT, READWRITE, struct_ifreq_sz); 1204 _(SIOCGIFCAP, READWRITE, struct_ifcapreq_sz); 1205 _(SIOCSIFCAP, READ, struct_ifcapreq_sz); 1206 _(SIOCSVH, READWRITE, struct_ifreq_sz); 1207 _(SIOCGVH, READWRITE, struct_ifreq_sz); 1208 _(SIOCINITIFADDR, READWRITE, struct_ifaddr_sz); 1209 _(SIOCGIFDATA, READWRITE, struct_ifdatareq_sz); 1210 _(SIOCZIFDATA, READWRITE, struct_ifdatareq_sz); 1211 _(SIOCGLINKSTR, READWRITE, struct_ifdrv_sz); 1212 _(SIOCSLINKSTR, READ, struct_ifdrv_sz); 1213 _(SIOCGETHERCAP, READWRITE, struct_eccapreq_sz); 1214 _(SIOCGIFINDEX, READWRITE, struct_ifreq_sz); 1215 _(SIOCSETHERCAP, READ, struct_eccapreq_sz); 1216 _(SIOCSIFDESCR, READ, struct_ifreq_sz); 1217 _(SIOCGIFDESCR, READWRITE, struct_ifreq_sz); 1218 _(SIOCGUMBINFO, READWRITE, struct_ifreq_sz); 1219 _(SIOCSUMBPARAM, READ, struct_ifreq_sz); 1220 _(SIOCGUMBPARAM, READWRITE, struct_ifreq_sz); 1221 _(SIOCSETPFSYNC, READ, struct_ifreq_sz); 1222 _(SIOCGETPFSYNC, READWRITE, struct_ifreq_sz); 1223 /* Entries from file: sys/timepps.h */ 1224 _(PPS_IOC_CREATE, NONE, 0); 1225 _(PPS_IOC_DESTROY, NONE, 0); 1226 _(PPS_IOC_SETPARAMS, READ, struct_pps_params_sz); 1227 _(PPS_IOC_GETPARAMS, WRITE, struct_pps_params_sz); 1228 _(PPS_IOC_GETCAP, WRITE, sizeof(int)); 1229 _(PPS_IOC_FETCH, READWRITE, struct_pps_info_sz); 1230 _(PPS_IOC_KCBIND, READ, sizeof(int)); 1231 /* Entries from file: sys/ttycom.h */ 1232 _(TIOCEXCL, NONE, 0); 1233 _(TIOCNXCL, NONE, 0); 1234 _(TIOCFLUSH, READ, sizeof(int)); 1235 _(TIOCGETA, WRITE, struct_termios_sz); 1236 _(TIOCSETA, READ, struct_termios_sz); 1237 _(TIOCSETAW, READ, 0); 1238 _(TIOCSETAF, READ, 0); 1239 _(TIOCGETD, WRITE, sizeof(int)); 1240 _(TIOCSETD, READ, sizeof(int)); 1241 _(TIOCGLINED, WRITE, (32 * sizeof(char))); 1242 _(TIOCSLINED, READ, (32 * sizeof(char))); 1243 _(TIOCSBRK, NONE, 0); 1244 _(TIOCCBRK, NONE, 0); 1245 _(TIOCSDTR, NONE, 0); 1246 _(TIOCCDTR, NONE, 0); 1247 _(TIOCGPGRP, WRITE, sizeof(int)); 1248 _(TIOCSPGRP, READ, sizeof(int)); 1249 _(TIOCOUTQ, WRITE, sizeof(int)); 1250 _(TIOCSTI, READ, sizeof(char)); 1251 _(TIOCNOTTY, NONE, 0); 1252 _(TIOCPKT, READ, sizeof(int)); 1253 _(TIOCSTOP, NONE, 0); 1254 _(TIOCSTART, NONE, 0); 1255 _(TIOCMSET, READ, sizeof(int)); 1256 _(TIOCMBIS, READ, sizeof(int)); 1257 _(TIOCMBIC, READ, sizeof(int)); 1258 _(TIOCMGET, WRITE, sizeof(int)); 1259 _(TIOCREMOTE, READ, sizeof(int)); 1260 _(TIOCGWINSZ, WRITE, struct_winsize_sz); 1261 _(TIOCSWINSZ, READ, struct_winsize_sz); 1262 _(TIOCUCNTL, READ, sizeof(int)); 1263 _(TIOCSTAT, READ, sizeof(int)); 1264 _(TIOCGSID, WRITE, sizeof(int)); 1265 _(TIOCCONS, READ, sizeof(int)); 1266 _(TIOCSCTTY, NONE, 0); 1267 _(TIOCEXT, READ, sizeof(int)); 1268 _(TIOCSIG, NONE, 0); 1269 _(TIOCDRAIN, NONE, 0); 1270 _(TIOCGFLAGS, WRITE, sizeof(int)); 1271 _(TIOCSFLAGS, READ, sizeof(int)); 1272 _(TIOCDCDTIMESTAMP, WRITE, struct_timeval_sz); 1273 _(TIOCRCVFRAME, READ, sizeof(uptr)); 1274 _(TIOCXMTFRAME, READ, sizeof(uptr)); 1275 _(TIOCPTMGET, WRITE, struct_ptmget_sz); 1276 _(TIOCGRANTPT, NONE, 0); 1277 _(TIOCPTSNAME, WRITE, struct_ptmget_sz); 1278 _(TIOCSQSIZE, READ, sizeof(int)); 1279 _(TIOCGQSIZE, WRITE, sizeof(int)); 1280 /* Entries from file: sys/verified_exec.h */ 1281 _(VERIEXEC_LOAD, READ, struct_plistref_sz); 1282 _(VERIEXEC_TABLESIZE, READ, struct_plistref_sz); 1283 _(VERIEXEC_DELETE, READ, struct_plistref_sz); 1284 _(VERIEXEC_QUERY, READWRITE, struct_plistref_sz); 1285 _(VERIEXEC_DUMP, WRITE, struct_plistref_sz); 1286 _(VERIEXEC_FLUSH, NONE, 0); 1287 /* Entries from file: sys/videoio.h */ 1288 _(VIDIOC_QUERYCAP, WRITE, struct_v4l2_capability_sz); 1289 _(VIDIOC_RESERVED, NONE, 0); 1290 _(VIDIOC_ENUM_FMT, READWRITE, struct_v4l2_fmtdesc_sz); 1291 _(VIDIOC_G_FMT, READWRITE, struct_v4l2_format_sz); 1292 _(VIDIOC_S_FMT, READWRITE, struct_v4l2_format_sz); 1293 _(VIDIOC_REQBUFS, READWRITE, struct_v4l2_requestbuffers_sz); 1294 _(VIDIOC_QUERYBUF, READWRITE, struct_v4l2_buffer_sz); 1295 _(VIDIOC_G_FBUF, WRITE, struct_v4l2_framebuffer_sz); 1296 _(VIDIOC_S_FBUF, READ, struct_v4l2_framebuffer_sz); 1297 _(VIDIOC_OVERLAY, READ, sizeof(int)); 1298 _(VIDIOC_QBUF, READWRITE, struct_v4l2_buffer_sz); 1299 _(VIDIOC_DQBUF, READWRITE, struct_v4l2_buffer_sz); 1300 _(VIDIOC_STREAMON, READ, sizeof(int)); 1301 _(VIDIOC_STREAMOFF, READ, sizeof(int)); 1302 _(VIDIOC_G_PARM, READWRITE, struct_v4l2_streamparm_sz); 1303 _(VIDIOC_S_PARM, READWRITE, struct_v4l2_streamparm_sz); 1304 _(VIDIOC_G_STD, WRITE, sizeof(u64)); 1305 _(VIDIOC_S_STD, READ, sizeof(u64)); 1306 _(VIDIOC_ENUMSTD, READWRITE, struct_v4l2_standard_sz); 1307 _(VIDIOC_ENUMINPUT, READWRITE, struct_v4l2_input_sz); 1308 _(VIDIOC_G_CTRL, READWRITE, struct_v4l2_control_sz); 1309 _(VIDIOC_S_CTRL, READWRITE, struct_v4l2_control_sz); 1310 _(VIDIOC_G_TUNER, READWRITE, struct_v4l2_tuner_sz); 1311 _(VIDIOC_S_TUNER, READ, struct_v4l2_tuner_sz); 1312 _(VIDIOC_G_AUDIO, WRITE, struct_v4l2_audio_sz); 1313 _(VIDIOC_S_AUDIO, READ, struct_v4l2_audio_sz); 1314 _(VIDIOC_QUERYCTRL, READWRITE, struct_v4l2_queryctrl_sz); 1315 _(VIDIOC_QUERYMENU, READWRITE, struct_v4l2_querymenu_sz); 1316 _(VIDIOC_G_INPUT, WRITE, sizeof(int)); 1317 _(VIDIOC_S_INPUT, READWRITE, sizeof(int)); 1318 _(VIDIOC_G_OUTPUT, WRITE, sizeof(int)); 1319 _(VIDIOC_S_OUTPUT, READWRITE, sizeof(int)); 1320 _(VIDIOC_ENUMOUTPUT, READWRITE, struct_v4l2_output_sz); 1321 _(VIDIOC_G_AUDOUT, WRITE, struct_v4l2_audioout_sz); 1322 _(VIDIOC_S_AUDOUT, READ, struct_v4l2_audioout_sz); 1323 _(VIDIOC_G_MODULATOR, READWRITE, struct_v4l2_modulator_sz); 1324 _(VIDIOC_S_MODULATOR, READ, struct_v4l2_modulator_sz); 1325 _(VIDIOC_G_FREQUENCY, READWRITE, struct_v4l2_frequency_sz); 1326 _(VIDIOC_S_FREQUENCY, READ, struct_v4l2_frequency_sz); 1327 _(VIDIOC_CROPCAP, READWRITE, struct_v4l2_cropcap_sz); 1328 _(VIDIOC_G_CROP, READWRITE, struct_v4l2_crop_sz); 1329 _(VIDIOC_S_CROP, READ, struct_v4l2_crop_sz); 1330 _(VIDIOC_G_JPEGCOMP, WRITE, struct_v4l2_jpegcompression_sz); 1331 _(VIDIOC_S_JPEGCOMP, READ, struct_v4l2_jpegcompression_sz); 1332 _(VIDIOC_QUERYSTD, WRITE, sizeof(u64)); 1333 _(VIDIOC_TRY_FMT, READWRITE, struct_v4l2_format_sz); 1334 _(VIDIOC_ENUMAUDIO, READWRITE, struct_v4l2_audio_sz); 1335 _(VIDIOC_ENUMAUDOUT, READWRITE, struct_v4l2_audioout_sz); 1336 _(VIDIOC_G_PRIORITY, WRITE, enum_v4l2_priority_sz); 1337 _(VIDIOC_S_PRIORITY, READ, enum_v4l2_priority_sz); 1338 _(VIDIOC_ENUM_FRAMESIZES, READWRITE, struct_v4l2_frmsizeenum_sz); 1339 _(VIDIOC_ENUM_FRAMEINTERVALS, READWRITE, struct_v4l2_frmivalenum_sz); 1340 /* Entries from file: sys/wdog.h */ 1341 _(WDOGIOC_GMODE, READWRITE, struct_wdog_mode_sz); 1342 _(WDOGIOC_SMODE, READ, struct_wdog_mode_sz); 1343 _(WDOGIOC_WHICH, WRITE, struct_wdog_mode_sz); 1344 _(WDOGIOC_TICKLE, NONE, 0); 1345 _(WDOGIOC_GTICKLER, WRITE, sizeof(int)); 1346 _(WDOGIOC_GWDOGS, READWRITE, struct_wdog_conf_sz); 1347 /* Entries from file: sys/kcov.h */ 1348 _(KCOV_IOC_SETBUFSIZE, READ, sizeof(u64)); 1349 _(KCOV_IOC_ENABLE, READ, sizeof(int)); 1350 _(KCOV_IOC_DISABLE, NONE, 0); 1351 /* Entries from file: sys/ipmi.h */ 1352 _(IPMICTL_RECEIVE_MSG_TRUNC, READWRITE, struct_ipmi_recv_sz); 1353 _(IPMICTL_RECEIVE_MSG, READWRITE, struct_ipmi_recv_sz); 1354 _(IPMICTL_SEND_COMMAND, READ, struct_ipmi_req_sz); 1355 _(IPMICTL_REGISTER_FOR_CMD, READ, struct_ipmi_cmdspec_sz); 1356 _(IPMICTL_UNREGISTER_FOR_CMD, READ, struct_ipmi_cmdspec_sz); 1357 _(IPMICTL_SET_GETS_EVENTS_CMD, READ, sizeof(int)); 1358 _(IPMICTL_SET_MY_ADDRESS_CMD, READ, sizeof(unsigned int)); 1359 _(IPMICTL_GET_MY_ADDRESS_CMD, WRITE, sizeof(unsigned int)); 1360 _(IPMICTL_SET_MY_LUN_CMD, READ, sizeof(unsigned int)); 1361 _(IPMICTL_GET_MY_LUN_CMD, WRITE, sizeof(unsigned int)); 1362 /* Entries from file: soundcard.h */ 1363 _(SNDCTL_DSP_RESET, NONE, 0); 1364 _(SNDCTL_DSP_SYNC, NONE, 0); 1365 _(SNDCTL_DSP_SPEED, READWRITE, sizeof(int)); 1366 _(SOUND_PCM_READ_RATE, WRITE, sizeof(int)); 1367 _(SNDCTL_DSP_STEREO, READWRITE, sizeof(int)); 1368 _(SNDCTL_DSP_GETBLKSIZE, READWRITE, sizeof(int)); 1369 _(SNDCTL_DSP_SETFMT, READWRITE, sizeof(int)); 1370 _(SOUND_PCM_READ_BITS, WRITE, sizeof(int)); 1371 _(SNDCTL_DSP_CHANNELS, READWRITE, sizeof(int)); 1372 _(SOUND_PCM_READ_CHANNELS, WRITE, sizeof(int)); 1373 _(SOUND_PCM_WRITE_FILTER, READWRITE, sizeof(int)); 1374 _(SOUND_PCM_READ_FILTER, WRITE, sizeof(int)); 1375 _(SNDCTL_DSP_POST, NONE, 0); 1376 _(SNDCTL_DSP_SUBDIVIDE, READWRITE, sizeof(int)); 1377 _(SNDCTL_DSP_SETFRAGMENT, READWRITE, sizeof(int)); 1378 _(SNDCTL_DSP_GETFMTS, WRITE, sizeof(int)); 1379 _(SNDCTL_DSP_GETOSPACE, WRITE, struct_audio_buf_info_sz); 1380 _(SNDCTL_DSP_GETISPACE, WRITE, struct_audio_buf_info_sz); 1381 _(SNDCTL_DSP_NONBLOCK, NONE, 0); 1382 _(SNDCTL_DSP_GETCAPS, WRITE, sizeof(int)); 1383 _(SNDCTL_DSP_GETTRIGGER, WRITE, sizeof(int)); 1384 _(SNDCTL_DSP_SETTRIGGER, READ, sizeof(int)); 1385 _(SNDCTL_DSP_GETIPTR, WRITE, struct_count_info_sz); 1386 _(SNDCTL_DSP_GETOPTR, WRITE, struct_count_info_sz); 1387 _(SNDCTL_DSP_MAPINBUF, WRITE, struct_buffmem_desc_sz); 1388 _(SNDCTL_DSP_MAPOUTBUF, WRITE, struct_buffmem_desc_sz); 1389 _(SNDCTL_DSP_SETSYNCRO, NONE, 0); 1390 _(SNDCTL_DSP_SETDUPLEX, NONE, 0); 1391 _(SNDCTL_DSP_PROFILE, READ, sizeof(int)); 1392 _(SNDCTL_DSP_GETODELAY, WRITE, sizeof(int)); 1393 _(SOUND_MIXER_INFO, WRITE, struct_mixer_info_sz); 1394 _(SOUND_OLD_MIXER_INFO, WRITE, struct__old_mixer_info_sz); 1395 _(OSS_GETVERSION, WRITE, sizeof(int)); 1396 _(SNDCTL_SYSINFO, WRITE, struct_oss_sysinfo_sz); 1397 _(SNDCTL_AUDIOINFO, READWRITE, struct_oss_audioinfo_sz); 1398 _(SNDCTL_ENGINEINFO, READWRITE, struct_oss_audioinfo_sz); 1399 _(SNDCTL_DSP_GETPLAYVOL, WRITE, sizeof(unsigned int)); 1400 _(SNDCTL_DSP_SETPLAYVOL, READ, sizeof(unsigned int)); 1401 _(SNDCTL_DSP_GETRECVOL, WRITE, sizeof(unsigned int)); 1402 _(SNDCTL_DSP_SETRECVOL, READ, sizeof(unsigned int)); 1403 _(SNDCTL_DSP_SKIP, NONE, 0); 1404 _(SNDCTL_DSP_SILENCE, NONE, 0); 1405 /* Entries from file: dev/filemon/filemon.h (compat <= 9.99.26) */ 1406 _(FILEMON_SET_FD, READWRITE, sizeof(int)); 1407 _(FILEMON_SET_PID, READWRITE, sizeof(int)); 1408#undef _ 1409} // NOLINT 1410 1411static bool ioctl_initialized = false; 1412 1413struct ioctl_desc_compare { 1414 bool operator()(const ioctl_desc &left, const ioctl_desc &right) const { 1415 return left.req < right.req; 1416 } 1417}; 1418 1419static void ioctl_init() { 1420 ioctl_table_fill(); 1421 Sort(ioctl_table, ioctl_table_size, ioctl_desc_compare()); 1422 1423 bool bad = false; 1424 for (unsigned i = 0; i < ioctl_table_size - 1; ++i) { 1425 if (ioctl_table[i].req >= ioctl_table[i + 1].req) { 1426 Printf("Duplicate or unsorted ioctl request id %x >= %x (%s vs %s)\n", 1427 ioctl_table[i].req, ioctl_table[i + 1].req, ioctl_table[i].name, 1428 ioctl_table[i + 1].name); 1429 bad = true; 1430 } 1431 } 1432 1433 if (bad) 1434 Die(); 1435 1436 ioctl_initialized = true; 1437} 1438 1439static const ioctl_desc *ioctl_table_lookup(unsigned req) { 1440 int left = 0; 1441 int right = ioctl_table_size; 1442 while (left < right) { 1443 int mid = (left + right) / 2; 1444 if (ioctl_table[mid].req < req) 1445 left = mid + 1; 1446 else 1447 right = mid; 1448 } 1449 if (left == right && ioctl_table[left].req == req) 1450 return ioctl_table + left; 1451 else 1452 return nullptr; 1453} 1454 1455static bool ioctl_decode(unsigned req, ioctl_desc *desc) { 1456 CHECK(desc); 1457 desc->req = req; 1458 desc->name = "<DECODED_IOCTL>"; 1459 desc->size = IOC_SIZE(req); 1460 // Sanity check. 1461 if (desc->size > 0xFFFF) 1462 return false; 1463 unsigned dir = IOC_DIR(req); 1464 switch (dir) { 1465 case IOC_NONE: 1466 desc->type = ioctl_desc::NONE; 1467 break; 1468 case IOC_READ | IOC_WRITE: 1469 desc->type = ioctl_desc::READWRITE; 1470 break; 1471 case IOC_READ: 1472 desc->type = ioctl_desc::WRITE; 1473 break; 1474 case IOC_WRITE: 1475 desc->type = ioctl_desc::READ; 1476 break; 1477 default: 1478 return false; 1479 } 1480 // Size can be 0 iff type is NONE. 1481 if ((desc->type == IOC_NONE) != (desc->size == 0)) 1482 return false; 1483 // Sanity check. 1484 if (IOC_TYPE(req) == 0) 1485 return false; 1486 return true; 1487} 1488 1489static const ioctl_desc *ioctl_lookup(unsigned req) { 1490 const ioctl_desc *desc = ioctl_table_lookup(req); 1491 if (desc) 1492 return desc; 1493 1494 // Try stripping access size from the request id. 1495 desc = ioctl_table_lookup(req & ~(IOC_SIZEMASK << IOC_SIZESHIFT)); 1496 // Sanity check: requests that encode access size are either read or write and 1497 // have size of 0 in the table. 1498 if (desc && desc->size == 0 && 1499 (desc->type == ioctl_desc::READWRITE || desc->type == ioctl_desc::WRITE || 1500 desc->type == ioctl_desc::READ)) 1501 return desc; 1502 return nullptr; 1503} 1504 1505static void ioctl_common_pre(void *ctx, const ioctl_desc *desc, int d, 1506 unsigned request, void *arg) { 1507 if (desc->type == ioctl_desc::READ || desc->type == ioctl_desc::READWRITE) { 1508 unsigned size = desc->size ? desc->size : IOC_SIZE(request); 1509 COMMON_INTERCEPTOR_READ_RANGE(ctx, arg, size); 1510 } 1511 if (desc->type != ioctl_desc::CUSTOM) 1512 return; 1513 if (request == IOCTL_SIOCGIFCONF) { 1514 struct __sanitizer_ifconf *ifc = (__sanitizer_ifconf *)arg; 1515 COMMON_INTERCEPTOR_READ_RANGE(ctx, (char *)&ifc->ifc_len, 1516 sizeof(ifc->ifc_len)); 1517 } 1518} 1519 1520static void ioctl_common_post(void *ctx, const ioctl_desc *desc, int res, int d, 1521 unsigned request, void *arg) { 1522 if (desc->type == ioctl_desc::WRITE || desc->type == ioctl_desc::READWRITE) { 1523 // FIXME: add verbose output 1524 unsigned size = desc->size ? desc->size : IOC_SIZE(request); 1525 COMMON_INTERCEPTOR_WRITE_RANGE(ctx, arg, size); 1526 } 1527 if (desc->type != ioctl_desc::CUSTOM) 1528 return; 1529 if (request == IOCTL_SIOCGIFCONF) { 1530 struct __sanitizer_ifconf *ifc = (__sanitizer_ifconf *)arg; 1531 COMMON_INTERCEPTOR_WRITE_RANGE(ctx, ifc->ifc_ifcu.ifcu_req, ifc->ifc_len); 1532 } 1533} 1534 1535#endif // SANITIZER_NETBSD 1536