summaryrefslogtreecommitdiff
path: root/src/sys/ioctl/etc
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/ioctl/etc')
-rw-r--r--src/sys/ioctl/etc/find_ioctls.py33
-rw-r--r--src/sys/ioctl/etc/process_ioctls.py236
-rw-r--r--src/sys/ioctl/etc/x86_64/ignore_list113
-rw-r--r--src/sys/ioctl/etc/x86_64/ioctl_list1014
-rw-r--r--src/sys/ioctl/etc/x86_64/manually_found5
5 files changed, 1401 insertions, 0 deletions
diff --git a/src/sys/ioctl/etc/find_ioctls.py b/src/sys/ioctl/etc/find_ioctls.py
new file mode 100644
index 00000000..25dc5634
--- /dev/null
+++ b/src/sys/ioctl/etc/find_ioctls.py
@@ -0,0 +1,33 @@
+# PYTHONPATH=/home/cmr/llvm/tools/clang/bindings/python LD_LIBRARY_PATH=/usr/lib ./find_ioctls.py
+
+import os
+import clang.cindex as c
+
+header_paths = ["/usr/include"]
+
+idx = c.Index.create()
+args = ['-E', '-x', 'c', '-I/usr/lib/clang/3.6.0/include/']
+options = c.TranslationUnit.PARSE_DETAILED_PROCESSING_RECORD | c.TranslationUnit.PARSE_SKIP_FUNCTION_BODIES | c.TranslationUnit.PARSE_INCOMPLETE
+
+ioctls = []
+
+for p in header_paths:
+ for (dirp, dirn, fnames) in os.walk(p):
+ for f in fnames:
+ if f.endswith('.h'): # try to avoid C++ headers.
+ tu = idx.parse(os.path.join(dirp, f), args=args,
+ options=options)
+ failed = False
+ for diag in tu.diagnostics:
+ if diag.severity > c.Diagnostic.Warning:
+ failed = True
+ break
+ if failed:
+ continue
+ for cx in tu.cursor.walk_preorder():
+ if cx.kind == c.CursorKind.MACRO_DEFINITION:
+ if "IOC" in cx.spelling and cx.spelling.isupper():
+ ioctls.append(list(tok.spelling for tok in cx.get_tokens()))
+
+for ioctl in ioctls:
+ print(ioctl)
diff --git a/src/sys/ioctl/etc/process_ioctls.py b/src/sys/ioctl/etc/process_ioctls.py
new file mode 100644
index 00000000..815dae36
--- /dev/null
+++ b/src/sys/ioctl/etc/process_ioctls.py
@@ -0,0 +1,236 @@
+import sys
+import os
+import operator
+
+if len(sys.argv) != 2:
+ sys.stderr.write("Wrong number of argmuments. Wanted one, the name of the\
+ arch to use, got %s" % sys.argv)
+
+arch = sys.argv[1]
+
+f = open(os.path.join(arch, 'ioctl_list')) # found by find_ioctls.py
+m = open(os.path.join(arch, 'manually_found')) # found by the Mach V Eyeball
+i = open(os.path.join(arch, 'ignore_list')) # removed from the output of find_ioctls.py
+
+print("// Initially generated by process_ioctls.py")
+
+consts = {
+ "mips": { "NONE": 1, "READ": 2, "WRITE": 4, "SIZEBITS": 13, "DIRBITS": 3},
+ "powerpc": { "NONE": 1, "READ": 2, "WRITE": 4, "SIZEBITS": 13, "DIRBITS": 3},
+ "x86": { "NONE": 0, "READ": 2, "WRITE": 1, "SIZEBITS": 14, "DIRBITS": 2},
+ "x86_64": { "NONE": 0, "READ": 2, "WRITE": 1, "SIZEBITS": 14, "DIRBITS": 2},
+ "arm": { "NONE": 0, "READ": 2, "WRITE": 1, "SIZEBITS": 14, "DIRBITS": 2},
+ "aarch64": { "NONE": 0, "READ": 2, "WRITE": 1, "SIZEBITS": 14, "DIRBITS": 2},
+}
+
+ioc_consts = {
+ "SIOCPROTOPRIVATE": 0x89E0,
+ "SIOCDEVPRIVATE": 0x89F0,
+ "PCIIOC_BASE": (ord('P') << 24 | ord('C') << 16 | ord('I') << 8),
+ "FIONREAD": 0x541B,
+ "CZIOC": ord('M') << 8,
+ "TIOCOUTQ": 0x5411,
+ "TIOCM_CAR": 0x040,
+ "TIOCM_RNG": 0x080,
+}
+
+NONE = consts[arch]["NONE"]
+READ = consts[arch]["READ"]
+WRITE = consts[arch]["WRITE"]
+SIZEBITS = consts[arch]["SIZEBITS"]
+DIRBITS = consts[arch]["DIRBITS"]
+NRBITS = 8
+TYPEBITS = 8
+NRSHIFT = 0
+TYPESHIFT = NRSHIFT + NRBITS
+SIZESHIFT = TYPESHIFT + SIZEBITS
+DIRSHIFT = SIZESHIFT + DIRBITS
+NRMASK = (1 << NRBITS) - 1
+TYPEMASK = (1 << TYPEBITS) - 1
+SIZEMASK = (1 << SIZEBITS) - 1
+DIRMASK = (1 << DIRBITS) - 1
+
+def decode(val):
+ return (((val >> DIRSHIFT) & DIRMASK), ((val >> TYPESHIFT) & TYPEMASK),
+ ((val >> NRSHIFT) & NRMASK), ((val >> SIZESHIFT) & SIZEMASK))
+
+ioctls = [] # ones we want to actually process
+
+for ioctl in f:
+ ioctls.append(eval(ioctl))
+for ioctl in m:
+ ioctls.append(eval(ioctl))
+
+mp = { "_IO": "none", "_IOR": "read", "_IOW": "write", "_IOWR": "readwrite",
+ "DRM_IO": "none", "DRM_IOR": "read", "DRM_IOW": "write", "DRM_IOWR": "readwrite"}
+
+tys = {
+ "__uint8_t": "u8",
+ "__uint16": "u16",
+ "__uint32_t": "u32",
+ "__uint64_t": "u64",
+ "__int8_t": "i8",
+ "__int16": "i16",
+ "__int32_t": "i32",
+ "__int64_t": "i64",
+ "uint8_t": "u8",
+ "uint16": "u16",
+ "uint32_t": "u32",
+ "uint64_t": "u64",
+ "int8_t": "i8",
+ "int16": "i16",
+ "int32_t": "i32",
+ "int64_t": "i64",
+ "__u8": "u8",
+ "__u16": "u16",
+ "__u32": "u32",
+ "__u64": "u64",
+ "__s8": "i8",
+ "__s16": "i16",
+ "__s32": "i32",
+ "__s64": "i64",
+ "int": "::libc::c_int",
+ "long": "::libc::c_long",
+ "char": "::libc::c_char",
+ "size_t": "::libc::size_t",
+}
+
+utys = {
+ "int": "::libc::c_uint",
+ "long": "::libc::c_ulong",
+ "char": "::libc::c_uchar",
+}
+
+known_structs = ["input_id", "ff_effect", "ff_trigger", "ff_replay"]
+
+manually_bound = ["EVIOCGNAME", "EVIOCGPHYS", "EVIOCGUNIQ", "EVIOCGPROP",
+"EVIOCGMTSLOTS", "EVIOCGKEY", "EVIOCGLED", "EVIOCGSND", "EVIOCGSW",
+"EVIOCGBIT", "EVIOCGABS", "EVIOCSABS", "EVIOCGRAB", "EVIOCREVOKE",
+"EVIOCSCLOCKID"]
+
+bad_recovery = {}
+
+def translate(ty):
+ if len(ty) == 1:
+ return tys.get(ty[0], "FIXME1<%s>" % ty)
+ elif ty[-1] == '*':
+ return "*mut " + translate(ty[:-1])
+ elif len(ty) == 2:
+ if ty[0] == "struct":
+ return "/*struct*/ %s" % ty[1]
+ elif ty[0] == "unsigned":
+ return utys[ty[1]]
+ else:
+ return "FIXME2<%s>" % ty
+ elif ty[-1] == ']':
+ count = ty[-2]
+ return "[%s; %s]" % (translate(ty[:-3]), count)
+ else:
+ return "FIXME3<%s>" % ty
+
+def translate_type_code(ty):
+ if ty[0] == "'":
+ return "b" + ty
+ else:
+ return ty
+
+def bad(name, val):
+ if name in bad_recovery:
+ process(bad_recovery[name])
+ else:
+ pval = None
+ try:
+ pval = int(val, 0)
+ except:
+ pass
+ if pval is None:
+ print("ioctl!(bad %s with %s);" % (name.lower(), val))
+ else:
+ (dr, ty, nr, sz) = decode(pval)
+ if dr == NONE:
+ print("ioctl!(none %s with %s, %s);" % (name.lower(), ty, nr))
+ elif dr == READ:
+ print("ioctl!(read %s with %s, %s; [u8; %s]);" %
+ (name.lower(), ty, nr, sz));
+ elif dr == WRITE:
+ print("ioctl!(write %s with %s, %s; [u8; %s]);" %
+ (name.lower(), ty, nr, sz));
+ elif dr == READ|WRITE:
+ print("ioctl!(readwrite %s with %s, %s; [u8; %s]);" %
+ (name.lower(), ty, nr, sz));
+ else:
+ raise "This really shouldn't happen"
+
+def bad2(name, val1, val2, op):
+ if val1 in ioc_consts:
+ val1 = ioc_consts[val1]
+ else:
+ val1 = int(val1, 0)
+
+ if val2 in ioc_consts:
+ val2 = ioc_consts[val2]
+ else:
+ val2 = int(val2, 0)
+
+ bad(name, str(op(val1, val2)))
+
+def process(ioctl):
+ name = ioctl[0]
+ rhs = ioctl[1:-1] # remove '#' or trailing comment
+ cmd = rhs[0]
+ body = rhs[2:-1]
+
+ if name in manually_bound:
+ return
+ elif cmd == "_IO":
+ print("ioctl!(none %s with %s, %s);" % (name.lower(), translate_type_code(body[0]),
+ body[2]))
+ elif cmd == '_IOR' or cmd == '_IOW' or cmd == '_IOWR':
+ if body[3] == ',':
+ # this looks like _IOR(X, B, type...)
+ first = body[0]
+ second = body[2]
+ ty = body[4:]
+ ty = translate(ty)
+ if "FIXME" in ty or "/*struct*/" in ty and not ty[11:] in known_structs:
+ print("// ioctl!(%s %s with %s, %s; %s);" % (mp[cmd], name.lower(),
+ translate_type_code(first), second, ty))
+ else:
+ print("ioctl!(%s %s with %s, %s; %s);" % (mp[cmd], name.lower(),
+ translate_type_code(first), second, ty))
+ elif body[3] == '+':
+ first = body[0]
+ second = " ".join(body[2:5])
+ ty = body[6:]
+ ty = translate(ty)
+ if "FIXME" in ty or "/*struct*/" in ty and not ty[11:] in known_structs:
+ print("// ioctl!(%s %s with %s, %s; %s);" % (mp[cmd], name.lower(),
+ translate_type_code(first), second, ty))
+ else:
+ print("ioctl!(%s %s with %s, %s; %s);" % (mp[cmd], name.lower(),
+ translate_type_code(first), second, ty))
+ # We probably have _IOR(X, B + C, type...)
+ else:
+ raise "This really shouldn't happen"
+ elif cmd == "DRM_IO" or cmd == "DRM_IOR" or cmd == "DRM_IOW" or cmd == "DRM_IOWR":
+ # rewrite into "canonical" version.
+ process([name, cmd[3:], "(", "DRM_IOCTL_BASE", ","] + rhs[2:] + ["#"])
+ elif len(rhs) == 1: # single constant :(
+ bad(name.lower(), ioc_consts.get(rhs[0], rhs[0]))
+ elif len(rhs) == 3 and rhs[0] == "(": # single constant in parens
+ bad(name.lower(), ioc_consts.get(rhs[1], rhs[1]))
+ elif rhs[2] == "+": # we have the sum of two constants
+ try:
+ bad2(name.lower(), rhs[1], rhs[3], operator.add)
+ except:
+ bad(name.lower(), " ".join(rhs[1:-1]))
+ elif rhs[2] == "|": # we have an or of two constants (eugh)
+ try:
+ bad2(name.lower(), rhs[1], rhs[3], operator.or_)
+ except:
+ bad(name.lower(), " ".join(rhs[1:-1]))
+ else:
+ print("// TODO #define %s %s" % (name, " ".join(rhs)))
+
+for ioctl in ioctls:
+ process(ioctl)
diff --git a/src/sys/ioctl/etc/x86_64/ignore_list b/src/sys/ioctl/etc/x86_64/ignore_list
new file mode 100644
index 00000000..cb6d6a24
--- /dev/null
+++ b/src/sys/ioctl/etc/x86_64/ignore_list
@@ -0,0 +1,113 @@
+['ATMIOC_AREQUIPA', '0xc0', '/* Application requested IP over ATM, glob. u. */']
+['ATMIOC_BACKEND', '0x90', '/* ATM generic backend ioctls, u. per backend */']
+['ATMIOC_BACKEND_END', '0xaf', '/* 0xb0-0xbf: Reserved for future use */']
+['ATMIOC_CLIP', '0xe0', '/* Classical IP over ATM control, globally u. */']
+['ATMIOC_CLIP_END', '0xef', '#']
+['ATMIOC_ITF', '0x80', '/* Interface ioctls, globally unique */']
+['ATMIOC_ITF_END', '0x8f', '#']
+['ATMIOC_LANE', '0xd0', '/* LAN Emulation, globally unique */']
+['ATMIOC_MPOA', '0xd8', '/* MPOA, globally unique */']
+['ATMIOC_PHYCOM', '0x00', '/* PHY device common ioctls, globally unique */']
+['ATMIOC_PHYCOM_END', '0x0f', '#']
+['ATMIOC_PHYPRV', '0x30', '/* PHY dev private ioctls, unique per driver */']
+['ATMIOC_PHYPRV_END', '0x4f', '#']
+['ATMIOC_PHYTYP', '0x10', '/* PHY dev type ioctls, unique per PHY type */']
+['ATMIOC_PHYTYP_END', '0x2f', '#']
+['ATMIOC_SARCOM', '0x50', '/* SAR device common ioctls, globally unique */']
+['ATMIOC_SARCOM_END', '0x50', '#']
+['ATMIOC_SARPRV', '0x60', '/* SAR dev private ioctls, unique per driver */']
+['ATMIOC_SARPRV_END', '0x7f', '#']
+['ATMIOC_SPECIAL', '0xf0', '/* Special-purpose controls, globally unique */']
+['ATMIOC_SPECIAL_END', '0xff', '#']
+['BASE_VIDIOC_PRIVATE', '192', '/* 192-255 are private */']
+['BTRFS_IOCTL_DEV_REPLACE_CMD_CANCEL', '2', '#']
+['BTRFS_IOCTL_DEV_REPLACE_CMD_START', '0', '#']
+['BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS', '1', '#']
+['BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_ALWAYS', '0', '#']
+['BTRFS_IOCTL_DEV_REPLACE_CONT_READING_FROM_SRCDEV_MODE_AVOID', '1', 'struct']
+['BTRFS_IOCTL_DEV_REPLACE_RESULT_ALREADY_STARTED', '2', 'struct']
+['BTRFS_IOCTL_DEV_REPLACE_RESULT_NOT_STARTED', '1', '#']
+['BTRFS_IOCTL_DEV_REPLACE_RESULT_NO_ERROR', '0', '#']
+['BTRFS_IOCTL_DEV_REPLACE_STATE_CANCELED', '3', '#']
+['BTRFS_IOCTL_DEV_REPLACE_STATE_FINISHED', '2', '#']
+['BTRFS_IOCTL_DEV_REPLACE_STATE_NEVER_STARTED', '0', '#']
+['BTRFS_IOCTL_DEV_REPLACE_STATE_STARTED', '1', '#']
+['BTRFS_IOCTL_DEV_REPLACE_STATE_SUSPENDED', '4', 'struct']
+['BTRFS_IOCTL_MAGIC', '0x94', '#']
+['CCISS_IOC_MAGIC', "'B'", 'typedef']
+['CM_IOC_MAGIC', "'c'", '#']
+['CM_IOC_MAXNR', '255', '#']
+['COOKED_IOCTL', '1', '#']
+['CUSE_UNRESTRICTED_IOCTL', '(', '1', '<<', '0', ')', '/**\n * Release flags\n */']
+['C_CM_IOCTL', '0x02', '/* re-read CH_CTRL */']
+['C_CM_IOCTLM', '0x04', '/* RS-232 outputs change */']
+['C_CM_IOCTLW', '0x03', '/* re-read CH_CTRL, intr when done */']
+['C_IN_IOCTLW', '0x00020000', '/* I/O control w/ wait */']
+['DECNET_IOCTL_BASE', '0x89', '/* PROTOPRIVATE range */']
+['DM_IOCTL', '0xfd', '#']
+['DRM_IOCTL_BASE', "'d'", '#']
+['DTV_IOCTL_MAX_MSGS', '64', 'struct']
+['FSL_HV_IOCTL_TYPE', '0xAF', '/* Restart another partition */']
+['FUSE_IOCTL_MAX_IOV', '256', '/**\n * Poll flags\n *\n * FUSE_POLL_SCHEDULE_NOTIFY: request poll notify\n */']
+['GIGASET_IOCTL', '0x47', '/* enable/disable device control via character device (lock out ISDN subsys) */']
+['GNUTLS_E_CRYPTODEV_IOCTL_ERROR', '-', '211', '#']
+['IB_IOCTL_MAGIC', '0x1b', '#']
+['IOCB_FLAG_RESFD', '(', '1', '<<', '0', ')', '/* read() from /dev/aio returns these structures. */']
+['MGSL_MAGIC_IOC', "'m'", '#']
+['MMC_IOC_MAX_BYTES', '(', '512L', '*', '256', ')', '#']
+['MMTIMER_IOCTL_BASE', "'m'", '#']
+['MTRR_IOCTL_BASE', "'M'", '/* Warning: this structure has a different order from i386\n on x86-64. The 32bit emulation code takes care of that.\n But you need to use this for 64bit, otherwise your X server\n will break. */']
+['PH_IOC_MAGIC', "'p'", '#']
+['PP_IOCTL', "'p'", '/* Set mode for read/write (e.g. IEEE1284_MODE_EPP) */']
+['RFKILL_IOC_MAGIC', "'R'", '#']
+['RFKILL_IOC_NOINPUT', '1', '#']
+['UBI_CTRL_IOC_MAGIC', "'o'", '/* Attach an MTD device */']
+['UINPUT_IOCTL_BASE', "'U'", '#']
+['USBTMC_IOC_NR', '91', '#']
+['USB_SUBCLASS_AUDIOCONTROL', '0x01', '#']
+['VIOCD_MAJOR', '113', '#']
+['WATCHDOG_IOCTL_BASE', "'W'", 'struct']
+['_ASM_GENERIC_IOCTL_H', "/* ioctl command encoding: 32 bits total, command in lower 16 bits,\n * size of the parameter structure in the lower 14 bits of the\n * upper 16 bits.\n * Encoding the size of the parameter structure in the ioctl request\n * is useful for catching programs compiled with old versions\n * and to avoid overwriting user space outside the user buffer area.\n * The highest 2 bits are reserved for indicating the ``access mode''.\n * NOTE: This limits the max parameter size to 16kB -1 !\n */"]
+['_EVENT_HAVE_SYS_IOCTL_H', '1', '/* Define to 1 if you have the <sys/mman.h> header file. */']
+['_IOC', '(', 'dir', ',', 'type', ',', 'nr', ',', 'size', ')', '(', '(', '(', 'dir', ')', '<<', '_IOC_DIRSHIFT', ')', '|', '(', '(', 'type', ')', '<<', '_IOC_TYPESHIFT', ')', '|', '(', '(', 'nr', ')', '<<', '_IOC_NRSHIFT', ')', '|', '(', '(', 'size', ')', '<<', '_IOC_SIZESHIFT', ')', ')', '#']
+['_IOC_DIR', '(', 'nr', ')', '(', '(', '(', 'nr', ')', '>>', '_IOC_DIRSHIFT', ')', '&', '_IOC_DIRMASK', ')', '#']
+['_IOC_DIRBITS', '2', '#']
+['_IOC_DIRMASK', '(', '(', '1', '<<', '_IOC_DIRBITS', ')', '-', '1', ')', '#']
+['_IOC_DIRSHIFT', '(', '_IOC_SIZESHIFT', '+', '_IOC_SIZEBITS', ')', '/*\n * Direction bits, which any architecture can choose to override\n * before including this file.\n */']
+['_IOC_NONE', '0U', '#']
+['_IOC_NR', '(', 'nr', ')', '(', '(', '(', 'nr', ')', '>>', '_IOC_NRSHIFT', ')', '&', '_IOC_NRMASK', ')', '#']
+['_IOC_NRBITS', '8', '#']
+['_IOC_NRMASK', '(', '(', '1', '<<', '_IOC_NRBITS', ')', '-', '1', ')', '#']
+['_IOC_NRSHIFT', '0', '#']
+['_IOC_READ', '2U', '#']
+['_IOC_SIZE', '(', 'nr', ')', '(', '(', '(', 'nr', ')', '>>', '_IOC_SIZESHIFT', ')', '&', '_IOC_SIZEMASK', ')', '/* ...and for the drivers/sound files... */']
+['_IOC_SIZEBITS', '14', '#']
+['_IOC_SIZEMASK', '(', '(', '1', '<<', '_IOC_SIZEBITS', ')', '-', '1', ')', '#']
+['_IOC_SIZESHIFT', '(', '_IOC_TYPESHIFT', '+', '_IOC_TYPEBITS', ')', '#']
+['_IOC_TYPE', '(', 'nr', ')', '(', '(', '(', 'nr', ')', '>>', '_IOC_TYPESHIFT', ')', '&', '_IOC_TYPEMASK', ')', '#']
+['_IOC_TYPEBITS', '8', '/*\n * Let any architecture override either of the following before\n * including this file.\n */']
+['_IOC_TYPECHECK', '(', 't', ')', '(', 'sizeof', '(', 't', ')', ')', '/* used to create numbers */']
+['_IOC_TYPEMASK', '(', '(', '1', '<<', '_IOC_TYPEBITS', ')', '-', '1', ')', '#']
+['_IOC_TYPESHIFT', '(', '_IOC_NRSHIFT', '+', '_IOC_NRBITS', ')', '#']
+['_IOC_WRITE', '1U', '#']
+['_SIOC_DIR', '_IOC_DIR', '#']
+['_SIOC_NONE', '_IOC_NONE', '#']
+['_SIOC_READ', '_IOC_READ', '#']
+['_SIOC_SIZE', '_IOC_SIZE', '#']
+['_SIOC_WRITE', '_IOC_WRITE', '#']
+['UBI_IOC_MAGIC', "'o'", '/* Create an UBI volume */']
+['UBI_VOL_IOC_MAGIC', "'O'", "/* Start UBI volume update\n * Note: This actually takes a pointer (__s64*), but we can't change\n * that without breaking the ABI on 32bit systems\n */"]
+['IPMI_IOC_MAGIC', "'i'", '/* Messages sent to the interface are this format. */']
+['PACKET_IOCTL_MAGIC', '(', "'X'", ')', '#']
+['PCIIOC_BASE', '(', "'P'", '<<', '24', '|', "'C'", '<<', '16', '|', "'I'", '<<', '8', ')', '#']
+['SNAPSHOT_IOC_MAGIC', "'3'", '#']
+['SNAPSHOT_IOC_MAXNR', '20', '#']
+['SIOC_IN', 'IOC_IN', '#']
+['SIOC_INOUT', 'IOC_INOUT', '#']
+['SIOC_OUT', 'IOC_OUT', '#']
+['SIOC_VOID', 'IOC_VOID', '#']
+['SPI_IOC_MAGIC', "'k'", "/**\n * struct spi_ioc_transfer - describes a single SPI transfer\n * @tx_buf: Holds pointer to userspace buffer with transmit data, or null.\n *\tIf no data is provided, zeroes are shifted out.\n * @rx_buf: Holds pointer to userspace buffer for receive data, or null.\n * @len: Length of tx and rx buffers, in bytes.\n * @speed_hz: Temporary override of the device's bitrate.\n * @bits_per_word: Temporary override of the device's wordsize.\n * @delay_usecs: If nonzero, how long to delay after the last bit transfer\n *\tbefore optionally deselecting the device before the next transfer.\n * @cs_change: True to deselect device before starting the next transfer.\n *\n * This structure is mapped directly to the kernel spi_transfer structure;\n * the fields have the same meanings, except of course that the pointers\n * are in a different address space (and may be of different sizes in some\n * cases, such as 32-bit i386 userspace over a 64-bit x86_64 kernel).\n * Zero-initialize the structure, including currently unused fields, to\n * accommodate potential future updates.\n *\n * SPI_IOC_MESSAGE gives userspace the equivalent of kernel spi_sync().\n * Pass it an array of related transfers, they'll execute together.\n * Each transfer may be half duplex (either direction) or full duplex.\n *\n *\tstruct spi_ioc_transfer mesg[4];\n *\t...\n *\tstatus = ioctl(fd, SPI_IOC_MESSAGE(4), mesg);\n *\n * So for example one transfer might send a nine bit command (right aligned\n * in a 16-bit word), the next could read a block of 8-bit data before\n * terminating that command by temporarily deselecting the chip; the next\n * could send a different nine bit command (re-selecting the chip), and the\n * last transfer might write some register values.\n */"]
+['CZIOC', '(', "'M'", '<<', '8', ')', '#']
+['IOC_IN', '(', '_IOC_WRITE', '<<', '_IOC_DIRSHIFT', ')', '#']
+['IOC_INOUT', '(', '(', '_IOC_WRITE', '|', '_IOC_READ', ')', '<<', '_IOC_DIRSHIFT', ')', '#']
+['IOC_OUT', '(', '_IOC_READ', '<<', '_IOC_DIRSHIFT', ')', '#']
diff --git a/src/sys/ioctl/etc/x86_64/ioctl_list b/src/sys/ioctl/etc/x86_64/ioctl_list
new file mode 100644
index 00000000..9ce954b1
--- /dev/null
+++ b/src/sys/ioctl/etc/x86_64/ioctl_list
@@ -0,0 +1,1014 @@
+['APM_IOC_STANDBY', '_IO', '(', "'A'", ',', '1', ')', '#']
+['APM_IOC_SUSPEND', '_IO', '(', "'A'", ',', '2', ')', '#']
+['BTRFS_IOC_ADD_DEV', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '10', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_BALANCE', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '12', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_BALANCE_CTL', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '33', ',', 'int', ')', '#']
+['BTRFS_IOC_BALANCE_PROGRESS', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '34', ',', 'struct', 'btrfs_ioctl_balance_args', ')', '#']
+['BTRFS_IOC_BALANCE_V2', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '32', ',', 'struct', 'btrfs_ioctl_balance_args', ')', '#']
+['BTRFS_IOC_CLONE', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '9', ',', 'int', ')', '#']
+['BTRFS_IOC_CLONE_RANGE', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '13', ',', 'struct', 'btrfs_ioctl_clone_range_args', ')', '#']
+['BTRFS_IOC_DEFAULT_SUBVOL', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '19', ',', '__u64', ')', '#']
+['BTRFS_IOC_DEFRAG', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '2', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_DEFRAG_RANGE', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '16', ',', 'struct', 'btrfs_ioctl_defrag_range_args', ')', '#']
+['BTRFS_IOC_DEVICES_READY', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '39', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_DEV_INFO', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '30', ',', 'struct', 'btrfs_ioctl_dev_info_args', ')', '#']
+['BTRFS_IOC_DEV_REPLACE', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '53', ',', 'struct', 'btrfs_ioctl_dev_replace_args', ')', '#']
+['BTRFS_IOC_FILE_EXTENT_SAME', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '54', ',', 'struct', 'btrfs_ioctl_same_args', ')', '#']
+['BTRFS_IOC_FS_INFO', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '31', ',', 'struct', 'btrfs_ioctl_fs_info_args', ')', '#']
+['BTRFS_IOC_GET_DEV_STATS', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '52', ',', 'struct', 'btrfs_ioctl_get_dev_stats', ')', '#']
+['BTRFS_IOC_GET_FEATURES', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '57', ',', 'struct', 'btrfs_ioctl_feature_flags', ')', '#']
+['BTRFS_IOC_GET_FSLABEL', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '49', ',', 'char', '[', 'BTRFS_LABEL_SIZE', ']', ')', '#']
+['BTRFS_IOC_GET_SUPPORTED_FEATURES', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '57', ',', 'struct', 'btrfs_ioctl_feature_flags', '[', '3', ']', ')', '#']
+['BTRFS_IOC_INO_LOOKUP', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '18', ',', 'struct', 'btrfs_ioctl_ino_lookup_args', ')', '#']
+['BTRFS_IOC_INO_PATHS', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '35', ',', 'struct', 'btrfs_ioctl_ino_path_args', ')', '#']
+['BTRFS_IOC_LOGICAL_INO', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '36', ',', 'struct', 'btrfs_ioctl_ino_path_args', ')', '#']
+['BTRFS_IOC_QGROUP_ASSIGN', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '41', ',', 'struct', 'btrfs_ioctl_qgroup_assign_args', ')', '#']
+['BTRFS_IOC_QGROUP_CREATE', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '42', ',', 'struct', 'btrfs_ioctl_qgroup_create_args', ')', '#']
+['BTRFS_IOC_QGROUP_LIMIT', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '43', ',', 'struct', 'btrfs_ioctl_qgroup_limit_args', ')', '#']
+['BTRFS_IOC_QUOTA_CTL', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '40', ',', 'struct', 'btrfs_ioctl_quota_ctl_args', ')', '#']
+['BTRFS_IOC_QUOTA_RESCAN', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '44', ',', 'struct', 'btrfs_ioctl_quota_rescan_args', ')', '#']
+['BTRFS_IOC_QUOTA_RESCAN_STATUS', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '45', ',', 'struct', 'btrfs_ioctl_quota_rescan_args', ')', '#']
+['BTRFS_IOC_QUOTA_RESCAN_WAIT', '_IO', '(', 'BTRFS_IOCTL_MAGIC', ',', '46', ')', '#']
+['BTRFS_IOC_RESIZE', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '3', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_RM_DEV', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '11', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_SCAN_DEV', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '4', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '/* trans start and trans end are dangerous, and only for\n * use by applications that know how to avoid the\n * resulting deadlocks\n */']
+['BTRFS_IOC_SCRUB', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '27', ',', 'struct', 'btrfs_ioctl_scrub_args', ')', '#']
+['BTRFS_IOC_SCRUB_CANCEL', '_IO', '(', 'BTRFS_IOCTL_MAGIC', ',', '28', ')', '#']
+['BTRFS_IOC_SCRUB_PROGRESS', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '29', ',', 'struct', 'btrfs_ioctl_scrub_args', ')', '#']
+['BTRFS_IOC_SEND', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '38', ',', 'struct', 'btrfs_ioctl_send_args', ')', '#']
+['BTRFS_IOC_SET_FEATURES', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '57', ',', 'struct', 'btrfs_ioctl_feature_flags', '[', '2', ']', ')', '#']
+['BTRFS_IOC_SET_FSLABEL', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '50', ',', 'char', '[', 'BTRFS_LABEL_SIZE', ']', ')', '#']
+['BTRFS_IOC_SET_RECEIVED_SUBVOL', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '37', ',', 'struct', 'btrfs_ioctl_received_subvol_args', ')', '#']
+['BTRFS_IOC_SNAP_CREATE', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '1', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_SNAP_CREATE_V2', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '23', ',', 'struct', 'btrfs_ioctl_vol_args_v2', ')', '#']
+['BTRFS_IOC_SNAP_DESTROY', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '15', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_SPACE_INFO', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '20', ',', 'struct', 'btrfs_ioctl_space_args', ')', '#']
+['BTRFS_IOC_START_SYNC', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '24', ',', '__u64', ')', '#']
+['BTRFS_IOC_SUBVOL_CREATE', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '14', ',', 'struct', 'btrfs_ioctl_vol_args', ')', '#']
+['BTRFS_IOC_SUBVOL_CREATE_V2', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '24', ',', 'struct', 'btrfs_ioctl_vol_args_v2', ')', '#']
+['BTRFS_IOC_SUBVOL_GETFLAGS', '_IOR', '(', 'BTRFS_IOCTL_MAGIC', ',', '25', ',', '__u64', ')', '#']
+['BTRFS_IOC_SUBVOL_SETFLAGS', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '26', ',', '__u64', ')', '#']
+['BTRFS_IOC_SYNC', '_IO', '(', 'BTRFS_IOCTL_MAGIC', ',', '8', ')', '#']
+['BTRFS_IOC_TRANS_END', '_IO', '(', 'BTRFS_IOCTL_MAGIC', ',', '7', ')', '#']
+['BTRFS_IOC_TRANS_START', '_IO', '(', 'BTRFS_IOCTL_MAGIC', ',', '6', ')', '#']
+['BTRFS_IOC_TREE_SEARCH', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '17', ',', 'struct', 'btrfs_ioctl_search_args', ')', '#']
+['BTRFS_IOC_TREE_SEARCH_V2', '_IOWR', '(', 'BTRFS_IOCTL_MAGIC', ',', '17', ',', 'struct', 'btrfs_ioctl_search_args_v2', ')', '#']
+['BTRFS_IOC_WAIT_SYNC', '_IOW', '(', 'BTRFS_IOCTL_MAGIC', ',', '22', ',', '__u64', ')', '#']
+['CM_IOCARDOFF', '_IO', '(', 'CM_IOC_MAGIC', ',', '4', ')', '#']
+['CM_IOCGATR', '_IOWR', '(', 'CM_IOC_MAGIC', ',', '1', ',', 'atreq_t', '*', ')', '#']
+['CM_IOCGSTATUS', '_IOR', '(', 'CM_IOC_MAGIC', ',', '0', ',', 'unsigned', 'char', '*', ')', '#']
+['CM_IOCSPTS', '_IOW', '(', 'CM_IOC_MAGIC', ',', '2', ',', 'ptsreq_t', '*', ')', '#']
+['CM_IOCSRDR', '_IO', '(', 'CM_IOC_MAGIC', ',', '3', ')', '#']
+['CXL_IOCTL_GET_PROCESS_ELEMENT', '_IOR', '(', 'CXL_MAGIC', ',', '0x01', ',', '__u32', ')', '#']
+['CXL_IOCTL_START_WORK', '_IOW', '(', 'CXL_MAGIC', ',', '0x00', ',', 'struct', 'cxl_ioctl_start_work', ')', '#']
+['DRM_IOCTL_ADD_BUFS', 'DRM_IOWR', '(', '0x16', ',', 'struct', 'drm_buf_desc', ')', '#']
+['DRM_IOCTL_ADD_CTX', 'DRM_IOWR', '(', '0x20', ',', 'struct', 'drm_ctx', ')', '#']
+['DRM_IOCTL_ADD_DRAW', 'DRM_IOWR', '(', '0x27', ',', 'struct', 'drm_draw', ')', '#']
+['DRM_IOCTL_ADD_MAP', 'DRM_IOWR', '(', '0x15', ',', 'struct', 'drm_map', ')', '#']
+['DRM_IOCTL_AGP_ACQUIRE', 'DRM_IO', '(', '0x30', ')', '#']
+['DRM_IOCTL_AGP_ALLOC', 'DRM_IOWR', '(', '0x34', ',', 'struct', 'drm_agp_buffer', ')', '#']
+['DRM_IOCTL_AGP_BIND', 'DRM_IOW', '(', '0x36', ',', 'struct', 'drm_agp_binding', ')', '#']
+['DRM_IOCTL_AGP_ENABLE', 'DRM_IOW', '(', '0x32', ',', 'struct', 'drm_agp_mode', ')', '#']
+['DRM_IOCTL_AGP_FREE', 'DRM_IOW', '(', '0x35', ',', 'struct', 'drm_agp_buffer', ')', '#']
+['DRM_IOCTL_AGP_INFO', 'DRM_IOR', '(', '0x33', ',', 'struct', 'drm_agp_info', ')', '#']
+['DRM_IOCTL_AGP_RELEASE', 'DRM_IO', '(', '0x31', ')', '#']
+['DRM_IOCTL_AGP_UNBIND', 'DRM_IOW', '(', '0x37', ',', 'struct', 'drm_agp_binding', ')', '#']
+['DRM_IOCTL_AUTH_MAGIC', 'DRM_IOW', '(', '0x11', ',', 'struct', 'drm_auth', ')', '#']
+['DRM_IOCTL_BLOCK', 'DRM_IOWR', '(', '0x12', ',', 'struct', 'drm_block', ')', '#']
+['DRM_IOCTL_CONTROL', 'DRM_IOW', '(', '0x14', ',', 'struct', 'drm_control', ')', '#']
+['DRM_IOCTL_DMA', 'DRM_IOWR', '(', '0x29', ',', 'struct', 'drm_dma', ')', '#']
+['DRM_IOCTL_DROP_MASTER', 'DRM_IO', '(', '0x1f', ')', '#']
+['DRM_IOCTL_FINISH', 'DRM_IOW', '(', '0x2c', ',', 'struct', 'drm_lock', ')', '#']
+['DRM_IOCTL_FREE_BUFS', 'DRM_IOW', '(', '0x1a', ',', 'struct', 'drm_buf_free', ')', '#']
+['DRM_IOCTL_GEM_CLOSE', 'DRM_IOW', '(', '0x09', ',', 'struct', 'drm_gem_close', ')', '#']
+['DRM_IOCTL_GEM_FLINK', 'DRM_IOWR', '(', '0x0a', ',', 'struct', 'drm_gem_flink', ')', '#']
+['DRM_IOCTL_GEM_OPEN', 'DRM_IOWR', '(', '0x0b', ',', 'struct', 'drm_gem_open', ')', '#']
+['DRM_IOCTL_GET_CAP', 'DRM_IOWR', '(', '0x0c', ',', 'struct', 'drm_get_cap', ')', '#']
+['DRM_IOCTL_GET_CLIENT', 'DRM_IOWR', '(', '0x05', ',', 'struct', 'drm_client', ')', '#']
+['DRM_IOCTL_GET_CTX', 'DRM_IOWR', '(', '0x23', ',', 'struct', 'drm_ctx', ')', '#']
+['DRM_IOCTL_GET_MAGIC', 'DRM_IOR', '(', '0x02', ',', 'struct', 'drm_auth', ')', '#']
+['DRM_IOCTL_GET_MAP', 'DRM_IOWR', '(', '0x04', ',', 'struct', 'drm_map', ')', '#']
+['DRM_IOCTL_GET_SAREA_CTX', 'DRM_IOWR', '(', '0x1d', ',', 'struct', 'drm_ctx_priv_map', ')', '#']
+['DRM_IOCTL_GET_STATS', 'DRM_IOR', '(', '0x06', ',', 'struct', 'drm_stats', ')', '#']
+['DRM_IOCTL_GET_UNIQUE', 'DRM_IOWR', '(', '0x01', ',', 'struct', 'drm_unique', ')', '#']
+['DRM_IOCTL_INFO_BUFS', 'DRM_IOWR', '(', '0x18', ',', 'struct', 'drm_buf_info', ')', '#']
+['DRM_IOCTL_IRQ_BUSID', 'DRM_IOWR', '(', '0x03', ',', 'struct', 'drm_irq_busid', ')', '#']
+['DRM_IOCTL_LOCK', 'DRM_IOW', '(', '0x2a', ',', 'struct', 'drm_lock', ')', '#']
+['DRM_IOCTL_MAP_BUFS', 'DRM_IOWR', '(', '0x19', ',', 'struct', 'drm_buf_map', ')', '#']
+['DRM_IOCTL_MARK_BUFS', 'DRM_IOW', '(', '0x17', ',', 'struct', 'drm_buf_desc', ')', '#']
+['DRM_IOCTL_MODESET_CTL', 'DRM_IOW', '(', '0x08', ',', 'struct', 'drm_modeset_ctl', ')', '#']
+['DRM_IOCTL_MODE_ADDFB', 'DRM_IOWR', '(', '0xAE', ',', 'struct', 'drm_mode_fb_cmd', ')', '#']
+['DRM_IOCTL_MODE_ADDFB2', 'DRM_IOWR', '(', '0xB8', ',', 'struct', 'drm_mode_fb_cmd2', ')', '#']
+['DRM_IOCTL_MODE_ATTACHMODE', 'DRM_IOWR', '(', '0xA8', ',', 'struct', 'drm_mode_mode_cmd', ')', '#']
+['DRM_IOCTL_MODE_CREATE_DUMB', 'DRM_IOWR', '(', '0xB2', ',', 'struct', 'drm_mode_create_dumb', ')', '#']
+['DRM_IOCTL_MODE_CURSOR', 'DRM_IOWR', '(', '0xA3', ',', 'struct', 'drm_mode_cursor', ')', '#']
+['DRM_IOCTL_MODE_CURSOR2', 'DRM_IOWR', '(', '0xBB', ',', 'struct', 'drm_mode_cursor2', ')', '/**\n * Device specific ioctls should only be in their respective headers\n * The device specific ioctl range is from 0x40 to 0x99.\n * Generic IOCTLS restart at 0xA0.\n *\n * \\sa drmCommandNone(), drmCommandRead(), drmCommandWrite(), and\n * drmCommandReadWrite().\n */']
+['DRM_IOCTL_MODE_DESTROY_DUMB', 'DRM_IOWR', '(', '0xB4', ',', 'struct', 'drm_mode_destroy_dumb', ')', '#']
+['DRM_IOCTL_MODE_DETACHMODE', 'DRM_IOWR', '(', '0xA9', ',', 'struct', 'drm_mode_mode_cmd', ')', '#']
+['DRM_IOCTL_MODE_DIRTYFB', 'DRM_IOWR', '(', '0xB1', ',', 'struct', 'drm_mode_fb_dirty_cmd', ')', '#']
+['DRM_IOCTL_MODE_GETCONNECTOR', 'DRM_IOWR', '(', '0xA7', ',', 'struct', 'drm_mode_get_connector', ')', '#']
+['DRM_IOCTL_MODE_GETCRTC', 'DRM_IOWR', '(', '0xA1', ',', 'struct', 'drm_mode_crtc', ')', '#']
+['DRM_IOCTL_MODE_GETENCODER', 'DRM_IOWR', '(', '0xA6', ',', 'struct', 'drm_mode_get_encoder', ')', '#']
+['DRM_IOCTL_MODE_GETFB', 'DRM_IOWR', '(', '0xAD', ',', 'struct', 'drm_mode_fb_cmd', ')', '#']
+['DRM_IOCTL_MODE_GETGAMMA', 'DRM_IOWR', '(', '0xA4', ',', 'struct', 'drm_mode_crtc_lut', ')', '#']
+['DRM_IOCTL_MODE_GETPLANE', 'DRM_IOWR', '(', '0xB6', ',', 'struct', 'drm_mode_get_plane', ')', '#']
+['DRM_IOCTL_MODE_GETPLANERESOURCES', 'DRM_IOWR', '(', '0xB5', ',', 'struct', 'drm_mode_get_plane_res', ')', '#']
+['DRM_IOCTL_MODE_GETPROPBLOB', 'DRM_IOWR', '(', '0xAC', ',', 'struct', 'drm_mode_get_blob', ')', '#']
+['DRM_IOCTL_MODE_GETPROPERTY', 'DRM_IOWR', '(', '0xAA', ',', 'struct', 'drm_mode_get_property', ')', '#']
+['DRM_IOCTL_MODE_GETRESOURCES', 'DRM_IOWR', '(', '0xA0', ',', 'struct', 'drm_mode_card_res', ')', '#']
+['DRM_IOCTL_MODE_MAP_DUMB', 'DRM_IOWR', '(', '0xB3', ',', 'struct', 'drm_mode_map_dumb', ')', '#']
+['DRM_IOCTL_MODE_OBJ_GETPROPERTIES', 'DRM_IOWR', '(', '0xB9', ',', 'struct', 'drm_mode_obj_get_properties', ')', '#']
+['DRM_IOCTL_MODE_OBJ_SETPROPERTY', 'DRM_IOWR', '(', '0xBA', ',', 'struct', 'drm_mode_obj_set_property', ')', '#']
+['DRM_IOCTL_MODE_PAGE_FLIP', 'DRM_IOWR', '(', '0xB0', ',', 'struct', 'drm_mode_crtc_page_flip', ')', '#']
+['DRM_IOCTL_MODE_RMFB', 'DRM_IOWR', '(', '0xAF', ',', 'unsigned', 'int', ')', '#']
+['DRM_IOCTL_MODE_SETCRTC', 'DRM_IOWR', '(', '0xA2', ',', 'struct', 'drm_mode_crtc', ')', '#']
+['DRM_IOCTL_MODE_SETGAMMA', 'DRM_IOWR', '(', '0xA5', ',', 'struct', 'drm_mode_crtc_lut', ')', '#']
+['DRM_IOCTL_MODE_SETPLANE', 'DRM_IOWR', '(', '0xB7', ',', 'struct', 'drm_mode_set_plane', ')', '#']
+['DRM_IOCTL_MODE_SETPROPERTY', 'DRM_IOWR', '(', '0xAB', ',', 'struct', 'drm_mode_connector_set_property', ')', '#']
+['DRM_IOCTL_MOD_CTX', 'DRM_IOW', '(', '0x22', ',', 'struct', 'drm_ctx', ')', '#']
+['DRM_IOCTL_NEW_CTX', 'DRM_IOW', '(', '0x25', ',', 'struct', 'drm_ctx', ')', '#']
+['DRM_IOCTL_PRIME_FD_TO_HANDLE', 'DRM_IOWR', '(', '0x2e', ',', 'struct', 'drm_prime_handle', ')', '#']
+['DRM_IOCTL_PRIME_HANDLE_TO_FD', 'DRM_IOWR', '(', '0x2d', ',', 'struct', 'drm_prime_handle', ')', '#']
+['DRM_IOCTL_RADEON_ALLOC', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_ALLOC', ',', 'drm_radeon_mem_alloc_t', ')', '#']
+['DRM_IOCTL_RADEON_CLEAR', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CLEAR', ',', 'drm_radeon_clear_t', ')', '#']
+['DRM_IOCTL_RADEON_CMDBUF', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CMDBUF', ',', 'drm_radeon_cmd_buffer_t', ')', '#']
+['DRM_IOCTL_RADEON_CP_IDLE', 'DRM_IO', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CP_IDLE', ')', '#']
+['DRM_IOCTL_RADEON_CP_INIT', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CP_INIT', ',', 'drm_radeon_init_t', ')', '#']
+['DRM_IOCTL_RADEON_CP_RESET', 'DRM_IO', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CP_RESET', ')', '#']
+['DRM_IOCTL_RADEON_CP_RESUME', 'DRM_IO', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CP_RESUME', ')', '#']
+['DRM_IOCTL_RADEON_CP_START', 'DRM_IO', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CP_START', ')', '#']
+['DRM_IOCTL_RADEON_CP_STOP', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CP_STOP', ',', 'drm_radeon_cp_stop_t', ')', '#']
+['DRM_IOCTL_RADEON_CS', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_CS', ',', 'struct', 'drm_radeon_cs', ')', '#']
+['DRM_IOCTL_RADEON_FLIP', 'DRM_IO', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_FLIP', ')', '#']
+['DRM_IOCTL_RADEON_FREE', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_FREE', ',', 'drm_radeon_mem_free_t', ')', '#']
+['DRM_IOCTL_RADEON_FULLSCREEN', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_FULLSCREEN', ',', 'drm_radeon_fullscreen_t', ')', '#']
+['DRM_IOCTL_RADEON_GEM_BUSY', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_BUSY', ',', 'struct', 'drm_radeon_gem_busy', ')', '#']
+['DRM_IOCTL_RADEON_GEM_CREATE', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_CREATE', ',', 'struct', 'drm_radeon_gem_create', ')', '#']
+['DRM_IOCTL_RADEON_GEM_GET_TILING', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_GET_TILING', ',', 'struct', 'drm_radeon_gem_get_tiling', ')', '#']
+['DRM_IOCTL_RADEON_GEM_INFO', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_INFO', ',', 'struct', 'drm_radeon_gem_info', ')', '#']
+['DRM_IOCTL_RADEON_GEM_MMAP', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_MMAP', ',', 'struct', 'drm_radeon_gem_mmap', ')', '#']
+['DRM_IOCTL_RADEON_GEM_OP', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_OP', ',', 'struct', 'drm_radeon_gem_op', ')', 'typedef']
+['DRM_IOCTL_RADEON_GEM_PREAD', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_PREAD', ',', 'struct', 'drm_radeon_gem_pread', ')', '#']
+['DRM_IOCTL_RADEON_GEM_PWRITE', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_PWRITE', ',', 'struct', 'drm_radeon_gem_pwrite', ')', '#']
+['DRM_IOCTL_RADEON_GEM_SET_DOMAIN', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_SET_DOMAIN', ',', 'struct', 'drm_radeon_gem_set_domain', ')', '#']
+['DRM_IOCTL_RADEON_GEM_SET_TILING', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_SET_TILING', ',', 'struct', 'drm_radeon_gem_set_tiling', ')', '#']
+['DRM_IOCTL_RADEON_GEM_VA', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_VA', ',', 'struct', 'drm_radeon_gem_va', ')', '#']
+['DRM_IOCTL_RADEON_GEM_WAIT_IDLE', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GEM_WAIT_IDLE', ',', 'struct', 'drm_radeon_gem_wait_idle', ')', '#']
+['DRM_IOCTL_RADEON_GETPARAM', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_GETPARAM', ',', 'drm_radeon_getparam_t', ')', '#']
+['DRM_IOCTL_RADEON_INDICES', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_INDICES', ',', 'drm_radeon_indices_t', ')', '#']
+['DRM_IOCTL_RADEON_INDIRECT', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_INDIRECT', ',', 'drm_radeon_indirect_t', ')', '#']
+['DRM_IOCTL_RADEON_INFO', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_INFO', ',', 'struct', 'drm_radeon_info', ')', '#']
+['DRM_IOCTL_RADEON_INIT_HEAP', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_INIT_HEAP', ',', 'drm_radeon_mem_init_heap_t', ')', '#']
+['DRM_IOCTL_RADEON_IRQ_EMIT', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_IRQ_EMIT', ',', 'drm_radeon_irq_emit_t', ')', '#']
+['DRM_IOCTL_RADEON_IRQ_WAIT', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_IRQ_WAIT', ',', 'drm_radeon_irq_wait_t', ')', '#']
+['DRM_IOCTL_RADEON_RESET', 'DRM_IO', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_RESET', ')', '#']
+['DRM_IOCTL_RADEON_SETPARAM', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_SETPARAM', ',', 'drm_radeon_setparam_t', ')', '#']
+['DRM_IOCTL_RADEON_STIPPLE', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_STIPPLE', ',', 'drm_radeon_stipple_t', ')', '#']
+['DRM_IOCTL_RADEON_SURF_ALLOC', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_SURF_ALLOC', ',', 'drm_radeon_surface_alloc_t', ')', '#']
+['DRM_IOCTL_RADEON_SURF_FREE', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_SURF_FREE', ',', 'drm_radeon_surface_free_t', ')', '/* KMS */']
+['DRM_IOCTL_RADEON_SWAP', 'DRM_IO', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_SWAP', ')', '#']
+['DRM_IOCTL_RADEON_TEXTURE', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_TEXTURE', ',', 'drm_radeon_texture_t', ')', '#']
+['DRM_IOCTL_RADEON_VERTEX', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_VERTEX', ',', 'drm_radeon_vertex_t', ')', '#']
+['DRM_IOCTL_RADEON_VERTEX2', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_RADEON_VERTEX2', ',', 'drm_radeon_vertex2_t', ')', '#']
+['DRM_IOCTL_RES_CTX', 'DRM_IOWR', '(', '0x26', ',', 'struct', 'drm_ctx_res', ')', '#']
+['DRM_IOCTL_RM_CTX', 'DRM_IOWR', '(', '0x21', ',', 'struct', 'drm_ctx', ')', '#']
+['DRM_IOCTL_RM_DRAW', 'DRM_IOWR', '(', '0x28', ',', 'struct', 'drm_draw', ')', '#']
+['DRM_IOCTL_RM_MAP', 'DRM_IOW', '(', '0x1b', ',', 'struct', 'drm_map', ')', '#']
+['DRM_IOCTL_SET_CLIENT_CAP', 'DRM_IOW', '(', '0x0d', ',', 'struct', 'drm_set_client_cap', ')', '#']
+['DRM_IOCTL_SET_MASTER', 'DRM_IO', '(', '0x1e', ')', '#']
+['DRM_IOCTL_SET_SAREA_CTX', 'DRM_IOW', '(', '0x1c', ',', 'struct', 'drm_ctx_priv_map', ')', '#']
+['DRM_IOCTL_SET_UNIQUE', 'DRM_IOW', '(', '0x10', ',', 'struct', 'drm_unique', ')', '#']
+['DRM_IOCTL_SET_VERSION', 'DRM_IOWR', '(', '0x07', ',', 'struct', 'drm_set_version', ')', '#']
+['DRM_IOCTL_SG_ALLOC', 'DRM_IOWR', '(', '0x38', ',', 'struct', 'drm_scatter_gather', ')', '#']
+['DRM_IOCTL_SG_FREE', 'DRM_IOW', '(', '0x39', ',', 'struct', 'drm_scatter_gather', ')', '#']
+['DRM_IOCTL_SIS_AGP_ALLOC', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_SIS_AGP_ALLOC', ',', 'drm_sis_mem_t', ')', '#']
+['DRM_IOCTL_SIS_AGP_FREE', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_SIS_AGP_FREE', ',', 'drm_sis_mem_t', ')', '#']
+['DRM_IOCTL_SIS_AGP_INIT', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_SIS_AGP_INIT', ',', 'drm_sis_agp_t', ')', '#']
+['DRM_IOCTL_SIS_FB_ALLOC', 'DRM_IOWR', '(', 'DRM_COMMAND_BASE', '+', 'DRM_SIS_FB_ALLOC', ',', 'drm_sis_mem_t', ')', '#']
+['DRM_IOCTL_SIS_FB_FREE', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_SIS_FB_FREE', ',', 'drm_sis_mem_t', ')', '#']
+['DRM_IOCTL_SIS_FB_INIT', 'DRM_IOW', '(', 'DRM_COMMAND_BASE', '+', 'DRM_SIS_FB_INIT', ',', 'drm_sis_fb_t', ')', '/*\n#define DRM_IOCTL_SIS_FLIP\t\tDRM_IOW( 0x48, drm_sis_flip_t)\n#define DRM_IOCTL_SIS_FLIP_INIT\t\tDRM_IO( 0x49)\n#define DRM_IOCTL_SIS_FLIP_FINAL\tDRM_IO( 0x50)\n*/']
+['DRM_IOCTL_SWITCH_CTX', 'DRM_IOW', '(', '0x24', ',', 'struct', 'drm_ctx', ')', '#']
+['DRM_IOCTL_UNBLOCK', 'DRM_IOWR', '(', '0x13', ',', 'struct', 'drm_block', ')', '#']
+['DRM_IOCTL_UNLOCK', 'DRM_IOW', '(', '0x2b', ',', 'struct', 'drm_lock', ')', '#']
+['DRM_IOCTL_UPDATE_DRAW', 'DRM_IOW', '(', '0x3f', ',', 'struct', 'drm_update_draw', ')', '#']
+['DRM_IOCTL_VERSION', 'DRM_IOWR', '(', '0x00', ',', 'struct', 'drm_version', ')', '#']
+['DRM_IOCTL_WAIT_VBLANK', 'DRM_IOWR', '(', '0x3a', ',', 'union', 'drm_wait_vblank', ')', '#']
+['EVIOCGABS', '(', 'abs', ')', '_IOR', '(', "'E'", ',', '0x40', '+', '(', 'abs', ')', ',', 'struct', 'input_absinfo', ')', '/* get abs value/limits */']
+['EVIOCGBIT', '(', 'ev', ',', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x20', '+', '(', 'ev', ')', ',', 'len', ')', '/* get event bits */']
+['EVIOCGEFFECTS', '_IOR', '(', "'E'", ',', '0x84', ',', 'int', ')', '/* Report number of effects playable at the same time */']
+['EVIOCGID', '_IOR', '(', "'E'", ',', '0x02', ',', 'struct', 'input_id', ')', '/* get device ID */']
+['EVIOCGKEY', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x18', ',', 'len', ')', '/* get global key state */']
+['EVIOCGKEYCODE', '_IOR', '(', "'E'", ',', '0x04', ',', 'unsigned', 'int', '[', '2', ']', ')', '/* get keycode */']
+['EVIOCGKEYCODE_V2', '_IOR', '(', "'E'", ',', '0x04', ',', 'struct', 'input_keymap_entry', ')', '#']
+['EVIOCGLED', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x19', ',', 'len', ')', '/* get all LEDs */']
+['EVIOCGMTSLOTS', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x0a', ',', 'len', ')', '#']
+['EVIOCGNAME', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x06', ',', 'len', ')', '/* get device name */']
+['EVIOCGPHYS', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x07', ',', 'len', ')', '/* get physical location */']
+['EVIOCGPROP', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x09', ',', 'len', ')', '/* get device properties */']
+['EVIOCGRAB', '_IOW', '(', "'E'", ',', '0x90', ',', 'int', ')', '/* Grab/Release device */']
+['EVIOCGREP', '_IOR', '(', "'E'", ',', '0x03', ',', 'unsigned', 'int', '[', '2', ']', ')', '/* get repeat settings */']
+['EVIOCGSND', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x1a', ',', 'len', ')', '/* get all sounds status */']
+['EVIOCGSW', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x1b', ',', 'len', ')', '/* get all switch states */']
+['EVIOCGUNIQ', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'E'", ',', '0x08', ',', 'len', ')', '/* get unique identifier */']
+['EVIOCGVERSION', '_IOR', '(', "'E'", ',', '0x01', ',', 'int', ')', '/* get driver version */']
+['EVIOCREVOKE', '_IOW', '(', "'E'", ',', '0x91', ',', 'int', ')', '/* Revoke device access */']
+['EVIOCRMFF', '_IOW', '(', "'E'", ',', '0x81', ',', 'int', ')', '/* Erase a force effect */']
+['EVIOCSABS', '(', 'abs', ')', '_IOW', '(', "'E'", ',', '0xc0', '+', '(', 'abs', ')', ',', 'struct', 'input_absinfo', ')', '/* set abs value/limits */']
+['EVIOCSCLOCKID', '_IOW', '(', "'E'", ',', '0xa0', ',', 'int', ')', '/* Set clockid to be used for timestamps */']
+['EVIOCSFF', '_IOC', '(', '_IOC_WRITE', ',', "'E'", ',', '0x80', ',', 'sizeof', '(', 'struct', 'ff_effect', ')', ')', '/* send a force effect to a force feedback device */']
+['EVIOCSKEYCODE', '_IOW', '(', "'E'", ',', '0x04', ',', 'unsigned', 'int', '[', '2', ']', ')', '/* set keycode */']
+['EVIOCSKEYCODE_V2', '_IOW', '(', "'E'", ',', '0x04', ',', 'struct', 'input_keymap_entry', ')', '#']
+['EVIOCSREP', '_IOW', '(', "'E'", ',', '0x03', ',', 'unsigned', 'int', '[', '2', ']', ')', '/* set repeat settings */']
+['EXT2_IOC_GETFLAGS', '_IOR', '(', "'f'", ',', '1', ',', 'long', ')', '#']
+['EXT2_IOC_GETVERSION', '_IOR', '(', "'v'", ',', '1', ',', 'long', ')', '#']
+['EXT2_IOC_GETVERSION_NEW', '_IOR', '(', "'f'", ',', '3', ',', 'long', ')', '#']
+['EXT2_IOC_GROUP_ADD', '_IOW', '(', "'f'", ',', '8', ',', 'struct', 'ext2_new_group_input', ')', '#']
+['EXT2_IOC_GROUP_EXTEND', '_IOW', '(', "'f'", ',', '7', ',', 'unsigned', 'long', ')', '#']
+['EXT2_IOC_SETFLAGS', '_IOW', '(', "'f'", ',', '2', ',', 'long', ')', '#']
+['EXT2_IOC_SETVERSION', '_IOW', '(', "'v'", ',', '2', ',', 'long', ')', '#']
+['EXT2_IOC_SETVERSION_NEW', '_IOW', '(', "'f'", ',', '4', ',', 'long', ')', '#']
+['EXT4_IOC_GROUP_ADD', '_IOW', '(', "'f'", ',', '8', ',', 'struct', 'ext4_new_group_input', ')', '#']
+['EXT4_IOC_RESIZE_FS', '_IOW', '(', "'f'", ',', '16', ',', '__u64', ')', '/*\n * Structure of an inode on the disk\n */']
+['FAT_IOCTL_GET_ATTRIBUTES', '_IOR', '(', "'r'", ',', '0x10', ',', '__u32', ')', '#']
+['FAT_IOCTL_GET_VOLUME_ID', '_IOR', '(', "'r'", ',', '0x13', ',', '__u32', ')', 'struct']
+['FAT_IOCTL_SET_ATTRIBUTES', '_IOW', '(', "'r'", ',', '0x11', ',', '__u32', ')', '/*Android kernel has used 0x12, so we use 0x13*/']
+['FSL_HV_IOCTL_DOORBELL', '_IOWR', '(', 'FSL_HV_IOCTL_TYPE', ',', '6', ',', 'struct', 'fsl_hv_ioctl_doorbell', ')', "/* Get a property from another guest's device tree */"]
+['FSL_HV_IOCTL_GETPROP', '_IOWR', '(', 'FSL_HV_IOCTL_TYPE', ',', '7', ',', 'struct', 'fsl_hv_ioctl_prop', ')', "/* Set a property in another guest's device tree */"]
+['FSL_HV_IOCTL_MEMCPY', '_IOWR', '(', 'FSL_HV_IOCTL_TYPE', ',', '5', ',', 'struct', 'fsl_hv_ioctl_memcpy', ')', '/* Ring a doorbell */']
+['FSL_HV_IOCTL_PARTITION_GET_STATUS', '_IOWR', '(', 'FSL_HV_IOCTL_TYPE', ',', '2', ',', 'struct', 'fsl_hv_ioctl_status', ')', '/* Boot another partition */']
+['FSL_HV_IOCTL_PARTITION_RESTART', '_IOWR', '(', 'FSL_HV_IOCTL_TYPE', ',', '1', ',', 'struct', 'fsl_hv_ioctl_restart', ')', "/* Get a partition's status */"]
+['FSL_HV_IOCTL_PARTITION_START', '_IOWR', '(', 'FSL_HV_IOCTL_TYPE', ',', '3', ',', 'struct', 'fsl_hv_ioctl_start', ')', '/* Stop this or another partition */']
+['FSL_HV_IOCTL_PARTITION_STOP', '_IOWR', '(', 'FSL_HV_IOCTL_TYPE', ',', '4', ',', 'struct', 'fsl_hv_ioctl_stop', ')', '/* Copy data from one partition to another */']
+['FSL_HV_IOCTL_SETPROP', '_IOWR', '(', 'FSL_HV_IOCTL_TYPE', ',', '8', ',', 'struct', 'fsl_hv_ioctl_prop', ')', '#']
+['FS_IOC32_GETFLAGS', '_IOR', '(', "'f'", ',', '1', ',', 'int', ')', '#']
+['FS_IOC32_GETVERSION', '_IOR', '(', "'v'", ',', '1', ',', 'int', ')', '#']
+['FS_IOC32_SETFLAGS', '_IOW', '(', "'f'", ',', '2', ',', 'int', ')', '#']
+['FS_IOC32_SETVERSION', '_IOW', '(', "'v'", ',', '2', ',', 'int', ')', '/*\n * Inode flags (FS_IOC_GETFLAGS / FS_IOC_SETFLAGS)\n */']
+['FS_IOC_FIEMAP', '_IOWR', '(', "'f'", ',', '11', ',', 'struct', 'fiemap', ')', '#']
+['FS_IOC_GETFLAGS', '_IOR', '(', "'f'", ',', '1', ',', 'long', ')', '#']
+['FS_IOC_GETVERSION', '_IOR', '(', "'v'", ',', '1', ',', 'long', ')', '#']
+['FS_IOC_SETFLAGS', '_IOW', '(', "'f'", ',', '2', ',', 'long', ')', '#']
+['FS_IOC_SETVERSION', '_IOW', '(', "'v'", ',', '2', ',', 'long', ')', '#']
+['FW_CDEV_IOC_ADD_DESCRIPTOR', '_IOWR', '(', "'#'", ',', '0x06', ',', 'struct', 'fw_cdev_add_descriptor', ')', '#']
+['FW_CDEV_IOC_ALLOCATE', '_IOWR', '(', "'#'", ',', '0x02', ',', 'struct', 'fw_cdev_allocate', ')', '#']
+['FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE', '_IOWR', '(', "'#'", ',', '0x0d', ',', 'struct', 'fw_cdev_allocate_iso_resource', ')', '#']
+['FW_CDEV_IOC_ALLOCATE_ISO_RESOURCE_ONCE', '_IOW', '(', "'#'", ',', '0x0f', ',', 'struct', 'fw_cdev_allocate_iso_resource', ')', '#']
+['FW_CDEV_IOC_CREATE_ISO_CONTEXT', '_IOWR', '(', "'#'", ',', '0x08', ',', 'struct', 'fw_cdev_create_iso_context', ')', '#']
+['FW_CDEV_IOC_DEALLOCATE', '_IOW', '(', "'#'", ',', '0x03', ',', 'struct', 'fw_cdev_deallocate', ')', '#']
+['FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE', '_IOW', '(', "'#'", ',', '0x0e', ',', 'struct', 'fw_cdev_deallocate', ')', '#']
+['FW_CDEV_IOC_DEALLOCATE_ISO_RESOURCE_ONCE', '_IOW', '(', "'#'", ',', '0x10', ',', 'struct', 'fw_cdev_allocate_iso_resource', ')', '#']
+['FW_CDEV_IOC_FLUSH_ISO', '_IOW', '(', "'#'", ',', '0x18', ',', 'struct', 'fw_cdev_flush_iso', ')', '/*\n * ABI version history\n * 1 (2.6.22) - initial version\n * (2.6.24) - added %FW_CDEV_IOC_GET_CYCLE_TIMER\n * 2 (2.6.30) - changed &fw_cdev_event_iso_interrupt.header if\n * &fw_cdev_create_iso_context.header_size is 8 or more\n * - added %FW_CDEV_IOC_*_ISO_RESOURCE*,\n * %FW_CDEV_IOC_GET_SPEED, %FW_CDEV_IOC_SEND_BROADCAST_REQUEST,\n * %FW_CDEV_IOC_SEND_STREAM_PACKET\n * (2.6.32) - added time stamp to xmit &fw_cdev_event_iso_interrupt\n * (2.6.33) - IR has always packet-per-buffer semantics now, not one of\n * dual-buffer or packet-per-buffer depending on hardware\n * - shared use and auto-response for FCP registers\n * 3 (2.6.34) - made &fw_cdev_get_cycle_timer reliable\n * - added %FW_CDEV_IOC_GET_CYCLE_TIMER2\n * 4 (2.6.36) - added %FW_CDEV_EVENT_REQUEST2, %FW_CDEV_EVENT_PHY_PACKET_*,\n * and &fw_cdev_allocate.region_end\n * - implemented &fw_cdev_event_bus_reset.bm_node_id\n * - added %FW_CDEV_IOC_SEND_PHY_PACKET, _RECEIVE_PHY_PACKETS\n * - added %FW_CDEV_EVENT_ISO_INTERRUPT_MULTICHANNEL,\n * %FW_CDEV_ISO_CONTEXT_RECEIVE_MULTICHANNEL, and\n * %FW_CDEV_IOC_SET_ISO_CHANNELS\n * 5 (3.4) - send %FW_CDEV_EVENT_ISO_INTERRUPT events when needed to\n * avoid dropping data\n * - added %FW_CDEV_IOC_FLUSH_ISO\n */']
+['FW_CDEV_IOC_GET_CYCLE_TIMER', '_IOR', '(', "'#'", ',', '0x0c', ',', 'struct', 'fw_cdev_get_cycle_timer', ')', '/* available since kernel version 2.6.30 */']
+['FW_CDEV_IOC_GET_CYCLE_TIMER2', '_IOWR', '(', "'#'", ',', '0x14', ',', 'struct', 'fw_cdev_get_cycle_timer2', ')', '/* available since kernel version 2.6.36 */']
+['FW_CDEV_IOC_GET_INFO', '_IOWR', '(', "'#'", ',', '0x00', ',', 'struct', 'fw_cdev_get_info', ')', '#']
+['FW_CDEV_IOC_GET_SPEED', '_IO', '(', "'#'", ',', '0x11', ')', '/* returns speed code */']
+['FW_CDEV_IOC_INITIATE_BUS_RESET', '_IOW', '(', "'#'", ',', '0x05', ',', 'struct', 'fw_cdev_initiate_bus_reset', ')', '#']
+['FW_CDEV_IOC_QUEUE_ISO', '_IOWR', '(', "'#'", ',', '0x09', ',', 'struct', 'fw_cdev_queue_iso', ')', '#']
+['FW_CDEV_IOC_RECEIVE_PHY_PACKETS', '_IOW', '(', "'#'", ',', '0x16', ',', 'struct', 'fw_cdev_receive_phy_packets', ')', '#']
+['FW_CDEV_IOC_REMOVE_DESCRIPTOR', '_IOW', '(', "'#'", ',', '0x07', ',', 'struct', 'fw_cdev_remove_descriptor', ')', '#']
+['FW_CDEV_IOC_SEND_BROADCAST_REQUEST', '_IOW', '(', "'#'", ',', '0x12', ',', 'struct', 'fw_cdev_send_request', ')', '#']
+['FW_CDEV_IOC_SEND_PHY_PACKET', '_IOWR', '(', "'#'", ',', '0x15', ',', 'struct', 'fw_cdev_send_phy_packet', ')', '#']
+['FW_CDEV_IOC_SEND_REQUEST', '_IOW', '(', "'#'", ',', '0x01', ',', 'struct', 'fw_cdev_send_request', ')', '#']
+['FW_CDEV_IOC_SEND_RESPONSE', '_IOW', '(', "'#'", ',', '0x04', ',', 'struct', 'fw_cdev_send_response', ')', '#']
+['FW_CDEV_IOC_SEND_STREAM_PACKET', '_IOW', '(', "'#'", ',', '0x13', ',', 'struct', 'fw_cdev_send_stream_packet', ')', '/* available since kernel version 2.6.34 */']
+['FW_CDEV_IOC_SET_ISO_CHANNELS', '_IOW', '(', "'#'", ',', '0x17', ',', 'struct', 'fw_cdev_set_iso_channels', ')', '/* available since kernel version 3.4 */']
+['FW_CDEV_IOC_START_ISO', '_IOW', '(', "'#'", ',', '0x0a', ',', 'struct', 'fw_cdev_start_iso', ')', '#']
+['FW_CDEV_IOC_STOP_ISO', '_IOW', '(', "'#'", ',', '0x0b', ',', 'struct', 'fw_cdev_stop_iso', ')', '/* available since kernel version 2.6.24 */']
+['HIDIOCAPPLICATION', '_IO', '(', "'H'", ',', '0x02', ')', '#']
+['HIDIOCGCOLLECTIONINDEX', '_IOW', '(', "'H'", ',', '0x10', ',', 'struct', 'hiddev_usage_ref', ')', '#']
+['HIDIOCGCOLLECTIONINFO', '_IOWR', '(', "'H'", ',', '0x11', ',', 'struct', 'hiddev_collection_info', ')', '#']
+['HIDIOCGDEVINFO', '_IOR', '(', "'H'", ',', '0x03', ',', 'struct', 'hiddev_devinfo', ')', '#']
+['HIDIOCGFEATURE', '(', 'len', ')', '_IOC', '(', '_IOC_WRITE', '|', '_IOC_READ', ',', "'H'", ',', '0x07', ',', 'len', ')', '#']
+['HIDIOCGFIELDINFO', '_IOWR', '(', "'H'", ',', '0x0A', ',', 'struct', 'hiddev_field_info', ')', '#']
+['HIDIOCGFLAG', '_IOR', '(', "'H'", ',', '0x0E', ',', 'int', ')', '#']
+['HIDIOCGNAME', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'H'", ',', '0x06', ',', 'len', ')', '#']
+['HIDIOCGPHYS', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'H'", ',', '0x12', ',', 'len', ')', '/* For writing/reading to multiple/consecutive usages */']
+['HIDIOCGRAWINFO', '_IOR', '(', "'H'", ',', '0x03', ',', 'struct', 'hidraw_devinfo', ')', '#']
+['HIDIOCGRAWNAME', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'H'", ',', '0x04', ',', 'len', ')', '#']
+['HIDIOCGRAWPHYS', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'H'", ',', '0x05', ',', 'len', ')', '/* The first byte of SFEATURE and GFEATURE is the report number */']
+['HIDIOCGRDESC', '_IOR', '(', "'H'", ',', '0x02', ',', 'struct', 'hidraw_report_descriptor', ')', '#']
+['HIDIOCGRDESCSIZE', '_IOR', '(', "'H'", ',', '0x01', ',', 'int', ')', '#']
+['HIDIOCGREPORT', '_IOW', '(', "'H'", ',', '0x07', ',', 'struct', 'hiddev_report_info', ')', '#']
+['HIDIOCGREPORTINFO', '_IOWR', '(', "'H'", ',', '0x09', ',', 'struct', 'hiddev_report_info', ')', '#']
+['HIDIOCGSTRING', '_IOR', '(', "'H'", ',', '0x04', ',', 'struct', 'hiddev_string_descriptor', ')', '#']
+['HIDIOCGUCODE', '_IOWR', '(', "'H'", ',', '0x0D', ',', 'struct', 'hiddev_usage_ref', ')', '#']
+['HIDIOCGUSAGE', '_IOWR', '(', "'H'", ',', '0x0B', ',', 'struct', 'hiddev_usage_ref', ')', '#']
+['HIDIOCGUSAGES', '_IOWR', '(', "'H'", ',', '0x13', ',', 'struct', 'hiddev_usage_ref_multi', ')', '#']
+['HIDIOCGVERSION', '_IOR', '(', "'H'", ',', '0x01', ',', 'int', ')', '#']
+['HIDIOCINITREPORT', '_IO', '(', "'H'", ',', '0x05', ')', '#']
+['HIDIOCSFEATURE', '(', 'len', ')', '_IOC', '(', '_IOC_WRITE', '|', '_IOC_READ', ',', "'H'", ',', '0x06', ',', 'len', ')', '#']
+['HIDIOCSFLAG', '_IOW', '(', "'H'", ',', '0x0F', ',', 'int', ')', '#']
+['HIDIOCSREPORT', '_IOW', '(', "'H'", ',', '0x08', ',', 'struct', 'hiddev_report_info', ')', '#']
+['HIDIOCSUSAGE', '_IOW', '(', "'H'", ',', '0x0C', ',', 'struct', 'hiddev_usage_ref', ')', '#']
+['HIDIOCSUSAGES', '_IOW', '(', "'H'", ',', '0x14', ',', 'struct', 'hiddev_usage_ref_multi', ')', '/* \n * Flags to be used in HIDIOCSFLAG\n */']
+['IIOCDBGVAR', '_IO', '(', "'I'", ',', '127', ')', '#']
+['IIOCDRVCTL', '_IO', '(', "'I'", ',', '128', ')', '/* cisco hdlck device private ioctls */']
+['IIOCGETCPS', '_IO', '(', "'I'", ',', '21', ')', '#']
+['IIOCGETDVR', '_IO', '(', "'I'", ',', '22', ')', '#']
+['IIOCGETMAP', '_IO', '(', "'I'", ',', '17', ')', '#']
+['IIOCGETPRF', '_IO', '(', "'I'", ',', '15', ')', '#']
+['IIOCGETSET', '_IO', '(', "'I'", ',', '8', ')', '/* no longer supported */']
+['IIOCNETAIF', '_IO', '(', "'I'", ',', '1', ')', '#']
+['IIOCNETALN', '_IO', '(', "'I'", ',', '32', ')', '#']
+['IIOCNETANM', '_IO', '(', "'I'", ',', '5', ')', '#']
+['IIOCNETASL', '_IO', '(', "'I'", ',', '19', ')', '#']
+['IIOCNETDIF', '_IO', '(', "'I'", ',', '2', ')', '#']
+['IIOCNETDIL', '_IO', '(', "'I'", ',', '20', ')', '#']
+['IIOCNETDLN', '_IO', '(', "'I'", ',', '33', ')', '#']
+['IIOCNETDNM', '_IO', '(', "'I'", ',', '6', ')', '#']
+['IIOCNETDWRSET', '_IO', '(', "'I'", ',', '24', ')', '/* dwabc ioctl to reset abc-values to default on a net-interface */']
+['IIOCNETGCF', '_IO', '(', "'I'", ',', '4', ')', '#']
+['IIOCNETGNM', '_IO', '(', "'I'", ',', '7', ')', '#']
+['IIOCNETGPN', '_IO', '(', "'I'", ',', '34', ')', '#']
+['IIOCNETHUP', '_IO', '(', "'I'", ',', '11', ')', '#']
+['IIOCNETLCR', '_IO', '(', "'I'", ',', '23', ')', '/* dwabc ioctl for LCR from isdnlog */']
+['IIOCNETSCF', '_IO', '(', "'I'", ',', '3', ')', '#']
+['IIOCSETBRJ', '_IO', '(', "'I'", ',', '13', ')', '#']
+['IIOCSETGST', '_IO', '(', "'I'", ',', '12', ')', '#']
+['IIOCSETMAP', '_IO', '(', "'I'", ',', '18', ')', '#']
+['IIOCSETPRF', '_IO', '(', "'I'", ',', '16', ')', '#']
+['IIOCSETSET', '_IO', '(', "'I'", ',', '9', ')', '/* no longer supported */']
+['IIOCSETVER', '_IO', '(', "'I'", ',', '10', ')', '#']
+['IIOCSIGPRF', '_IO', '(', "'I'", ',', '14', ')', '#']
+['IOCTL_EVTCHN_BIND_INTERDOMAIN', '_IOC', '(', '_IOC_NONE', ',', "'E'", ',', '1', ',', 'sizeof', '(', 'struct', 'ioctl_evtchn_bind_interdomain', ')', ')', 'struct']
+['IOCTL_EVTCHN_BIND_UNBOUND_PORT', '_IOC', '(', '_IOC_NONE', ',', "'E'", ',', '2', ',', 'sizeof', '(', 'struct', 'ioctl_evtchn_bind_unbound_port', ')', ')', 'struct']
+['IOCTL_EVTCHN_BIND_VIRQ', '_IOC', '(', '_IOC_NONE', ',', "'E'", ',', '0', ',', 'sizeof', '(', 'struct', 'ioctl_evtchn_bind_virq', ')', ')', 'struct']
+['IOCTL_EVTCHN_NOTIFY', '_IOC', '(', '_IOC_NONE', ',', "'E'", ',', '4', ',', 'sizeof', '(', 'struct', 'ioctl_evtchn_notify', ')', ')', 'struct']
+['IOCTL_EVTCHN_RESET', '_IOC', '(', '_IOC_NONE', ',', "'E'", ',', '5', ',', '0', ')', '#']
+['IOCTL_EVTCHN_UNBIND', '_IOC', '(', '_IOC_NONE', ',', "'E'", ',', '3', ',', 'sizeof', '(', 'struct', 'ioctl_evtchn_unbind', ')', ')', 'struct']
+['IOCTL_MEI_CONNECT_CLIENT', '_IOWR', '(', "'H'", ',', '0x01', ',', 'struct', 'mei_connect_client_data', ')', '/*\n * Intel MEI client information struct\n */']
+['IOCTL_WDM_MAX_COMMAND', '_IOR', '(', "'H'", ',', '0xA0', ',', '__u16', ')', '#']
+['IVTVFB_IOC_DMA_FRAME', '_IOW', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '0', ',', 'struct', 'ivtvfb_dma_frame', ')', '#']
+['IVTV_IOC_DMA_FRAME', '_IOW', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '0', ',', 'struct', 'ivtv_dma_frame', ')', '/* Select the passthrough mode (if the argument is non-zero). In the passthrough\n mode the output of the encoder is passed immediately into the decoder. */']
+['IVTV_IOC_PASSTHROUGH_MODE', '_IOW', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '1', ',', 'int', ')', '/* Deprecated defines: applications should use the defines from videodev2.h */']
+['JSIOCGAXES', '_IOR', '(', "'j'", ',', '0x11', ',', '__u8', ')', '/* get number of axes */']
+['JSIOCGAXMAP', '_IOR', '(', "'j'", ',', '0x32', ',', '__u8', '[', 'ABS_CNT', ']', ')', '/* get axis mapping */']
+['JSIOCGBTNMAP', '_IOR', '(', "'j'", ',', '0x34', ',', '__u16', '[', 'KEY_MAX', '-', 'BTN_MISC', '+', '1', ']', ')', '/* get button mapping */']
+['JSIOCGBUTTONS', '_IOR', '(', "'j'", ',', '0x12', ',', '__u8', ')', '/* get number of buttons */']
+['JSIOCGCORR', '_IOR', '(', "'j'", ',', '0x22', ',', 'struct', 'js_corr', ')', '/* get correction values */']
+['JSIOCGNAME', '(', 'len', ')', '_IOC', '(', '_IOC_READ', ',', "'j'", ',', '0x13', ',', 'len', ')', '/* get identifier string */']
+['JSIOCGVERSION', '_IOR', '(', "'j'", ',', '0x01', ',', '__u32', ')', '/* get driver version */']
+['JSIOCSAXMAP', '_IOW', '(', "'j'", ',', '0x31', ',', '__u8', '[', 'ABS_CNT', ']', ')', '/* set axis mapping */']
+['JSIOCSBTNMAP', '_IOW', '(', "'j'", ',', '0x33', ',', '__u16', '[', 'KEY_MAX', '-', 'BTN_MISC', '+', '1', ']', ')', '/* set button mapping */']
+['JSIOCSCORR', '_IOW', '(', "'j'", ',', '0x21', ',', 'struct', 'js_corr', ')', '/* set correction values */']
+['KIOCSOUND', '0x4B2F', '/* start sound generation (0 for off) */']
+['MEDIA_IOC_DEVICE_INFO', '_IOWR', '(', "'|'", ',', '0x00', ',', 'struct', 'media_device_info', ')', '#']
+['MEDIA_IOC_ENUM_ENTITIES', '_IOWR', '(', "'|'", ',', '0x01', ',', 'struct', 'media_entity_desc', ')', '#']
+['MEDIA_IOC_ENUM_LINKS', '_IOWR', '(', "'|'", ',', '0x02', ',', 'struct', 'media_links_enum', ')', '#']
+['MEDIA_IOC_SETUP_LINK', '_IOWR', '(', "'|'", ',', '0x03', ',', 'struct', 'media_link_desc', ')', '#']
+['MEYEIOC_G_PARAMS', '_IOR', '(', "'v'", ',', 'BASE_VIDIOC_PRIVATE', '+', '0', ',', 'struct', 'meye_params', ')', '/* set the extended parameters */']
+['MEYEIOC_QBUF_CAPT', '_IOW', '(', "'v'", ',', 'BASE_VIDIOC_PRIVATE', '+', '2', ',', 'int', ')', '/* sync a previously queued mjpeg buffer */']
+['MEYEIOC_STILLCAPT', '_IO', '(', "'v'", ',', 'BASE_VIDIOC_PRIVATE', '+', '4', ')', '/* get a jpeg compressed snapshot */']
+['MEYEIOC_STILLJCAPT', '_IOR', '(', "'v'", ',', 'BASE_VIDIOC_PRIVATE', '+', '5', ',', 'int', ')', '/* V4L2 private controls */']
+['MEYEIOC_SYNC', '_IOWR', '(', "'v'", ',', 'BASE_VIDIOC_PRIVATE', '+', '3', ',', 'int', ')', '/* get a still uncompressed snapshot */']
+['MEYEIOC_S_PARAMS', '_IOW', '(', "'v'", ',', 'BASE_VIDIOC_PRIVATE', '+', '1', ',', 'struct', 'meye_params', ')', '/* queue a buffer for mjpeg capture */']
+['MGSL_IOCCLRMODCOUNT', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '15', ')', '#']
+['MGSL_IOCGGPIO', '_IOR', '(', 'MGSL_MAGIC_IOC', ',', '17', ',', 'struct', 'gpio_desc', ')', '#']
+['MGSL_IOCGIF', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '11', ')', '#']
+['MGSL_IOCGPARAMS', '_IOR', '(', 'MGSL_MAGIC_IOC', ',', '1', ',', 'struct', '_MGSL_PARAMS', ')', '#']
+['MGSL_IOCGSTATS', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '7', ')', '#']
+['MGSL_IOCGTXIDLE', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '3', ')', '#']
+['MGSL_IOCGXCTRL', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '22', ')', '#']
+['MGSL_IOCGXSYNC', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '20', ')', '#']
+['MGSL_IOCLOOPTXDONE', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '9', ')', '#']
+['MGSL_IOCRXENABLE', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '5', ')', '#']
+['MGSL_IOCSGPIO', '_IOW', '(', 'MGSL_MAGIC_IOC', ',', '16', ',', 'struct', 'gpio_desc', ')', '#']
+['MGSL_IOCSIF', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '10', ')', '#']
+['MGSL_IOCSPARAMS', '_IOW', '(', 'MGSL_MAGIC_IOC', ',', '0', ',', 'struct', '_MGSL_PARAMS', ')', '#']
+['MGSL_IOCSTXIDLE', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '2', ')', '#']
+['MGSL_IOCSXCTRL', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '21', ')', '#']
+['MGSL_IOCSXSYNC', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '19', ')', '#']
+['MGSL_IOCTXABORT', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '6', ')', '#']
+['MGSL_IOCTXENABLE', '_IO', '(', 'MGSL_MAGIC_IOC', ',', '4', ')', '#']
+['MGSL_IOCWAITEVENT', '_IOWR', '(', 'MGSL_MAGIC_IOC', ',', '8', ',', 'int', ')', '#']
+['MGSL_IOCWAITGPIO', '_IOWR', '(', 'MGSL_MAGIC_IOC', ',', '18', ',', 'struct', 'gpio_desc', ')', '#']
+['MMC_IOC_CMD', '_IOWR', '(', 'MMC_BLOCK_MAJOR', ',', '0', ',', 'struct', 'mmc_ioc_cmd', ')', '/*\n * Since this ioctl is only meant to enhance (and not replace) normal access\n * to the mmc bus device, an upper data transfer limit of MMC_IOC_MAX_BYTES\n * is enforced per ioctl call. For larger data transfers, use the normal\n * block device operations.\n */']
+['MTIOCGET', '_IOR', '(', "'m'", ',', '2', ',', 'struct', 'mtget', ')', '/* Get tape status. */']
+['MTIOCGET', '_IOR', '(', "'m'", ',', '2', ',', 'struct', 'mtget', ')', '/* get tape status */']
+['MTIOCGETCONFIG', '_IOR', '(', "'m'", ',', '4', ',', 'struct', 'mtconfiginfo', ')', '/* Get tape config.*/']
+['MTIOCPOS', '_IOR', '(', "'m'", ',', '3', ',', 'struct', 'mtpos', ')', '/* Get tape position.*/']
+['MTIOCPOS', '_IOR', '(', "'m'", ',', '3', ',', 'struct', 'mtpos', ')', '/* get tape position */']
+['MTIOCSETCONFIG', '_IOW', '(', "'m'", ',', '5', ',', 'struct', 'mtconfiginfo', ')', '/* Set tape config.*/']
+['MTIOCTOP', '_IOW', '(', "'m'", ',', '1', ',', 'struct', 'mtop', ')', '/* Do a mag tape op. */']
+['MTIOCTOP', '_IOW', '(', "'m'", ',', '1', ',', 'struct', 'mtop', ')', '/* do a mag tape op */']
+['MTRRIOC_ADD_ENTRY', '_IOW', '(', 'MTRR_IOCTL_BASE', ',', '0', ',', 'struct', 'mtrr_sentry', ')', '#']
+['MTRRIOC_ADD_PAGE_ENTRY', '_IOW', '(', 'MTRR_IOCTL_BASE', ',', '5', ',', 'struct', 'mtrr_sentry', ')', '#']
+['MTRRIOC_DEL_ENTRY', '_IOW', '(', 'MTRR_IOCTL_BASE', ',', '2', ',', 'struct', 'mtrr_sentry', ')', '#']
+['MTRRIOC_DEL_PAGE_ENTRY', '_IOW', '(', 'MTRR_IOCTL_BASE', ',', '7', ',', 'struct', 'mtrr_sentry', ')', '#']
+['MTRRIOC_GET_ENTRY', '_IOWR', '(', 'MTRR_IOCTL_BASE', ',', '3', ',', 'struct', 'mtrr_gentry', ')', '#']
+['MTRRIOC_GET_PAGE_ENTRY', '_IOWR', '(', 'MTRR_IOCTL_BASE', ',', '8', ',', 'struct', 'mtrr_gentry', ')', '#']
+['MTRRIOC_KILL_ENTRY', '_IOW', '(', 'MTRR_IOCTL_BASE', ',', '4', ',', 'struct', 'mtrr_sentry', ')', '#']
+['MTRRIOC_KILL_PAGE_ENTRY', '_IOW', '(', 'MTRR_IOCTL_BASE', ',', '9', ',', 'struct', 'mtrr_sentry', ')', '/* These are the region types */']
+['MTRRIOC_SET_ENTRY', '_IOW', '(', 'MTRR_IOCTL_BASE', ',', '1', ',', 'struct', 'mtrr_sentry', ')', '#']
+['MTRRIOC_SET_PAGE_ENTRY', '_IOW', '(', 'MTRR_IOCTL_BASE', ',', '6', ',', 'struct', 'mtrr_sentry', ')', '#']
+['NVME_IOCTL_ADMIN_CMD', '_IOWR', '(', "'N'", ',', '0x41', ',', 'struct', 'nvme_admin_cmd', ')', '#']
+['NVME_IOCTL_ID', '_IO', '(', "'N'", ',', '0x40', ')', '#']
+['NVME_IOCTL_SUBMIT_IO', '_IOW', '(', "'N'", ',', '0x42', ',', 'struct', 'nvme_user_io', ')', '#']
+['OSIOCGNETADDR', '_IOR', '(', 'DECNET_IOCTL_BASE', ',', '0xe1', ',', 'int', ')', '#']
+['OSIOCSNETADDR', '_IOW', '(', 'DECNET_IOCTL_BASE', ',', '0xe0', ',', 'int', ')', '#']
+['PCIIOC_CONTROLLER', '(', 'PCIIOC_BASE', '|', '0x00', ')', '/* Get controller for PCI device. */']
+['PCIIOC_MMAP_IS_IO', '(', 'PCIIOC_BASE', '|', '0x01', ')', '/* Set mmap state to I/O space. */']
+['PCIIOC_MMAP_IS_MEM', '(', 'PCIIOC_BASE', '|', '0x02', ')', '/* Set mmap state to MEM space. */']
+['PCIIOC_WRITE_COMBINE', '(', 'PCIIOC_BASE', '|', '0x03', ')', '/* Enable/disable write-combining. */']
+['PERF_EVENT_IOC_DISABLE', '_IO', '(', "'$'", ',', '1', ')', '#']
+['PERF_EVENT_IOC_ENABLE', '_IO', '(', "'$'", ',', '0', ')', '#']
+['PERF_EVENT_IOC_ID', '_IOR', '(', "'$'", ',', '7', ',', '__u64', '*', ')', 'enum']
+['PERF_EVENT_IOC_PERIOD', '_IOW', '(', "'$'", ',', '4', ',', '__u64', ')', '#']
+['PERF_EVENT_IOC_REFRESH', '_IO', '(', "'$'", ',', '2', ')', '#']
+['PERF_EVENT_IOC_RESET', '_IO', '(', "'$'", ',', '3', ')', '#']
+['PERF_EVENT_IOC_SET_FILTER', '_IOW', '(', "'$'", ',', '6', ',', 'char', '*', ')', '#']
+['PERF_EVENT_IOC_SET_OUTPUT', '_IO', '(', "'$'", ',', '5', ')', '#']
+['PMU_IOC_CAN_SLEEP', '_IOR', '(', "'B'", ',', '5', ',', 'size_t', ')', "/* no param, but historically was _IOR('B', 6, 0), meaning 4 bytes */"]
+['PMU_IOC_GET_BACKLIGHT', '_IOR', '(', "'B'", ',', '1', ',', 'size_t', ')', '/* in param: u32\tbacklight value: 0 to 15 */']
+['PMU_IOC_GET_MODEL', '_IOR', '(', "'B'", ',', '3', ',', 'size_t', ')', '/* out param: u32*\thas_adb: 0 or 1 */']
+['PMU_IOC_GRAB_BACKLIGHT', '_IOR', '(', "'B'", ',', '6', ',', 'size_t', ')', '#']
+['PMU_IOC_HAS_ADB', '_IOR', '(', "'B'", ',', '4', ',', 'size_t', ')', '/* out param: u32*\tcan_sleep: 0 or 1 */']
+['PMU_IOC_SET_BACKLIGHT', '_IOW', '(', "'B'", ',', '2', ',', 'size_t', ')', '/* out param: u32*\tPMU model */']
+['PMU_IOC_SLEEP', '_IO', '(', "'B'", ',', '0', ')', '/* out param: u32*\tbacklight value: 0 to 15 */']
+['PPPIOCATTACH', '_IOW', '(', "'t'", ',', '61', ',', 'int', ')', '/* attach to ppp unit */']
+['PPPIOCATTCHAN', '_IOW', '(', "'t'", ',', '56', ',', 'int', ')', '/* attach to ppp channel */']
+['PPPIOCBUNDLE', '_IOW', '(', "'t'", ',', '129', ',', 'int', ')', '#']
+['PPPIOCCONNECT', '_IOW', '(', "'t'", ',', '58', ',', 'int', ')', '/* connect channel to unit */']
+['PPPIOCDETACH', '_IOW', '(', "'t'", ',', '60', ',', 'int', ')', '/* detach from ppp unit/chan */']
+['PPPIOCDISCONN', '_IO', '(', "'t'", ',', '57', ')', '/* disconnect channel */']
+['PPPIOCGASYNCMAP', '_IOR', '(', "'t'", ',', '88', ',', 'int', ')', '/* get async map */']
+['PPPIOCGCALLINFO', '_IOWR', '(', "'t'", ',', '128', ',', 'struct', 'pppcallinfo', ')', '#']
+['PPPIOCGCHAN', '_IOR', '(', "'t'", ',', '55', ',', 'int', ')', '/* get ppp channel number */']
+['PPPIOCGCOMPRESSORS', '_IOR', '(', "'t'", ',', '134', ',', 'unsigned', 'long', '[', '8', ']', ')', '#']
+['PPPIOCGDEBUG', '_IOR', '(', "'t'", ',', '65', ',', 'int', ')', '/* Read debug level */']
+['PPPIOCGFLAGS', '_IOR', '(', "'t'", ',', '90', ',', 'int', ')', '/* get configuration flags */']
+['PPPIOCGIDLE', '_IOR', '(', "'t'", ',', '63', ',', 'struct', 'ppp_idle', ')', '/* get idle time */']
+['PPPIOCGIFNAME', '_IOR', '(', "'t'", ',', '136', ',', 'char', '[', 'IFNAMSIZ', ']', ')', '#']
+['PPPIOCGL2TPSTATS', '_IOR', '(', "'t'", ',', '54', ',', 'struct', 'pppol2tp_ioc_stats', ')', '#']
+['PPPIOCGMPFLAGS', '_IOR', '(', "'t'", ',', '130', ',', 'int', ')', '#']
+['PPPIOCGMRU', '_IOR', '(', "'t'", ',', '83', ',', 'int', ')', '/* get max receive unit */']
+['PPPIOCGNPMODE', '_IOWR', '(', "'t'", ',', '76', ',', 'struct', 'npioctl', ')', '/* get NP mode */']
+['PPPIOCGRASYNCMAP', '_IOR', '(', "'t'", ',', '85', ',', 'int', ')', '/* get receive async map */']
+['PPPIOCGUNIT', '_IOR', '(', "'t'", ',', '86', ',', 'int', ')', '/* get ppp unit number */']
+['PPPIOCGXASYNCMAP', '_IOR', '(', "'t'", ',', '80', ',', 'ext_accm', ')', '/* get extended ACCM */']
+['PPPIOCNEWUNIT', '_IOWR', '(', "'t'", ',', '62', ',', 'int', ')', '/* create new ppp unit */']
+['PPPIOCSACTIVE', '_IOW', '(', "'t'", ',', '70', ',', 'struct', 'sock_fprog', ')', '/* set active filt */']
+['PPPIOCSASYNCMAP', '_IOW', '(', "'t'", ',', '87', ',', 'int', ')', '/* set async map */']
+['PPPIOCSCOMPRESS', '_IOW', '(', "'t'", ',', '77', ',', 'struct', 'ppp_option_data', ')', '#']
+['PPPIOCSCOMPRESSOR', '_IOW', '(', "'t'", ',', '135', ',', 'int', ')', '#']
+['PPPIOCSDEBUG', '_IOW', '(', "'t'", ',', '64', ',', 'int', ')', '/* Set debug level */']
+['PPPIOCSFLAGS', '_IOW', '(', "'t'", ',', '89', ',', 'int', ')', '/* set configuration flags */']
+['PPPIOCSMAXCID', '_IOW', '(', "'t'", ',', '81', ',', 'int', ')', '/* set VJ max slot ID */']
+['PPPIOCSMPFLAGS', '_IOW', '(', "'t'", ',', '131', ',', 'int', ')', '#']
+['PPPIOCSMPMRU', '_IOW', '(', "'t'", ',', '133', ',', 'int', ')', '#']
+['PPPIOCSMPMTU', '_IOW', '(', "'t'", ',', '132', ',', 'int', ')', '#']
+['PPPIOCSMRRU', '_IOW', '(', "'t'", ',', '59', ',', 'int', ')', '/* set multilink MRU */']
+['PPPIOCSMRU', '_IOW', '(', "'t'", ',', '82', ',', 'int', ')', '/* set max receive unit */']
+['PPPIOCSNPMODE', '_IOW', '(', "'t'", ',', '75', ',', 'struct', 'npioctl', ')', '/* set NP mode */']
+['PPPIOCSPASS', '_IOW', '(', "'t'", ',', '71', ',', 'struct', 'sock_fprog', ')', '/* set pass filter */']
+['PPPIOCSRASYNCMAP', '_IOW', '(', "'t'", ',', '84', ',', 'int', ')', '/* set receive async map */']
+['PPPIOCSXASYNCMAP', '_IOW', '(', "'t'", ',', '79', ',', 'ext_accm', ')', '/* set extended ACCM */']
+['PPPIOCXFERUNIT', '_IO', '(', "'t'", ',', '78', ')', '/* transfer PPP unit */']
+['REISERFS_IOC_GETFLAGS', '_IOR', '(', "'f'", ',', '1', ',', 'long', ')', '#']
+['REISERFS_IOC_GETVERSION', '_IOR', '(', "'v'", ',', '1', ',', 'long', ')', '#']
+['RESIERFS_IOC_SETFLAGS', '_IOW', '(', "'f'", ',', '2', ',', 'long', ')', '#']
+['REISERFS_IOC_SETVERSION', '_IOW', '(', "'v'", ',', '2', ',', 'long', ')', '#']
+['REISERFS_IOC_UNPACK', '_IOW', '(', '0xCD', ',', '1', ',', 'long', ')', '/* define following flags to be the same as in ext2, so that chattr(1),\n lsattr(1) will work with us. */']
+['RFKILL_IOCTL_NOINPUT', '_IO', '(', 'RFKILL_IOC_MAGIC', ',', 'RFKILL_IOC_NOINPUT', ')', "/* and that's all userspace gets */"]
+['SCSI_IOCTL_BENCHMARK_COMMAND', '3', '#']
+['SCSI_IOCTL_DOORLOCK', '0x5380', '/* Lock the eject mechanism. */']
+['SCSI_IOCTL_DOORUNLOCK', '0x5381', '/* Unlock the mechanism. */']
+['SCSI_IOCTL_GET_BUS_NUMBER', '0x5386', '#']
+['SCSI_IOCTL_GET_IDLUN', '0x5382', '/* Used to turn on and off tagged queuing for scsi devices. */']
+['SCSI_IOCTL_PROBE_HOST', '0x5385', '/* Used to get the bus number for a device. */']
+['SCSI_IOCTL_SEND_COMMAND', '1', '/* Send a command to the SCSI host. */']
+['SCSI_IOCTL_START_UNIT', '5', '#']
+['SCSI_IOCTL_STOP_UNIT', '6', '#']
+['SCSI_IOCTL_SYNC', '4', '/* Request synchronous parameters. */']
+['SCSI_IOCTL_TAGGED_DISABLE', '0x5384', '/* Used to obtain the host number of a device. */']
+['SCSI_IOCTL_TAGGED_ENABLE', '0x5383', '#']
+['SCSI_IOCTL_TEST_UNIT_READY', '2', '/* Test if unit is ready. */']
+['SIOCADDDLCI', '0x8980', '/* Create new DLCI device\t*/']
+['SIOCADDMULTI', '0x8931', '/* Multicast address lists\t*/']
+['SIOCADDRT', '0x890B', '/* add routing table entry\t*/']
+['SIOCAIPXITFCRT', '(', 'SIOCPROTOPRIVATE', ')', '#']
+['SIOCAIPXPRISLT', '(', 'SIOCPROTOPRIVATE', '+', '1', ')', '#']
+['SIOCATALKDIFADDR', '(', 'SIOCPROTOPRIVATE', '+', '0', ')', 'struct']
+['SIOCATMARK', '0x8905', '#']
+['SIOCAX25ADDFWD', '(', 'SIOCPROTOPRIVATE', '+', '10', ')', '#']
+['SIOCAX25ADDUID', '(', 'SIOCPROTOPRIVATE', '+', '1', ')', '#']
+['SIOCAX25BPQADDR', '(', 'SIOCPROTOPRIVATE', '+', '4', ')', '#']
+['SIOCAX25CTLCON', '(', 'SIOCPROTOPRIVATE', '+', '8', ')', '#']
+['SIOCAX25DELFWD', '(', 'SIOCPROTOPRIVATE', '+', '11', ')', '#']
+['SIOCAX25DELUID', '(', 'SIOCPROTOPRIVATE', '+', '2', ')', '#']
+['SIOCAX25DEVCTL', '(', 'SIOCPROTOPRIVATE', '+', '12', ')', '#']
+['SIOCAX25GETINFO', '(', 'SIOCPROTOPRIVATE', '+', '13', ')', '#']
+['SIOCAX25GETINFOOLD', '(', 'SIOCPROTOPRIVATE', '+', '9', ')', '#']
+['SIOCAX25GETPARMS', '(', 'SIOCPROTOPRIVATE', '+', '5', ')', '#']
+['SIOCAX25GETUID', '(', 'SIOCPROTOPRIVATE', ')', '#']
+['SIOCAX25NOUID', '(', 'SIOCPROTOPRIVATE', '+', '3', ')', '#']
+['SIOCAX25OPTRT', '(', 'SIOCPROTOPRIVATE', '+', '7', ')', '#']
+['SIOCAX25SETPARMS', '(', 'SIOCPROTOPRIVATE', '+', '6', ')', '#']
+['SIOCBONDCHANGEACTIVE', '0x8995', '/* update to a new active slave */']
+['SIOCBONDENSLAVE', '0x8990', '/* enslave a device to the bond */']
+['SIOCBONDINFOQUERY', '0x8994', '/* rtn info about bond state */']
+['SIOCBONDRELEASE', '0x8991', '/* release a slave from the bond*/']
+['SIOCBONDSETHWADDR', '0x8992', '/* set the hw addr of the bond */']
+['SIOCBONDSLAVEINFOQUERY', '0x8993', '/* rtn info about slave state */']
+['SIOCBRADDBR', '0x89a0', '/* create new bridge device */']
+['SIOCBRADDIF', '0x89a2', '/* add interface to bridge */']
+['SIOCBRDELBR', '0x89a1', '/* remove bridge device */']
+['SIOCBRDELIF', '0x89a3', '/* remove interface from bridge */']
+['SIOCDARP', '0x8953', '/* delete ARP table entry\t*/']
+['SIOCDELDLCI', '0x8981', '/* Delete DLCI device\t\t*/']
+['SIOCDELMULTI', '0x8932', '#']
+['SIOCDELRT', '0x890C', '/* delete routing table entry\t*/']
+['SIOCDEVPLIP', 'SIOCDEVPRIVATE', 'struct']
+['SIOCDEVPRIVATE', '0x89F0', '/* to 89FF */']
+['SIOCDIFADDR', '0x8936', '/* delete PA address\t\t*/']
+['SIOCDRARP', '0x8960', '/* delete RARP table entry\t*/']
+['SIOCETHTOOL', '0x8946', '/* Ethtool interface\t\t*/']
+['SIOCGARP', '0x8954', '/* get ARP table entry\t\t*/']
+['SIOCGBPQETHPARAM', '0x5000', '/* get Level 1 parameters */']
+['SIOCGCMFIRMWARE', '(', 'SIOCDEVPRIVATE', '+', '1', ')', '/* get cm firmware version */']
+['SIOCGCMFREQUENCY', '(', 'SIOCDEVPRIVATE', '+', '2', ')', '/* get cable modem frequency */']
+['SIOCGCMPIDS', '(', 'SIOCDEVPRIVATE', '+', '4', ')', '/* get cable modem PIDs */']
+['SIOCGCMSTATS', '(', 'SIOCDEVPRIVATE', '+', '0', ')', '/* get cable modem stats */']
+['SIOCGDEBSERINT', '(', 'SIOCDEVPRIVATE', '+', '2', ')', '#']
+['SIOCGDONGLE', '(', 'SIOCDEVPRIVATE', '+', '1', ')', '#']
+['SIOCGETLINKNAME', 'SIOCPROTOPRIVATE', 'struct']
+['SIOCGHWTSTAMP', '0x89b1', '/* get config\t\t\t*/']
+['SIOCGIFADDR', '0x8915', '/* get PA address\t\t*/']
+['SIOCGIFBR', '0x8940', '/* Bridging support\t\t*/']
+['SIOCGIFBRDADDR', '0x8919', '/* get broadcast PA address\t*/']
+['SIOCGIFCONF', '0x8912', '/* get iface list\t\t*/']
+['SIOCGIFCOUNT', '0x8938', '/* get number of devices */']
+['SIOCGIFDSTADDR', '0x8917', '/* get remote PA address\t*/']
+['SIOCGIFENCAP', '0x8925', '/* get/set encapsulations */']
+['SIOCGIFFLAGS', '0x8913', '/* get flags\t\t\t*/']
+['SIOCGIFHWADDR', '0x8927', '/* Get hardware address\t\t*/']
+['SIOCGIFINDEX', '0x8933', '/* name -> if_index mapping\t*/']
+['SIOCGIFMAP', '0x8970', '/* Get device parameters\t*/']
+['SIOCGIFMEM', '0x891f', '/* get memory address (BSD)\t*/']
+['SIOCGIFMETRIC', '0x891d', '/* get metric\t\t\t*/']
+['SIOCGIFMTU', '0x8921', '/* get MTU size\t\t\t*/']
+['SIOCGIFNAME', '0x8910', '/* get iface name\t\t*/']
+['SIOCGIFNETMASK', '0x891b', '/* get network PA mask\t\t*/']
+['SIOCGIFPFLAGS', '0x8935', '#']
+['SIOCGIFSLAVE', '0x8929', '/* Driver slaving support\t*/']
+['SIOCGIFTXQLEN', '0x8942', '/* Get the tx queue length\t*/']
+['SIOCGIFVLAN', '0x8982', '/* 802.1Q VLAN support\t\t*/']
+['SIOCGKEEPALIVE', '(', 'SIOCDEVPRIVATE', '+', '1', ')', '/* Get keepalive timeout */']
+['SIOCGKEEPPERIOD', '(', 'SIOCDEVPRIVATE', '+', '0', ')', '#']
+['SIOCGLEASE', '(', 'SIOCDEVPRIVATE', '+', '5', ')', '/* Get line type */']
+['SIOCGMEDIABUSY', '(', 'SIOCDEVPRIVATE', '+', '4', ')', '#']
+['SIOCGMIIPHY', '0x8947', '/* Get address of MII PHY in use. */']
+['SIOCGMIIREG', '0x8948', '/* Read MII PHY register.\t*/']
+['SIOCGMODE', '(', 'SIOCDEVPRIVATE', '+', '7', ')', '#']
+['SIOCGNETADDR', '_IOR', '(', 'DECNET_IOCTL_BASE', ',', '0xe1', ',', 'struct', 'dn_naddr', ')', '#']
+['SIOCGOUTFILL', '(', 'SIOCDEVPRIVATE', '+', '3', ')', '/* Get outfill timeout */']
+['SIOCGPGRP', '0x8904', '#']
+['SIOCGPPPCSTATS', '(', 'SIOCDEVPRIVATE', '+', '2', ')', '#']
+['SIOCGPPPSTATS', '(', 'SIOCDEVPRIVATE', '+', '0', ')', '#']
+['SIOCGPPPVER', '(', 'SIOCDEVPRIVATE', '+', '1', ')', '/* NEVER change this!! */']
+['SIOCGQOS', '(', 'SIOCDEVPRIVATE', '+', '9', ')', '/* No reason to include <linux/if.h> just because of this one ;-) */']
+['SIOCGRARP', '0x8961', '/* get RARP table entry\t\t*/']
+['SIOCGRECEIVING', '(', 'SIOCDEVPRIVATE', '+', '5', ')', '#']
+['SIOCGSTAMP', '0x8906', '/* Get stamp (timeval) */']
+['SIOCGSTAMPNS', '0x8907', '/* Get stamp (timespec) */']
+['SIOCINQ', 'FIONREAD', '#']
+['SIOCIPXCFGDATA', '(', 'SIOCPROTOPRIVATE', '+', '2', ')', '#']
+['SIOCIPXNCPCONN', '(', 'SIOCPROTOPRIVATE', '+', '3', ')', '#']
+['SIOCMKCLIP', '_IO', '(', "'a'", ',', 'ATMIOC_CLIP', ')', '/* create IP interface */']
+['SIOCNRCTLCON', '(', 'SIOCPROTOPRIVATE', '+', '4', ')', '/* NetRom parameter structure: */']
+['SIOCNRDECOBS', '(', 'SIOCPROTOPRIVATE', '+', '2', ')', '#']
+['SIOCNRGETPARMS', '(', 'SIOCPROTOPRIVATE', '+', '0', ')', '#']
+['SIOCNRRTCTL', '(', 'SIOCPROTOPRIVATE', '+', '3', ')', '#']
+['SIOCNRSETPARMS', '(', 'SIOCPROTOPRIVATE', '+', '1', ')', '#']
+['SIOCOUTQ', 'TIOCOUTQ', '/* output queue size (not sent + not acked) */']
+['SIOCOUTQNSD', '0x894B', '/* output queue size (not sent only) */']
+['SIOCPARM_MASK', '0x1fff', '#']
+['SIOCPROTOPRIVATE', '0x89E0', '/* to 89EF */']
+['SIOCRSACCEPT', '(', 'SIOCPROTOPRIVATE', '+', '3', ')', '#']
+['SIOCRSCLRRT', '(', 'SIOCPROTOPRIVATE', '+', '4', ')', '#']
+['SIOCRSGCAUSE', '(', 'SIOCPROTOPRIVATE', '+', '0', ')', '#']
+['SIOCRSGFACILITIES', '(', 'SIOCPROTOPRIVATE', '+', '6', ')', '#']
+['SIOCRSGL2CALL', '(', 'SIOCPROTOPRIVATE', '+', '5', ')', '#']
+['SIOCRSL2CALL', '(', 'SIOCPROTOPRIVATE', '+', '2', ')', '#']
+['SIOCRSSCAUSE', '(', 'SIOCPROTOPRIVATE', '+', '1', ')', '#']
+['SIOCRSSL2CALL', '(', 'SIOCPROTOPRIVATE', '+', '2', ')', '#']
+['SIOCRTMSG', '0x890D', '/* call to routing system\t*/']
+['SIOCSARP', '0x8955', '/* set ARP table entry\t\t*/']
+['SIOCSBANDWIDTH', '(', 'SIOCDEVPRIVATE', '+', '2', ')', '#']
+['SIOCSBPQETHADDR', '(', 'SIOCDEVPRIVATE', '+', '1', ')', 'struct']
+['SIOCSBPQETHOPT', '(', 'SIOCDEVPRIVATE', '+', '0', ')', '/* reserved */']
+['SIOCSBPQETHPARAM', '0x5001', '/* set */']
+['SIOCSCMFREQUENCY', '(', 'SIOCDEVPRIVATE', '+', '3', ')', '/* set cable modem frequency */']
+['SIOCSCMPIDS', '(', 'SIOCDEVPRIVATE', '+', '5', ')', '/* set cable modem PIDs */']
+['SIOCSDEBSERINT', '(', 'SIOCDEVPRIVATE', '+', '3', ')', '/* Packet encapsulations for net-interfaces */']
+['SIOCSDONGLE', '(', 'SIOCDEVPRIVATE', '+', '0', ')', '#']
+['SIOCSDTRRTS', '(', 'SIOCDEVPRIVATE', '+', '8', ')', '#']
+['SIOCSHWTSTAMP', '0x89b0', '/* set and get config\t\t*/']
+['SIOCSIFADDR', '0x8916', '/* set PA address\t\t*/']
+['SIOCSIFATMTCP', '_IO', '(', "'a'", ',', 'ATMIOC_ITF', ')', '/* set ATMTCP mode */']
+['SIOCSIFBR', '0x8941', '/* Set bridging options \t*/']
+['SIOCSIFBRDADDR', '0x891a', '/* set broadcast PA address\t*/']
+['SIOCSIFDSTADDR', '0x8918', '/* set remote PA address\t*/']
+['SIOCSIFENCAP', '0x8926', '#']
+['SIOCSIFFLAGS', '0x8914', '/* set flags\t\t\t*/']
+['SIOCSIFHWADDR', '0x8924', '/* set hardware address \t*/']
+['SIOCSIFHWBROADCAST', '0x8937', '/* set hardware broadcast addr\t*/']
+['SIOCSIFLINK', '0x8911', '/* set iface channel\t\t*/']
+['SIOCSIFMAP', '0x8971', '/* Set device parameters\t*/']
+['SIOCSIFMEM', '0x8920', '/* set memory address (BSD)\t*/']
+['SIOCSIFMETRIC', '0x891e', '/* set metric\t\t\t*/']
+['SIOCSIFMTU', '0x8922', '/* set MTU size\t\t\t*/']
+['SIOCSIFNAME', '0x8923', '/* set interface name */']
+['SIOCSIFNETMASK', '0x891c', '/* set network PA mask\t\t*/']
+['SIOCSIFPFLAGS', '0x8934', '/* set/get extended flags set\t*/']
+['SIOCSIFSLAVE', '0x8930', '#']
+['SIOCSIFTXQLEN', '0x8943', '/* Set the tx queue length \t*/']
+['SIOCSIFVLAN', '0x8983', '/* Set 802.1Q VLAN options \t*/']
+['SIOCSKEEPALIVE', '(', 'SIOCDEVPRIVATE', ')', '/* Set keepalive timeout in sec */']
+['SIOCSKEEPPERIOD', '(', 'SIOCDEVPRIVATE', '+', '1', ')', '#']
+['SIOCSLEASE', '(', 'SIOCDEVPRIVATE', '+', '4', ')', '/* Set "leased" line type */']
+['SIOCSMEDIABUSY', '(', 'SIOCDEVPRIVATE', '+', '3', ')', '#']
+['SIOCSMIIREG', '0x8949', '/* Write MII PHY register.\t*/']
+['SIOCSMODE', '(', 'SIOCDEVPRIVATE', '+', '6', ')', '#']
+['SIOCSNETADDR', '_IOW', '(', 'DECNET_IOCTL_BASE', ',', '0xe0', ',', 'struct', 'dn_naddr', ')', '#']
+['SIOCSOUTFILL', '(', 'SIOCDEVPRIVATE', '+', '2', ')', '/* Set outfill timeout */']
+['SIOCSPGRP', '0x8902', '#']
+['SIOCSRARP', '0x8962', '/* set RARP table entry\t\t*/']
+['SIOCWANDEV', '0x894A', '/* get/set netdev parameters\t*/']
+['SIOCX25CALLACCPTAPPRV', '(', 'SIOCPROTOPRIVATE', '+', '8', ')', '#']
+['SIOCX25GCALLUSERDATA', '(', 'SIOCPROTOPRIVATE', '+', '4', ')', '#']
+['SIOCX25GCAUSEDIAG', '(', 'SIOCPROTOPRIVATE', '+', '6', ')', '#']
+['SIOCX25GDTEFACILITIES', '(', 'SIOCPROTOPRIVATE', '+', '10', ')', '#']
+['SIOCX25GFACILITIES', '(', 'SIOCPROTOPRIVATE', '+', '2', ')', '#']
+['SIOCX25GSUBSCRIP', '(', 'SIOCPROTOPRIVATE', '+', '0', ')', '#']
+['SIOCX25SCALLUSERDATA', '(', 'SIOCPROTOPRIVATE', '+', '5', ')', '#']
+['SIOCX25SCAUSEDIAG', '(', 'SIOCPROTOPRIVATE', '+', '12', ')', '/*\n *\tValues for {get,set}sockopt.\n */']
+['SIOCX25SCUDMATCHLEN', '(', 'SIOCPROTOPRIVATE', '+', '7', ')', '#']
+['SIOCX25SDTEFACILITIES', '(', 'SIOCPROTOPRIVATE', '+', '11', ')', '#']
+['SIOCX25SENDCALLACCPT', '(', 'SIOCPROTOPRIVATE', '+', '9', ')', '#']
+['SIOCX25SFACILITIES', '(', 'SIOCPROTOPRIVATE', '+', '3', ')', '#']
+['SIOCX25SSUBSCRIP', '(', 'SIOCPROTOPRIVATE', '+', '1', ')', '#']
+['SNDRV_DM_FM_IOCTL_CLEAR_PATCHES', '_IO', '(', "'H'", ',', '0x40', ')', '#']
+['SNDRV_DM_FM_IOCTL_INFO', '_IOR', '(', "'H'", ',', '0x20', ',', 'struct', 'snd_dm_fm_info', ')', '#']
+['SNDRV_DM_FM_IOCTL_PLAY_NOTE', '_IOW', '(', "'H'", ',', '0x22', ',', 'struct', 'snd_dm_fm_note', ')', '#']
+['SNDRV_DM_FM_IOCTL_RESET', '_IO', '(', "'H'", ',', '0x21', ')', '#']
+['SNDRV_DM_FM_IOCTL_SET_CONNECTION', '_IOW', '(', "'H'", ',', '0x26', ',', 'int', ')', '/* SBI patch management */']
+['SNDRV_DM_FM_IOCTL_SET_MODE', '_IOW', '(', "'H'", ',', '0x25', ',', 'int', ')', '/* for OPL3 only */']
+['SNDRV_DM_FM_IOCTL_SET_PARAMS', '_IOW', '(', "'H'", ',', '0x24', ',', 'struct', 'snd_dm_fm_params', ')', '#']
+['SNDRV_DM_FM_IOCTL_SET_VOICE', '_IOW', '(', "'H'", ',', '0x23', ',', 'struct', 'snd_dm_fm_voice', ')', '#']
+['SNDRV_DM_FM_OSS_IOCTL_PLAY_NOTE', '0x21', '#']
+['SNDRV_DM_FM_OSS_IOCTL_RESET', '0x20', '#']
+['SNDRV_DM_FM_OSS_IOCTL_SET_MODE', '0x24', '#']
+['SNDRV_DM_FM_OSS_IOCTL_SET_OPL', '0x25', '/*\n * Patch Record - fixed size for write\n */']
+['SNDRV_DM_FM_OSS_IOCTL_SET_PARAMS', '0x23', '#']
+['SNDRV_DM_FM_OSS_IOCTL_SET_VOICE', '0x22', '#']
+['SNDRV_EMU10K1_IOCTL_CODE_PEEK', '_IOWR', '(', "'H'", ',', '0x12', ',', 'emu10k1_fx8010_code_t', ')', '#']
+['SNDRV_EMU10K1_IOCTL_CODE_POKE', '_IOW', '(', "'H'", ',', '0x11', ',', 'emu10k1_fx8010_code_t', ')', '#']
+['SNDRV_EMU10K1_IOCTL_CONTINUE', '_IO', '(', "'H'", ',', '0x81', ')', '#']
+['SNDRV_EMU10K1_IOCTL_DBG_READ', '_IOR', '(', "'H'", ',', '0x84', ',', 'int', ')', '#']
+['SNDRV_EMU10K1_IOCTL_INFO', '_IOR', '(', "'H'", ',', '0x10', ',', 'emu10k1_fx8010_info_t', ')', '#']
+['SNDRV_EMU10K1_IOCTL_PCM_PEEK', '_IOWR', '(', "'H'", ',', '0x31', ',', 'emu10k1_fx8010_pcm_t', ')', '#']
+['SNDRV_EMU10K1_IOCTL_PCM_POKE', '_IOW', '(', "'H'", ',', '0x30', ',', 'emu10k1_fx8010_pcm_t', ')', '#']
+['SNDRV_EMU10K1_IOCTL_PVERSION', '_IOR', '(', "'H'", ',', '0x40', ',', 'int', ')', '#']
+['SNDRV_EMU10K1_IOCTL_SINGLE_STEP', '_IOW', '(', "'H'", ',', '0x83', ',', 'int', ')', '#']
+['SNDRV_EMU10K1_IOCTL_STOP', '_IO', '(', "'H'", ',', '0x80', ')', '#']
+['SNDRV_EMU10K1_IOCTL_TRAM_PEEK', '_IOWR', '(', "'H'", ',', '0x22', ',', 'emu10k1_fx8010_tram_t', ')', '#']
+['SNDRV_EMU10K1_IOCTL_TRAM_POKE', '_IOW', '(', "'H'", ',', '0x21', ',', 'emu10k1_fx8010_tram_t', ')', '#']
+['SNDRV_EMU10K1_IOCTL_TRAM_SETUP', '_IOW', '(', "'H'", ',', '0x20', ',', 'int', ')', '#']
+['SNDRV_EMU10K1_IOCTL_ZERO_TRAM_COUNTER', '_IO', '(', "'H'", ',', '0x82', ')', '#']
+['SNDRV_FIREWIRE_IOCTL_GET_INFO', '_IOR', '(', "'H'", ',', '0xf8', ',', 'struct', 'snd_firewire_get_info', ')', '#']
+['SNDRV_FIREWIRE_IOCTL_LOCK', '_IO', '(', "'H'", ',', '0xf9', ')', '#']
+['SNDRV_FIREWIRE_IOCTL_UNLOCK', '_IO', '(', "'H'", ',', '0xfa', ')', '#']
+['SNDRV_HDSP_IOCTL_GET_9632_AEB', '_IOR', '(', "'H'", ',', '0x45', ',', 'hdsp_9632_aeb_t', ')', '#']
+['SNDRV_HDSP_IOCTL_GET_9632_AEB', '_IOR', '(', "'H'", ',', '0x45', ',', 'struct', 'hdsp_9632_aeb', ')', '/* typedefs for compatibility to user-space */']
+['SNDRV_HDSP_IOCTL_GET_CONFIG_INFO', '_IOR', '(', "'H'", ',', '0x41', ',', 'hdsp_config_info_t', ')', 'typedef']
+['SNDRV_HDSP_IOCTL_GET_CONFIG_INFO', '_IOR', '(', "'H'", ',', '0x41', ',', 'struct', 'hdsp_config_info', ')', 'struct']
+['SNDRV_HDSP_IOCTL_GET_MIXER', '_IOR', '(', "'H'", ',', '0x44', ',', 'hdsp_mixer_t', ')', 'typedef']
+['SNDRV_HDSP_IOCTL_GET_MIXER', '_IOR', '(', "'H'", ',', '0x44', ',', 'struct', 'hdsp_mixer', ')', 'struct']
+['SNDRV_HDSP_IOCTL_GET_PEAK_RMS', '_IOR', '(', "'H'", ',', '0x40', ',', 'hdsp_peak_rms_t', ')', 'typedef']
+['SNDRV_HDSP_IOCTL_GET_PEAK_RMS', '_IOR', '(', "'H'", ',', '0x40', ',', 'struct', 'hdsp_peak_rms', ')', 'struct']
+['SNDRV_HDSP_IOCTL_GET_VERSION', '_IOR', '(', "'H'", ',', '0x43', ',', 'hdsp_version_t', ')', 'typedef']
+['SNDRV_HDSP_IOCTL_GET_VERSION', '_IOR', '(', "'H'", ',', '0x43', ',', 'struct', 'hdsp_version', ')', 'struct']
+['SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE', '_IOW', '(', "'H'", ',', '0x42', ',', 'hdsp_firmware_t', ')', 'typedef']
+['SNDRV_HDSP_IOCTL_UPLOAD_FIRMWARE', '_IOW', '(', "'H'", ',', '0x42', ',', 'struct', 'hdsp_firmware', ')', 'struct']
+['SNDRV_SB_CSP_IOCTL_INFO', '_IOR', '(', "'H'", ',', '0x10', ',', 'snd_sb_csp_info_t', ')', '/* load microcode to CSP */']
+['SNDRV_SB_CSP_IOCTL_INFO', '_IOR', '(', "'H'", ',', '0x10', ',', 'struct', 'snd_sb_csp_info', ')', '/* load microcode to CSP */']
+['SNDRV_SB_CSP_IOCTL_LOAD_CODE', '_IOC', '(', '_IOC_WRITE', ',', "'H'", ',', '0x11', ',', 'sizeof', '(', 'struct', 'snd_sb_csp_microcode', ')', ')', '/* unload microcode from CSP */']
+['SNDRV_SB_CSP_IOCTL_LOAD_CODE', '_IOW', '(', "'H'", ',', '0x11', ',', 'snd_sb_csp_microcode_t', ')', '/* unload microcode from CSP */']
+['SNDRV_SB_CSP_IOCTL_PAUSE', '_IO', '(', "'H'", ',', '0x15', ')', '/* restart CSP and DMA transfer */']
+['SNDRV_SB_CSP_IOCTL_RESTART', '_IO', '(', "'H'", ',', '0x16', ')', '#']
+['SNDRV_SB_CSP_IOCTL_START', '_IOW', '(', "'H'", ',', '0x13', ',', 'snd_sb_csp_start_t', ')', '/* stop CSP */']
+['SNDRV_SB_CSP_IOCTL_START', '_IOW', '(', "'H'", ',', '0x13', ',', 'struct', 'snd_sb_csp_start', ')', '/* stop CSP */']
+['SNDRV_SB_CSP_IOCTL_STOP', '_IO', '(', "'H'", ',', '0x14', ')', '/* pause CSP and DMA transfer */']
+['SNDRV_SB_CSP_IOCTL_UNLOAD_CODE', '_IO', '(', "'H'", ',', '0x12', ')', '/* start CSP */']
+['SONYPI_IOCGBAT1CAP', '_IOR', '(', "'v'", ',', '2', ',', '__u16', ')', '#']
+['SONYPI_IOCGBAT1REM', '_IOR', '(', "'v'", ',', '3', ',', '__u16', ')', '#']
+['SONYPI_IOCGBAT2CAP', '_IOR', '(', "'v'", ',', '4', ',', '__u16', ')', '#']
+['SONYPI_IOCGBAT2REM', '_IOR', '(', "'v'", ',', '5', ',', '__u16', ')', '/* get battery flags: battery1/battery2/ac adapter present */']
+['SONYPI_IOCGBATFLAGS', '_IOR', '(', "'v'", ',', '7', ',', '__u8', ')', '/* get/set bluetooth subsystem state on/off */']
+['SONYPI_IOCGBLUE', '_IOR', '(', "'v'", ',', '8', ',', '__u8', ')', '#']
+['SONYPI_IOCGBRT', '_IOR', '(', "'v'", ',', '0', ',', '__u8', ')', '#']
+['SONYPI_IOCGFAN', '_IOR', '(', "'v'", ',', '10', ',', '__u8', ')', '#']
+['SONYPI_IOCGTEMP', '_IOR', '(', "'v'", ',', '12', ',', '__u8', ')', '#']
+['SONYPI_IOCSBLUE', '_IOW', '(', "'v'", ',', '9', ',', '__u8', ')', '/* get/set fan state on/off */']
+['SONYPI_IOCSBRT', '_IOW', '(', "'v'", ',', '0', ',', '__u8', ')', '/* get battery full capacity/remaining capacity */']
+['SONYPI_IOCSFAN', '_IOW', '(', "'v'", ',', '11', ',', '__u8', ')', '/* get temperature (C) */']
+['SPIOCSTYPE', '_IOW', '(', "'q'", ',', '0x01', ',', 'unsigned', 'long', ')', '/*\n * bit masks for use in "interrupt" flags (3rd argument)\n */']
+['SPI_IOC_MESSAGE', '(', 'N', ')', '_IOW', '(', 'SPI_IOC_MAGIC', ',', '0', ',', 'char', '[', 'SPI_MSGSIZE', '(', 'N', ')', ']', ')', '/* Read / Write of SPI mode (SPI_MODE_0..SPI_MODE_3) (limited to 8 bits) */']
+['SPI_IOC_RD_BITS_PER_WORD', '_IOR', '(', 'SPI_IOC_MAGIC', ',', '3', ',', '__u8', ')', '#']
+['SPI_IOC_RD_LSB_FIRST', '_IOR', '(', 'SPI_IOC_MAGIC', ',', '2', ',', '__u8', ')', '#']
+['SPI_IOC_RD_MAX_SPEED_HZ', '_IOR', '(', 'SPI_IOC_MAGIC', ',', '4', ',', '__u32', ')', '#']
+['SPI_IOC_RD_MODE', '_IOR', '(', 'SPI_IOC_MAGIC', ',', '1', ',', '__u8', ')', '#']
+['SPI_IOC_RD_MODE32', '_IOR', '(', 'SPI_IOC_MAGIC', ',', '5', ',', '__u32', ')', '#']
+['SPI_IOC_WR_BITS_PER_WORD', '_IOW', '(', 'SPI_IOC_MAGIC', ',', '3', ',', '__u8', ')', '/* Read / Write SPI device default max speed hz */']
+['SPI_IOC_WR_LSB_FIRST', '_IOW', '(', 'SPI_IOC_MAGIC', ',', '2', ',', '__u8', ')', '/* Read / Write SPI device word length (1..N) */']
+['SPI_IOC_WR_MAX_SPEED_HZ', '_IOW', '(', 'SPI_IOC_MAGIC', ',', '4', ',', '__u32', ')', '/* Read / Write of the SPI mode field */']
+['SPI_IOC_WR_MODE', '_IOW', '(', 'SPI_IOC_MAGIC', ',', '1', ',', '__u8', ')', '/* Read / Write SPI bit justification */']
+['SPI_IOC_WR_MODE32', '_IOW', '(', 'SPI_IOC_MAGIC', ',', '5', ',', '__u32', ')', '#']
+['SYS_F_IOCTLSOCKET', '5', '#']
+['TIOCCBRK', '0x5428', '/* BSD compatibility */']
+['TIOCCONS', '0x541D', '#']
+['TIOCEXCL', '0x540C', '#']
+['TIOCGDEV', '_IOR', '(', "'T'", ',', '0x32', ',', 'unsigned', 'int', ')', '/* Get primary device node of /dev/console */']
+['TIOCGETD', '0x5424', '#']
+['TIOCGEXCL', '_IOR', '(', "'T'", ',', '0x40', ',', 'int', ')', '/* Get exclusive mode state */']
+['TIOCGICOUNT', '0x545D', '/* read serial port __inline__ interrupt counts */']
+['TIOCGLCKTRMIOS', '0x5456', '#']
+['TIOCGPGRP', '0x540F', '#']
+['TIOCGPKT', '_IOR', '(', "'T'", ',', '0x38', ',', 'int', ')', '/* Get packet mode state */']
+['TIOCGPTLCK', '_IOR', '(', "'T'", ',', '0x39', ',', 'int', ')', '/* Get Pty lock state */']
+['TIOCGPTN', '_IOR', '(', "'T'", ',', '0x30', ',', 'unsigned', 'int', ')', '/* Get Pty Number (of pty-mux device) */']
+['TIOCGRS485', '0x542E', '#']
+['TIOCGSERIAL', '0x541E', '#']
+['TIOCGSID', '0x5429', '/* Return the session ID of FD */']
+['TIOCGSOFTCAR', '0x5419', '#']
+['TIOCGWINSZ', '0x5413', '#']
+['TIOCINQ', 'FIONREAD', '#']
+['TIOCLINUX', '0x541C', '#']
+['TIOCL_BLANKEDSCREEN', '15', '/* return which vt was blanked */']
+['TIOCL_BLANKSCREEN', '14', '/* keep screen blank even if a key is pressed */']
+['TIOCL_GETFGCONSOLE', '12', '/* get foreground vt */']
+['TIOCL_GETKMSGREDIRECT', '17', '/* get the vt the kernel messages are restricted to */']
+['TIOCL_GETMOUSEREPORTING', '7', '/* write whether mouse event are reported */']
+['TIOCL_GETSHIFTSTATE', '6', '/* write shift state */']
+['TIOCL_PASTESEL', '3', '/* paste previous selection */']
+['TIOCL_SCROLLCONSOLE', '13', '/* scroll console */']
+['TIOCL_SELBUTTONMASK', '15', '/* button mask for report */']
+['TIOCL_SELCHAR', '0', '/* select characters */']
+['TIOCL_SELCLEAR', '4', '/* clear visibility of selection */']
+['TIOCL_SELLINE', '2', '/* select whole lines */']
+['TIOCL_SELLOADLUT', '5', '/* set characters to be considered alphabetic when selecting */']
+['TIOCL_SELMOUSEREPORT', '16', '/* report beginning of selection */']
+['TIOCL_SELPOINTER', '3', '/* show the pointer */']
+['TIOCL_SELWORD', '1', '/* select whole words */']
+['TIOCL_SETKMSGREDIRECT', '11', '/* restrict kernel messages to a vt */']
+['TIOCL_SETSEL', '2', '/* set a selection */']
+['TIOCL_SETVESABLANK', '10', '/* set vesa blanking mode */']
+['TIOCL_UNBLANKSCREEN', '4', '/* unblank screen */']
+['TIOCMBIC', '0x5417', '#']
+['TIOCMBIS', '0x5416', '#']
+['TIOCMGET', '0x5415', '#']
+['TIOCMIWAIT', '0x545C', '/* wait for a change on serial input line(s) */']
+['TIOCMSET', '0x5418', '#']
+['TIOCM_CAR', '0x040', '#']
+['TIOCM_CD', 'TIOCM_CAR', '#']
+['TIOCM_CTS', '0x020', '#']
+['TIOCM_DSR', '0x100', '#']
+['TIOCM_DTR', '0x002', '#']
+['TIOCM_LE', '0x001', '#']
+['TIOCM_LOOP', '0x8000', '/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */']
+['TIOCM_OUT1', '0x2000', '#']
+['TIOCM_OUT2', '0x4000', '#']
+['TIOCM_RI', 'TIOCM_RNG', '/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */']
+['TIOCM_RNG', '0x080', '#']
+['TIOCM_RTS', '0x004', '#']
+['TIOCM_SR', '0x010', '#']
+['TIOCM_ST', '0x008', '#']
+['TIOCNOTTY', '0x5422', '#']
+['TIOCNXCL', '0x540D', '#']
+['TIOCOUTQ', '0x5411', '#']
+['TIOCPKT', '0x5420', '#']
+['TIOCPKT_DATA', '0', '#']
+['TIOCPKT_DOSTOP', '32', '#']
+['TIOCPKT_FLUSHREAD', '1', '#']
+['TIOCPKT_FLUSHWRITE', '2', '#']
+['TIOCPKT_IOCTL', '64', '#']
+['TIOCPKT_NOSTOP', '16', '#']
+['TIOCPKT_START', '8', '#']
+['TIOCPKT_STOP', '4', '#']
+['TIOCSBRK', '0x5427', '/* BSD compatibility */']
+['TIOCSCTTY', '0x540E', '#']
+['TIOCSERCONFIG', '0x5453', '#']
+['TIOCSERGETLSR', '0x5459', '/* Get line status register */']
+['TIOCSERGETMULTI', '0x545A', '/* Get multiport config */']
+['TIOCSERGSTRUCT', '0x5458', '/* For debugging only */']
+['TIOCSERGWILD', '0x5454', '#']
+['TIOCSERSETMULTI', '0x545B', '/* Set multiport config */']
+['TIOCSERSWILD', '0x5455', '#']
+['TIOCSER_TEMT', '0x01', '/* Transmitter physically empty */']
+['TIOCSETD', '0x5423', '#']
+['TIOCSIG', '_IOW', '(', "'T'", ',', '0x36', ',', 'int', ')', '/* pty: generate signal */']
+['TIOCSLCKTRMIOS', '0x5457', '#']
+['TIOCSPGRP', '0x5410', '#']
+['TIOCSPTLCK', '_IOW', '(', "'T'", ',', '0x31', ',', 'int', ')', '/* Lock/unlock Pty */']
+['TIOCSRS485', '0x542F', '#']
+['TIOCSSERIAL', '0x541F', '#']
+['TIOCSSOFTCAR', '0x541A', '#']
+['TIOCSTI', '0x5412', '#']
+['TIOCSWINSZ', '0x5414', '#']
+['TIOCVHANGUP', '0x5437', '#']
+['UBI_IOCATT', '_IOW', '(', 'UBI_CTRL_IOC_MAGIC', ',', '64', ',', 'struct', 'ubi_attach_req', ')', '/* Detach an MTD device */']
+['UBI_IOCDET', '_IOW', '(', 'UBI_CTRL_IOC_MAGIC', ',', '65', ',', '__s32', ')', '/* ioctl commands of UBI volume character devices */']
+['UBI_IOCEBCH', '_IOW', '(', 'UBI_VOL_IOC_MAGIC', ',', '2', ',', '__s32', ')', '/* Map LEB command */']
+['UBI_IOCEBER', '_IOW', '(', 'UBI_VOL_IOC_MAGIC', ',', '1', ',', '__s32', ')', '/* Atomic LEB change command */']
+['UBI_IOCEBISMAP', '_IOR', '(', 'UBI_VOL_IOC_MAGIC', ',', '5', ',', '__s32', ')', '/* Set an UBI volume property */']
+['UBI_IOCEBMAP', '_IOW', '(', 'UBI_VOL_IOC_MAGIC', ',', '3', ',', 'struct', 'ubi_map_req', ')', '/* Unmap LEB command */']
+['UBI_IOCEBUNMAP', '_IOW', '(', 'UBI_VOL_IOC_MAGIC', ',', '4', ',', '__s32', ')', '/* Check if LEB is mapped command */']
+['UBI_IOCMKVOL', '_IOW', '(', 'UBI_IOC_MAGIC', ',', '0', ',', 'struct', 'ubi_mkvol_req', ')', '/* Remove an UBI volume */']
+['UBI_IOCRMVOL', '_IOW', '(', 'UBI_IOC_MAGIC', ',', '1', ',', '__s32', ')', '/* Re-size an UBI volume */']
+['UBI_IOCRNVOL', '_IOW', '(', 'UBI_IOC_MAGIC', ',', '3', ',', 'struct', 'ubi_rnvol_req', ')', '/* ioctl commands of the UBI control character device */']
+['UBI_IOCRSVOL', '_IOW', '(', 'UBI_IOC_MAGIC', ',', '2', ',', 'struct', 'ubi_rsvol_req', ')', '/* Re-name volumes */']
+['UBI_IOCSETVOLPROP', '_IOW', '(', 'UBI_VOL_IOC_MAGIC', ',', '6', ',', 'struct', 'ubi_set_vol_prop_req', ')', '/* Create a R/O block device on top of an UBI volume */']
+['UBI_IOCVOLCRBLK', '_IOW', '(', 'UBI_VOL_IOC_MAGIC', ',', '7', ',', 'struct', 'ubi_blkcreate_req', ')', '/* Remove the R/O block device */']
+['UBI_IOCVOLRMBLK', '_IO', '(', 'UBI_VOL_IOC_MAGIC', ',', '8', ')', '/* Maximum MTD device name length supported by UBI */']
+['UBI_IOCVOLUP', '_IOW', '(', 'UBI_VOL_IOC_MAGIC', ',', '0', ',', '__s64', ')', '/* LEB erasure command, used for debugging, disabled by default */']
+['USBDEVFS_IOCTL', '_IOWR', '(', "'U'", ',', '18', ',', 'struct', 'usbdevfs_ioctl', ')', '#']
+['USBDEVFS_IOCTL32', '_IOWR', '(', "'U'", ',', '18', ',', 'struct', 'usbdevfs_ioctl32', ')', '#']
+['USBTMC_IOCTL_ABORT_BULK_IN', '_IO', '(', 'USBTMC_IOC_NR', ',', '4', ')', '#']
+['USBTMC_IOCTL_ABORT_BULK_OUT', '_IO', '(', 'USBTMC_IOC_NR', ',', '3', ')', '#']
+['USBTMC_IOCTL_CLEAR', '_IO', '(', 'USBTMC_IOC_NR', ',', '2', ')', '#']
+['USBTMC_IOCTL_CLEAR_IN_HALT', '_IO', '(', 'USBTMC_IOC_NR', ',', '7', ')', '#']
+['USBTMC_IOCTL_CLEAR_OUT_HALT', '_IO', '(', 'USBTMC_IOC_NR', ',', '6', ')', '#']
+['USBTMC_IOCTL_INDICATOR_PULSE', '_IO', '(', 'USBTMC_IOC_NR', ',', '1', ')', '#']
+['UVCIOC_CTRL_MAP', '_IOWR', '(', "'u'", ',', '0x20', ',', 'struct', 'uvc_xu_control_mapping', ')', '#']
+['UVCIOC_CTRL_QUERY', '_IOWR', '(', "'u'", ',', '0x21', ',', 'struct', 'uvc_xu_control_query', ')', '#']
+['VFAT_IOCTL_READDIR_BOTH', '_IOR', '(', "'r'", ',', '1', ',', 'struct', '__fat_dirent', '[', '2', ']', ')', '#']
+['VFAT_IOCTL_READDIR_SHORT', '_IOR', '(', "'r'", ',', '2', ',', 'struct', '__fat_dirent', '[', '2', ']', ')', "/* <linux/videotext.h> has used 0x72 ('r') in collision, so skip a few */"]
+['VIDIOC_CREATE_BUFS', '_IOWR', '(', "'V'", ',', '92', ',', 'struct', 'v4l2_create_buffers', ')', '#']
+['VIDIOC_CROPCAP', '_IOWR', '(', "'V'", ',', '58', ',', 'struct', 'v4l2_cropcap', ')', '#']
+['VIDIOC_DBG_G_CHIP_INFO', '_IOWR', '(', "'V'", ',', '102', ',', 'struct', 'v4l2_dbg_chip_info', ')', '#']
+['VIDIOC_DBG_G_REGISTER', '_IOWR', '(', "'V'", ',', '80', ',', 'struct', 'v4l2_dbg_register', ')', '#']
+['VIDIOC_DBG_S_REGISTER', '_IOW', '(', "'V'", ',', '79', ',', 'struct', 'v4l2_dbg_register', ')', '#']
+['VIDIOC_DECODER_CMD', '_IOWR', '(', "'V'", ',', '96', ',', 'struct', 'v4l2_decoder_cmd', ')', '#']
+['VIDIOC_DQBUF', '_IOWR', '(', "'V'", ',', '17', ',', 'struct', 'v4l2_buffer', ')', '#']
+['VIDIOC_DQEVENT', '_IOR', '(', "'V'", ',', '89', ',', 'struct', 'v4l2_event', ')', '#']
+['VIDIOC_DV_TIMINGS_CAP', '_IOWR', '(', "'V'", ',', '100', ',', 'struct', 'v4l2_dv_timings_cap', ')', '/* Experimental, this ioctl may change over the next couple of kernel\n versions. */']
+['VIDIOC_ENCODER_CMD', '_IOWR', '(', "'V'", ',', '77', ',', 'struct', 'v4l2_encoder_cmd', ')', '#']
+['VIDIOC_ENUMAUDIO', '_IOWR', '(', "'V'", ',', '65', ',', 'struct', 'v4l2_audio', ')', '#']
+['VIDIOC_ENUMAUDOUT', '_IOWR', '(', "'V'", ',', '66', ',', 'struct', 'v4l2_audioout', ')', '#']
+['VIDIOC_ENUMINPUT', '_IOWR', '(', "'V'", ',', '26', ',', 'struct', 'v4l2_input', ')', '#']
+['VIDIOC_ENUMOUTPUT', '_IOWR', '(', "'V'", ',', '48', ',', 'struct', 'v4l2_output', ')', '#']
+['VIDIOC_ENUMSTD', '_IOWR', '(', "'V'", ',', '25', ',', 'struct', 'v4l2_standard', ')', '#']
+['VIDIOC_ENUM_DV_TIMINGS', '_IOWR', '(', "'V'", ',', '98', ',', 'struct', 'v4l2_enum_dv_timings', ')', '#']
+['VIDIOC_ENUM_FMT', '_IOWR', '(', "'V'", ',', '2', ',', 'struct', 'v4l2_fmtdesc', ')', '#']
+['VIDIOC_ENUM_FRAMEINTERVALS', '_IOWR', '(', "'V'", ',', '75', ',', 'struct', 'v4l2_frmivalenum', ')', '#']
+['VIDIOC_ENUM_FRAMESIZES', '_IOWR', '(', "'V'", ',', '74', ',', 'struct', 'v4l2_frmsizeenum', ')', '#']
+['VIDIOC_ENUM_FREQ_BANDS', '_IOWR', '(', "'V'", ',', '101', ',', 'struct', 'v4l2_frequency_band', ')', '/* Experimental, meant for debugging, testing and internal use.\n Never use these in applications! */']
+['VIDIOC_EXPBUF', '_IOWR', '(', "'V'", ',', '16', ',', 'struct', 'v4l2_exportbuffer', ')', '#']
+['VIDIOC_G_AUDIO', '_IOR', '(', "'V'", ',', '33', ',', 'struct', 'v4l2_audio', ')', '#']
+['VIDIOC_G_AUDOUT', '_IOR', '(', "'V'", ',', '49', ',', 'struct', 'v4l2_audioout', ')', '#']
+['VIDIOC_G_CROP', '_IOWR', '(', "'V'", ',', '59', ',', 'struct', 'v4l2_crop', ')', '#']
+['VIDIOC_G_CTRL', '_IOWR', '(', "'V'", ',', '27', ',', 'struct', 'v4l2_control', ')', '#']
+['VIDIOC_G_DV_TIMINGS', '_IOWR', '(', "'V'", ',', '88', ',', 'struct', 'v4l2_dv_timings', ')', '#']
+['VIDIOC_G_EDID', '_IOWR', '(', "'V'", ',', '40', ',', 'struct', 'v4l2_edid', ')', '#']
+['VIDIOC_G_ENC_INDEX', '_IOR', '(', "'V'", ',', '76', ',', 'struct', 'v4l2_enc_idx', ')', '#']
+['VIDIOC_G_EXT_CTRLS', '_IOWR', '(', "'V'", ',', '71', ',', 'struct', 'v4l2_ext_controls', ')', '#']
+['VIDIOC_G_FBUF', '_IOR', '(', "'V'", ',', '10', ',', 'struct', 'v4l2_framebuffer', ')', '#']
+['VIDIOC_G_FMT', '_IOWR', '(', "'V'", ',', '4', ',', 'struct', 'v4l2_format', ')', '#']
+['VIDIOC_G_FREQUENCY', '_IOWR', '(', "'V'", ',', '56', ',', 'struct', 'v4l2_frequency', ')', '#']
+['VIDIOC_G_INPUT', '_IOR', '(', "'V'", ',', '38', ',', 'int', ')', '#']
+['VIDIOC_G_JPEGCOMP', '_IOR', '(', "'V'", ',', '61', ',', 'struct', 'v4l2_jpegcompression', ')', '#']
+['VIDIOC_G_MODULATOR', '_IOWR', '(', "'V'", ',', '54', ',', 'struct', 'v4l2_modulator', ')', '#']
+['VIDIOC_G_OUTPUT', '_IOR', '(', "'V'", ',', '46', ',', 'int', ')', '#']
+['VIDIOC_G_PARM', '_IOWR', '(', "'V'", ',', '21', ',', 'struct', 'v4l2_streamparm', ')', '#']
+['VIDIOC_G_PRIORITY', '_IOR', '(', "'V'", ',', '67', ',', '__u32', ')', '/* enum v4l2_priority */']
+['VIDIOC_G_SELECTION', '_IOWR', '(', "'V'", ',', '94', ',', 'struct', 'v4l2_selection', ')', '#']
+['VIDIOC_G_SLICED_VBI_CAP', '_IOWR', '(', "'V'", ',', '69', ',', 'struct', 'v4l2_sliced_vbi_cap', ')', '#']
+['VIDIOC_G_STD', '_IOR', '(', "'V'", ',', '23', ',', 'v4l2_std_id', ')', '#']
+['VIDIOC_G_TUNER', '_IOWR', '(', "'V'", ',', '29', ',', 'struct', 'v4l2_tuner', ')', '#']
+['VIDIOC_LOG_STATUS', '_IO', '(', "'V'", ',', '70', ')', '#']
+['VIDIOC_OMAP3ISP_AEWB_CFG', '_IOWR', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '3', ',', 'struct', 'omap3isp_h3a_aewb_config', ')', '#']
+['VIDIOC_OMAP3ISP_AF_CFG', '_IOWR', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '5', ',', 'struct', 'omap3isp_h3a_af_config', ')', '#']
+['VIDIOC_OMAP3ISP_CCDC_CFG', '_IOWR', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '1', ',', 'struct', 'omap3isp_ccdc_update_config', ')', '#']
+['VIDIOC_OMAP3ISP_HIST_CFG', '_IOWR', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '4', ',', 'struct', 'omap3isp_hist_config', ')', '#']
+['VIDIOC_OMAP3ISP_PRV_CFG', '_IOWR', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '2', ',', 'struct', 'omap3isp_prev_update_config', ')', '#']
+['VIDIOC_OMAP3ISP_STAT_EN', '_IOWR', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '7', ',', 'unsigned', 'long', ')', '/*\n * Events\n *\n * V4L2_EVENT_OMAP3ISP_AEWB: AEWB statistics data ready\n * V4L2_EVENT_OMAP3ISP_AF: AF statistics data ready\n * V4L2_EVENT_OMAP3ISP_HIST: Histogram statistics data ready\n */']
+['VIDIOC_OMAP3ISP_STAT_REQ', '_IOWR', '(', "'V'", ',', 'BASE_VIDIOC_PRIVATE', '+', '6', ',', 'struct', 'omap3isp_stat_data', ')', '#']
+['VIDIOC_OVERLAY', '_IOW', '(', "'V'", ',', '14', ',', 'int', ')', '#']
+['VIDIOC_PREPARE_BUF', '_IOWR', '(', "'V'", ',', '93', ',', 'struct', 'v4l2_buffer', ')', '/* Experimental selection API */']
+['VIDIOC_QBUF', '_IOWR', '(', "'V'", ',', '15', ',', 'struct', 'v4l2_buffer', ')', '#']
+['VIDIOC_QUERYBUF', '_IOWR', '(', "'V'", ',', '9', ',', 'struct', 'v4l2_buffer', ')', '#']
+['VIDIOC_QUERYCAP', '_IOR', '(', "'V'", ',', '0', ',', 'struct', 'v4l2_capability', ')', '#']
+['VIDIOC_QUERYCTRL', '_IOWR', '(', "'V'", ',', '36', ',', 'struct', 'v4l2_queryctrl', ')', '#']
+['VIDIOC_QUERYMENU', '_IOWR', '(', "'V'", ',', '37', ',', 'struct', 'v4l2_querymenu', ')', '#']
+['VIDIOC_QUERYSTD', '_IOR', '(', "'V'", ',', '63', ',', 'v4l2_std_id', ')', '#']
+['VIDIOC_QUERY_DV_TIMINGS', '_IOR', '(', "'V'", ',', '99', ',', 'struct', 'v4l2_dv_timings', ')', '#']
+['VIDIOC_QUERY_EXT_CTRL', '_IOWR', '(', "'V'", ',', '103', ',', 'struct', 'v4l2_query_ext_ctrl', ')', '/* Reminder: when adding new ioctls please add support for them to\n drivers/media/video/v4l2-compat-ioctl32.c as well! */']
+['VIDIOC_REQBUFS', '_IOWR', '(', "'V'", ',', '8', ',', 'struct', 'v4l2_requestbuffers', ')', '#']
+['VIDIOC_RESERVED', '_IO', '(', "'V'", ',', '1', ')', '#']
+['VIDIOC_STREAMOFF', '_IOW', '(', "'V'", ',', '19', ',', 'int', ')', '#']
+['VIDIOC_STREAMON', '_IOW', '(', "'V'", ',', '18', ',', 'int', ')', '#']
+['VIDIOC_SUBDEV_DV_TIMINGS_CAP', '_IOWR', '(', "'V'", ',', '100', ',', 'struct', 'v4l2_dv_timings_cap', ')', '#']
+['VIDIOC_SUBDEV_ENUM_DV_TIMINGS', '_IOWR', '(', "'V'", ',', '98', ',', 'struct', 'v4l2_enum_dv_timings', ')', '#']
+['VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL', '_IOWR', '(', "'V'", ',', '75', ',', 'struct', 'v4l2_subdev_frame_interval_enum', ')', '#']
+['VIDIOC_SUBDEV_ENUM_FRAME_SIZE', '_IOWR', '(', "'V'", ',', '74', ',', 'struct', 'v4l2_subdev_frame_size_enum', ')', '#']
+['VIDIOC_SUBDEV_ENUM_MBUS_CODE', '_IOWR', '(', "'V'", ',', '2', ',', 'struct', 'v4l2_subdev_mbus_code_enum', ')', '#']
+['VIDIOC_SUBDEV_G_CROP', '_IOWR', '(', "'V'", ',', '59', ',', 'struct', 'v4l2_subdev_crop', ')', '#']
+['VIDIOC_SUBDEV_G_DV_TIMINGS', '_IOWR', '(', "'V'", ',', '88', ',', 'struct', 'v4l2_dv_timings', ')', '#']
+['VIDIOC_SUBDEV_G_EDID', '_IOWR', '(', "'V'", ',', '40', ',', 'struct', 'v4l2_edid', ')', '#']
+['VIDIOC_SUBDEV_G_FMT', '_IOWR', '(', "'V'", ',', '4', ',', 'struct', 'v4l2_subdev_format', ')', '#']
+['VIDIOC_SUBDEV_G_FRAME_INTERVAL', '_IOWR', '(', "'V'", ',', '21', ',', 'struct', 'v4l2_subdev_frame_interval', ')', '#']
+['VIDIOC_SUBDEV_G_SELECTION', '_IOWR', '(', "'V'", ',', '61', ',', 'struct', 'v4l2_subdev_selection', ')', '#']
+['VIDIOC_SUBDEV_QUERY_DV_TIMINGS', '_IOR', '(', "'V'", ',', '99', ',', 'struct', 'v4l2_dv_timings', ')', '#']
+['VIDIOC_SUBDEV_S_CROP', '_IOWR', '(', "'V'", ',', '60', ',', 'struct', 'v4l2_subdev_crop', ')', '#']
+['VIDIOC_SUBDEV_S_DV_TIMINGS', '_IOWR', '(', "'V'", ',', '87', ',', 'struct', 'v4l2_dv_timings', ')', '#']
+['VIDIOC_SUBDEV_S_EDID', '_IOWR', '(', "'V'", ',', '41', ',', 'struct', 'v4l2_edid', ')', '#']
+['VIDIOC_SUBDEV_S_FMT', '_IOWR', '(', "'V'", ',', '5', ',', 'struct', 'v4l2_subdev_format', ')', '#']
+['VIDIOC_SUBDEV_S_FRAME_INTERVAL', '_IOWR', '(', "'V'", ',', '22', ',', 'struct', 'v4l2_subdev_frame_interval', ')', '#']
+['VIDIOC_SUBDEV_S_SELECTION', '_IOWR', '(', "'V'", ',', '62', ',', 'struct', 'v4l2_subdev_selection', ')', '/* The following ioctls are identical to the ioctls in videodev2.h */']
+['VIDIOC_SUBSCRIBE_EVENT', '_IOW', '(', "'V'", ',', '90', ',', 'struct', 'v4l2_event_subscription', ')', '#']
+['VIDIOC_S_AUDIO', '_IOW', '(', "'V'", ',', '34', ',', 'struct', 'v4l2_audio', ')', '#']
+['VIDIOC_S_AUDOUT', '_IOW', '(', "'V'", ',', '50', ',', 'struct', 'v4l2_audioout', ')', '#']
+['VIDIOC_S_CROP', '_IOW', '(', "'V'", ',', '60', ',', 'struct', 'v4l2_crop', ')', '#']
+['VIDIOC_S_CTRL', '_IOWR', '(', "'V'", ',', '28', ',', 'struct', 'v4l2_control', ')', '#']
+['VIDIOC_S_DV_TIMINGS', '_IOWR', '(', "'V'", ',', '87', ',', 'struct', 'v4l2_dv_timings', ')', '#']
+['VIDIOC_S_EDID', '_IOWR', '(', "'V'", ',', '41', ',', 'struct', 'v4l2_edid', ')', '#']
+['VIDIOC_S_EXT_CTRLS', '_IOWR', '(', "'V'", ',', '72', ',', 'struct', 'v4l2_ext_controls', ')', '#']
+['VIDIOC_S_FBUF', '_IOW', '(', "'V'", ',', '11', ',', 'struct', 'v4l2_framebuffer', ')', '#']
+['VIDIOC_S_FMT', '_IOWR', '(', "'V'", ',', '5', ',', 'struct', 'v4l2_format', ')', '#']
+['VIDIOC_S_FREQUENCY', '_IOW', '(', "'V'", ',', '57', ',', 'struct', 'v4l2_frequency', ')', '#']
+['VIDIOC_S_HW_FREQ_SEEK', '_IOW', '(', "'V'", ',', '82', ',', 'struct', 'v4l2_hw_freq_seek', ')', '#']
+['VIDIOC_S_INPUT', '_IOWR', '(', "'V'", ',', '39', ',', 'int', ')', '#']
+['VIDIOC_S_JPEGCOMP', '_IOW', '(', "'V'", ',', '62', ',', 'struct', 'v4l2_jpegcompression', ')', '#']
+['VIDIOC_S_MODULATOR', '_IOW', '(', "'V'", ',', '55', ',', 'struct', 'v4l2_modulator', ')', '#']
+['VIDIOC_S_OUTPUT', '_IOWR', '(', "'V'", ',', '47', ',', 'int', ')', '#']
+['VIDIOC_S_PARM', '_IOWR', '(', "'V'", ',', '22', ',', 'struct', 'v4l2_streamparm', ')', '#']
+['VIDIOC_S_PRIORITY', '_IOW', '(', "'V'", ',', '68', ',', '__u32', ')', '/* enum v4l2_priority */']
+['VIDIOC_S_SELECTION', '_IOWR', '(', "'V'", ',', '95', ',', 'struct', 'v4l2_selection', ')', '/* Experimental, these two ioctls may change over the next couple of kernel\n versions. */']
+['VIDIOC_S_STD', '_IOW', '(', "'V'", ',', '24', ',', 'v4l2_std_id', ')', '#']
+['VIDIOC_S_TUNER', '_IOW', '(', "'V'", ',', '30', ',', 'struct', 'v4l2_tuner', ')', '#']
+['VIDIOC_TRY_DECODER_CMD', '_IOWR', '(', "'V'", ',', '97', ',', 'struct', 'v4l2_decoder_cmd', ')', '/* Experimental, these three ioctls may change over the next couple of kernel\n versions. */']
+['VIDIOC_TRY_ENCODER_CMD', '_IOWR', '(', "'V'", ',', '78', ',', 'struct', 'v4l2_encoder_cmd', ')', '/* Experimental, meant for debugging, testing and internal use.\n Only implemented if CONFIG_VIDEO_ADV_DEBUG is defined.\n You must be root to use these ioctls. Never use these in applications! */']
+['VIDIOC_TRY_EXT_CTRLS', '_IOWR', '(', "'V'", ',', '73', ',', 'struct', 'v4l2_ext_controls', ')', '#']
+['VIDIOC_TRY_FMT', '_IOWR', '(', "'V'", ',', '64', ',', 'struct', 'v4l2_format', ')', '#']
+['VIDIOC_UNSUBSCRIBE_EVENT', '_IOW', '(', "'V'", ',', '91', ',', 'struct', 'v4l2_event_subscription', ')', '/* Experimental, the below two ioctls may change over the next couple of kernel\n versions */']
+['WDIOC_GETBOOTSTATUS', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '2', ',', 'int', ')', '#']
+['WDIOC_GETPRETIMEOUT', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '9', ',', 'int', ')', '#']
+['WDIOC_GETSTATUS', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '1', ',', 'int', ')', '#']
+['WDIOC_GETSUPPORT', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '0', ',', 'struct', 'watchdog_info', ')', '#']
+['WDIOC_GETTEMP', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '3', ',', 'int', ')', '#']
+['WDIOC_GETTIMELEFT', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '10', ',', 'int', ')', '#']
+['WDIOC_GETTIMEOUT', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '7', ',', 'int', ')', '#']
+['WDIOC_KEEPALIVE', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '5', ',', 'int', ')', '#']
+['WDIOC_SETOPTIONS', '_IOR', '(', 'WATCHDOG_IOCTL_BASE', ',', '4', ',', 'int', ')', '#']
+['WDIOC_SETPRETIMEOUT', '_IOWR', '(', 'WATCHDOG_IOCTL_BASE', ',', '8', ',', 'int', ')', '#']
+['WDIOC_SETTIMEOUT', '_IOWR', '(', 'WATCHDOG_IOCTL_BASE', ',', '6', ',', 'int', ')', '#']
+['X86_IOC_RDMSR_REGS', '_IOWR', '(', "'c'", ',', '0xA0', ',', '__u32', '[', '8', ']', ')', '#']
+['X86_IOC_WRMSR_REGS', '_IOWR', '(', "'c'", ',', '0xA1', ',', '__u32', '[', '8', ']', ')', '#']
+['XFS_IOC_ALLOCSP', '_IOW', '(', "'X'", ',', '10', ',', 'struct', 'xfs_flock64', ')', '#']
+['XFS_IOC_ALLOCSP64', '_IOW', '(', "'X'", ',', '36', ',', 'struct', 'xfs_flock64', ')', '#']
+['XFS_IOC_ATTRLIST_BY_HANDLE', '_IOW', '(', "'X'", ',', '122', ',', 'struct', 'xfs_fsop_attrlist_handlereq', ')', '#']
+['XFS_IOC_ATTRMULTI_BY_HANDLE', '_IOW', '(', "'X'", ',', '123', ',', 'struct', 'xfs_fsop_attrmulti_handlereq', ')', '#']
+['XFS_IOC_DIOINFO', '_IOR', '(', "'X'", ',', '30', ',', 'struct', 'dioattr', ')', '#']
+['XFS_IOC_ERROR_CLEARALL', '_IOW', '(', "'X'", ',', '117', ',', 'struct', 'xfs_error_injection', ')', '/*\tXFS_IOC_ATTRCTL_BY_HANDLE -- deprecated 118\t */']
+['XFS_IOC_ERROR_INJECTION', '_IOW', '(', "'X'", ',', '116', ',', 'struct', 'xfs_error_injection', ')', '#']
+['XFS_IOC_FD_TO_HANDLE', '_IOWR', '(', "'X'", ',', '106', ',', 'struct', 'xfs_fsop_handlereq', ')', '#']
+['XFS_IOC_FREESP', '_IOW', '(', "'X'", ',', '11', ',', 'struct', 'xfs_flock64', ')', '#']
+['XFS_IOC_FREESP64', '_IOW', '(', "'X'", ',', '37', ',', 'struct', 'xfs_flock64', ')', '#']
+['XFS_IOC_FREEZE', '_IOWR', '(', "'X'", ',', '119', ',', 'int', ')', '#']
+['XFS_IOC_FREE_EOFBLOCKS', '_IOR', '(', "'X'", ',', '58', ',', 'struct', 'xfs_fs_eofblocks', ')', "/*\n * ioctl commands that replace IRIX syssgi()'s\n */"]
+['XFS_IOC_FSBULKSTAT', '_IOWR', '(', "'X'", ',', '101', ',', 'struct', 'xfs_fsop_bulkreq', ')', '#']
+['XFS_IOC_FSBULKSTAT_SINGLE', '_IOWR', '(', "'X'", ',', '102', ',', 'struct', 'xfs_fsop_bulkreq', ')', '#']
+['XFS_IOC_FSCOUNTS', '_IOR', '(', "'X'", ',', '113', ',', 'struct', 'xfs_fsop_counts', ')', '#']
+['XFS_IOC_FSGEOMETRY', '_IOR', '(', "'X'", ',', '124', ',', 'struct', 'xfs_fsop_geom', ')', '#']
+['XFS_IOC_FSGEOMETRY_V1', '_IOR', '(', "'X'", ',', '100', ',', 'struct', 'xfs_fsop_geom_v1', ')', '#']
+['XFS_IOC_FSGETXATTR', '_IOR', '(', "'X'", ',', '31', ',', 'struct', 'fsxattr', ')', '#']
+['XFS_IOC_FSGETXATTRA', '_IOR', '(', "'X'", ',', '45', ',', 'struct', 'fsxattr', ')', '/*\tXFS_IOC_SETBIOSIZE ---- deprecated 46\t */']
+['XFS_IOC_FSGROWFSDATA', '_IOW', '(', "'X'", ',', '110', ',', 'struct', 'xfs_growfs_data', ')', '#']
+['XFS_IOC_FSGROWFSLOG', '_IOW', '(', "'X'", ',', '111', ',', 'struct', 'xfs_growfs_log', ')', '#']
+['XFS_IOC_FSGROWFSRT', '_IOW', '(', "'X'", ',', '112', ',', 'struct', 'xfs_growfs_rt', ')', '#']
+['XFS_IOC_FSINUMBERS', '_IOWR', '(', "'X'", ',', '103', ',', 'struct', 'xfs_fsop_bulkreq', ')', '#']
+['XFS_IOC_FSSETDM', '_IOW', '(', "'X'", ',', '39', ',', 'struct', 'fsdmidata', ')', '#']
+['XFS_IOC_FSSETDM_BY_HANDLE', '_IOW', '(', "'X'", ',', '121', ',', 'struct', 'xfs_fsop_setdm_handlereq', ')', '#']
+['XFS_IOC_FSSETXATTR', '_IOW', '(', "'X'", ',', '32', ',', 'struct', 'fsxattr', ')', '#']
+['XFS_IOC_GETBMAP', '_IOWR', '(', "'X'", ',', '38', ',', 'struct', 'getbmap', ')', '#']
+['XFS_IOC_GETBMAPA', '_IOWR', '(', "'X'", ',', '44', ',', 'struct', 'getbmap', ')', '#']
+['XFS_IOC_GETBMAPX', '_IOWR', '(', "'X'", ',', '56', ',', 'struct', 'getbmap', ')', '#']
+['XFS_IOC_GETVERSION', '_IOR', '(', "'v'", ',', '1', ',', 'long', ')', '#']
+['XFS_IOC_GETXFLAGS', '_IOR', '(', "'f'", ',', '1', ',', 'long', ')', '#']
+['XFS_IOC_GET_RESBLKS', '_IOR', '(', "'X'", ',', '115', ',', 'struct', 'xfs_fsop_resblks', ')', '#']
+['XFS_IOC_GOINGDOWN', '_IOR', '(', "'X'", ',', '125', ',', '__uint32_t', ')', '/*\tXFS_IOC_GETFSUUID ---------- deprecated 140\t */']
+['XFS_IOC_OPEN_BY_HANDLE', '_IOWR', '(', "'X'", ',', '107', ',', 'struct', 'xfs_fsop_handlereq', ')', '#']
+['XFS_IOC_PATH_TO_FSHANDLE', '_IOWR', '(', "'X'", ',', '104', ',', 'struct', 'xfs_fsop_handlereq', ')', '#']
+['XFS_IOC_PATH_TO_HANDLE', '_IOWR', '(', "'X'", ',', '105', ',', 'struct', 'xfs_fsop_handlereq', ')', '#']
+['XFS_IOC_READLINK_BY_HANDLE', '_IOWR', '(', "'X'", ',', '108', ',', 'struct', 'xfs_fsop_handlereq', ')', '#']
+['XFS_IOC_RESVSP', '_IOW', '(', "'X'", ',', '40', ',', 'struct', 'xfs_flock64', ')', '#']
+['XFS_IOC_RESVSP64', '_IOW', '(', "'X'", ',', '42', ',', 'struct', 'xfs_flock64', ')', '#']
+['XFS_IOC_SETXFLAGS', '_IOW', '(', "'f'", ',', '2', ',', 'long', ')', '#']
+['XFS_IOC_SET_RESBLKS', '_IOWR', '(', "'X'", ',', '114', ',', 'struct', 'xfs_fsop_resblks', ')', '#']
+['XFS_IOC_SWAPEXT', '_IOWR', '(', "'X'", ',', '109', ',', 'struct', 'xfs_swapext', ')', '#']
+['XFS_IOC_THAW', '_IOWR', '(', "'X'", ',', '120', ',', 'int', ')', '#']
+['XFS_IOC_UNRESVSP', '_IOW', '(', "'X'", ',', '41', ',', 'struct', 'xfs_flock64', ')', '#']
+['XFS_IOC_UNRESVSP64', '_IOW', '(', "'X'", ',', '43', ',', 'struct', 'xfs_flock64', ')', '#']
+['XFS_IOC_ZERO_RANGE', '_IOW', '(', "'X'", ',', '57', ',', 'struct', 'xfs_flock64', ')', '#']
+['FIOCLEX', '0x5451', '#']
diff --git a/src/sys/ioctl/etc/x86_64/manually_found b/src/sys/ioctl/etc/x86_64/manually_found
new file mode 100644
index 00000000..5865f4f3
--- /dev/null
+++ b/src/sys/ioctl/etc/x86_64/manually_found
@@ -0,0 +1,5 @@
+['CZ_NBOARDS', '(', 'CZIOC', '|', '0xfa', ')', '#']
+['CZ_BOOT_START', '(', 'CZIOC', '|', '0xfb', ')', '#']
+['CZ_BOOT_DATA', '(', 'CZIOC', '|', '0xfc', ')', '#']
+['CZ_BOOT_END', '(', 'CZIOC', '|', '0xfd', ')', '#']
+['CZ_TEST', '(', 'CZIOC', '|', '0xfe', ')', '#']