aboutsummaryrefslogtreecommitdiffstats
path: root/sys/sys.txt
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2015-12-28 16:11:15 +0100
committerDmitry Vyukov <dvyukov@google.com>2015-12-28 16:11:15 +0100
commitbd768c8f40f84598cf2c92a7b0f5a54ff7b53153 (patch)
treeaeaa10bfd08bd852077baad32ccf401183665dfe /sys/sys.txt
parent0451ffa50aaf44ea28bfe729c6080b6ec97f7bb5 (diff)
sys: move more subsystems into separate files
Diffstat (limited to 'sys/sys.txt')
-rw-r--r--sys/sys.txt1270
1 files changed, 3 insertions, 1267 deletions
diff --git a/sys/sys.txt b/sys/sys.txt
index bdd0f0f05..778c663cf 100644
--- a/sys/sys.txt
+++ b/sys/sys.txt
@@ -1,3 +1,6 @@
+# Copyright 2015 syzkaller project authors. All rights reserved.
+# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
+
# Description of syscall arguments.
# A syscall is described as:
@@ -179,69 +182,6 @@ set_robust_list(head ptr[in, robust_list], len len[head])
get_robust_list(pid pid, head ptr[in, ptr[out, robust_list]], len ptr[inout, len[head, intptr]])
restart_syscall()
-socket(domain flags[socket_domain], type flags[socket_type], proto int8) fd[sock]
-socketpair(domain flags[socket_domain], type flags[socket_type], proto int8, fds ptr[out, pipefd])
-accept(fd fd[sock], peer ptr[out, sockaddr, opt], peerlen ptr[inout, len[peer, int32]]) fd[sock]
-accept4(fd fd[sock], peer ptr[out, sockaddr, opt], peerlen ptr[inout, len[peer, int32]], flags flags[accept_flags]) fd[sock]
-# TODO: must not bind to port 0, that will result in a random port which is not reproducible
-bind(fd fd[sock], addr ptr[in, sockaddr], addrlen len[addr])
-listen(fd fd[sock], backlog int32)
-connect(fd fd[sock], addr ptr[in, sockaddr], addrlen len[addr])
-shutdown(fd fd[sock], how flags[shutdown_flags])
-sendto(fd fd[sock], buf buffer[in], len len[buf], f flags[send_flags], addr ptr[in, sockaddr, opt], addrlen len[addr])
-sendmsg(fd fd[sock], msg ptr[in, send_msghdr], f flags[send_flags])
-sendmmsg(fd fd[sock], mmsg ptr[in, array[send_msghdr]], vlen len[mmsg], f flags[send_flags])
-recvfrom(fd fd[sock], buf buffer[out], len len[buf], f flags[recv_flags], addr ptr[in, sockaddr, opt], addrlen len[addr])
-recvmsg(fd fd[sock], msg ptr[in, recv_msghdr], f flags[recv_flags])
-recvmmsg(fd fd[sock], mmsg ptr[in, array[recv_msghdr]], vlen len[mmsg], f flags[recv_flags])
-getsockname(fd fd[sock], addr ptr[out, sockaddr], addrlen ptr[inout, len[addr, int32]])
-getpeername(fd fd[sock], peer ptr[out, sockaddr], peerlen ptr[inout, len[peer, int32]])
-getsockopt(fd fd[sock], level int32, optname int32, optval ptr[out, ioctl_arg], optlen ptr[inout, len[optval, int32]])
-setsockopt(fd fd[sock], level int32, optname int32, optval ptr[in, ioctl_arg], optlen len[optval])
-getsockopt$sock_int(fd fd[sock], level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$sock_int(fd fd[sock], level const[SOL_SOCKET], optname flags[sockopt_opt_sock_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$sock_str(fd fd[sock], level const[SOL_SOCKET], optname const[SO_BINDTODEVICE], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$sock_str(fd fd[sock], level const[SOL_SOCKET], optname const[SO_BINDTODEVICE], optval string, optlen len[optval])
-getsockopt$sock_linger(fd fd[sock], level const[SOL_SOCKET], optname const[SO_LINGER], optval ptr[out, linger], optlen ptr[inout, len[optval, int32]])
-setsockopt$sock_linger(fd fd[sock], level const[SOL_SOCKET], optname const[SO_LINGER], optval ptr[in, linger], optlen len[optval])
-getsockopt$sock_cred(fd fd[sock], level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[out, ucred], optlen ptr[inout, len[optval, int32]])
-setsockopt$sock_cred(fd fd[sock], level const[SOL_SOCKET], optname const[SO_PEERCRED], optval ptr[in, ucred], optlen len[optval])
-getsockopt$sock_timeval(fd fd[sock], level const[SOL_SOCKET], optname flags[sockopt_opt_sock_timeval], optval ptr[out, timeval], optlen ptr[inout, len[optval, int32]])
-setsockopt$sock_timeval(fd fd[sock], level const[SOL_SOCKET], optname flags[sockopt_opt_sock_timeval], optval ptr[in, timeval], optlen len[optval])
-setsockopt$sock_attach_bpf(fd fd[sock], level const[SOL_SOCKET], optname const[SO_ATTACH_BPF], optval ptr[in, fd[bpf_prog]], optlen len[optval])
-getsockopt$tcp_int(fd fd[sock], level const[IPPROTO_TCP], optname flags[sockopt_opt_tcp_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$tcp_int(fd fd[sock], level const[IPPROTO_TCP], optname flags[sockopt_opt_tcp_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$tcp_buf(fd fd[sock], level const[IPPROTO_TCP], optname const[TCP_INFO], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$tcp_buf(fd fd[sock], level const[IPPROTO_TCP], optname const[TCP_INFO], optval buffer[in], optlen len[optval])
-getsockopt$udp_int(fd fd[sock], level const[IPPROTO_UDP], optname const[UDP_CORK], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$udp_int(fd fd[sock], level const[IPPROTO_UDP], optname const[UDP_CORK], optval ptr[in, int32], optlen len[optval])
-getsockopt$ip_int(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_int(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$ip_mreq(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[out, ip_mreq], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_mreq(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[in, ip_mreq], optlen len[optval])
-getsockopt$ip_mreqn(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[out, ip_mreqn], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_mreqn(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreq], optval ptr[in, ip_mreqn], optlen len[optval])
-getsockopt$ip_mreqsrc(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreqsrc], optval ptr[out, ip_mreq_source], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_mreqsrc(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_mreqsrc], optval ptr[in, ip_mreq_source], optlen len[optval])
-getsockopt$ip_msfilter(fd fd[sock], level const[IPPROTO_IP], optname const[IP_MSFILTER], optval ptr[out, ip_msfilter], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_msfilter(fd fd[sock], level const[IPPROTO_IP], optname const[IP_MSFILTER], optval ptr[in, ip_msfilter], optlen len[optval])
-getsockopt$ip_mtu(fd fd[sock], level const[IPPROTO_IP], optname const[IP_MTU_DISCOVER], optval ptr[out, flags[ip_mtu_discover, int32]], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_mtu(fd fd[sock], level const[IPPROTO_IP], optname const[IP_MTU_DISCOVER], optval ptr[in, flags[ip_mtu_discover, int32]], optlen len[optval])
-getsockopt$ip_opts(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_opts(fd fd[sock], level const[IPPROTO_IP], optname flags[sockopt_opt_ip_opts], optval buffer[in], optlen len[optval])
-getsockopt$ip_pktinfo(fd fd[sock], level const[IPPROTO_IP], optname const[IP_PKTINFO], optval ptr[out, in_pktinfo], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_pktinfo(fd fd[sock], level const[IPPROTO_IP], optname const[IP_PKTINFO], optval ptr[in, in_pktinfo], optlen len[optval])
-getsockopt$ip_ipsec(fd fd[sock], level const[IPPROTO_IP], optname const[IP_IPSEC_POLICY], optval ptr[out, xfrm_filer], optlen ptr[inout, len[optval, int32]])
-setsockopt$ip_ipsec(fd fd[sock], level const[IPPROTO_IP], optname const[IP_IPSEC_POLICY], optval ptr[in, xfrm_filer], optlen len[optval])
-getsockopt$ipv6_int(fd fd[sock], level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_int], optval ptr[out, int32], optlen ptr[inout, len[optval, int32]])
-setsockopt$ipv6_int(fd fd[sock], level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_int], optval ptr[in, int32], optlen len[optval])
-getsockopt$ipv6_mreq(fd fd[sock], level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_mreq], optval ptr[out, ipv6_mreq], optlen ptr[inout, len[optval, int32]])
-setsockopt$ipv6_mreq(fd fd[sock], level const[IPPROTO_IPV6], optname flags[sockopt_opt_ipv6_mreq], optval ptr[in, ipv6_mreq], optlen len[optval])
-getsockopt$ipv6_mtu(fd fd[sock], level const[IPPROTO_IPV6], optname const[IPV6_MTU_DISCOVER], optval ptr[out, flags[ip_mtu_discover, int32]], optlen ptr[inout, len[optval, int32]])
-setsockopt$ipv6_mtu(fd fd[sock], level const[IPPROTO_IPV6], optname const[IPV6_MTU_DISCOVER], optval ptr[in, flags[ip_mtu_discover, int32]], optlen len[optval])
-getsockopt$ipv6_opts(fd fd[sock], level const[IPPROTO_IPV6], optname const[IPV6_2292PKTOPTIONS], optval buffer[out], optlen ptr[inout, len[optval, int32]])
-setsockopt$ipv6_opts(fd fd[sock], level const[IPPROTO_IPV6], optname const[IPV6_2292PKTOPTIONS], optval buffer[in], optlen len[optval])
-
# Almighty!
ioctl(fd fd, cmd intptr, arg ptr[inout, ioctl_arg])
@@ -304,33 +244,6 @@ prctl$setmm(option const[PR_SET_MM], option flags[prctl_mm_option], val vma)
arch_prctl(code flags[arch_prctl_code], addr ptr[in, ioctl_arg])
seccomp(op flags[seccomp_op], flags flags[seccomp_flags], prog ptr[in, sock_fprog])
-add_key(type string, desc string, payload buffer[in, opt], paylen len[payload], keyring flags[keyring_type]) key
-request_key(type string, desc string, callout string, keyring flags[keyring_type]) key
-keyctl$get_keyring_id(code const[KEYCTL_GET_KEYRING_ID], key key, create intptr)
-keyctl$join(code const[KEYCTL_JOIN_SESSION_KEYRING], session string)
-keyctl$update(code const[KEYCTL_UPDATE], key key, payload buffer[in, opt], paylen len[payload])
-keyctl$revoke(code const[KEYCTL_REVOKE], key key)
-keyctl$describe(code const[KEYCTL_DESCRIBE], key key, desc buffer[out], len len[desc])
-keyctl$clear(code const[KEYCTL_CLEAR], key key)
-keyctl$link(code const[KEYCTL_LINK], key1 key, key2 key)
-keyctl$unlink(code const[KEYCTL_UNLINK], key1 key, key2 key)
-keyctl$search(code const[KEYCTL_SEARCH], key key, type string, desc string, ring key)
-keyctl$read(code const[KEYCTL_READ], key key, payload buffer[out], len len[payload])
-keyctl$chown(code const[KEYCTL_CHOWN], key key, uid uid, gid gid)
-# perm is a mask of KEY_POS_VIEW, etc consants, but they cover almost whole int32.
-keyctl$setperm(code const[KEYCTL_SETPERM], key key, perm int32)
-keyctl$instantiate(code const[KEYCTL_INSTANTIATE], key key, payload buffer[in, opt], paylen len[payload], ring key)
-keyctl$negate(code const[KEYCTL_NEGATE], key key, timeout intptr, ring key)
-keyctl$set_reqkey_keyring(code const[KEYCTL_SET_REQKEY_KEYRING], reqkey flags[reqkey_keyring])
-keyctl$set_timeout(code const[KEYCTL_SET_TIMEOUT], key key, timeout int32)
-keyctl$assume_authority(code const[KEYCTL_ASSUME_AUTHORITY], key key)
-keyctl$get_security(code const[KEYCTL_GET_SECURITY], key key, label buffer[out], len len[label])
-keyctl$session_to_parent(code const[KEYCTL_SESSION_TO_PARENT])
-keyctl$reject(code const[KEYCTL_REJECT], key key, timeout intptr, error intptr, ring key)
-keyctl$instantiate_iov(code const[KEYCTL_INSTANTIATE_IOV], key key, payload ptr[in, array[iovec_in]], len len[payload], ring key)
-keyctl$invalidate(code const[KEYCTL_INVALIDATE], key key)
-keyctl$get_persistent(code const[KEYCTL_GET_PERSISTENT], uid uid, key key)
-
mq_open(name string, flags flags[mq_open_flags], mode flags[open_mode], attr ptr[in, mq_attr]) fd[mq]
mq_timedsend(mqd fd[mq], msg buffer[in], msglen len[msg], prio intptr, timeout ptr[in, timespec, opt])
mq_timedreceive(mqd fd[mq], msg buffer[out], msglen len[msg], prio intptr, timeout ptr[in, timespec, opt])
@@ -1202,12 +1115,6 @@ mlockall_flags = MCL_CURRENT, MCL_FUTURE
dup_flags = O_CLOEXEC
splice_flags = SPLICE_F_MOVE, SPLICE_F_NONBLOCK, SPLICE_F_MORE, SPLICE_F_GIFT
seek_whence = SEEK_SET, SEEK_CUR, SEEK_END, SEEK_DATA, SEEK_HOLE
-socket_domain = AF_LOCAL, AF_INET, AF_INET6, AF_IPX, AF_NETLINK, AF_X25, AF_AX25, AF_ATMPVC, AF_APPLETALK, AF_PACKET
-socket_type = SOCK_STREAM, SOCK_DGRAM, SOCK_SEQPACKET, SOCK_RAW, SOCK_RDM, SOCK_PACKET, SOCK_NONBLOCK, SOCK_CLOEXEC
-accept_flags = SOCK_NONBLOCK, SOCK_CLOEXEC
-shutdown_flags = SHUT_RD, SHUT_WR
-send_flags = MSG_CONFIRM, MSG_DONTROUTE, MSG_DONTWAIT, MSG_EOR, MSG_MORE, MSG_NOSIGNAL, MSG_OOB
-recv_flags = MSG_CMSG_CLOEXEC, MSG_DONTWAIT, MSG_ERRQUEUE, MSG_OOB, MSG_PEEK, MSG_TRUNC, MSG_WAITALL, MSG_WAITFORONE
signalfd_flags = SFD_NONBLOCK, SFD_CLOEXEC
eventfd_flags = EFD_CLOEXEC, EFD_NONBLOCK, EFD_SEMAPHORE
timerfd_create_flags = TFD_NONBLOCK, TFD_CLOEXEC
@@ -1226,7 +1133,6 @@ prctl_fpexc = PR_FP_EXC_SW_ENABLE, PR_FP_EXC_DIV, PR_FP_EXC_OVF, PR_FP_EXC_UND,
prctl_seccomp_mode = SECCOMP_MODE_DISABLED, SECCOMP_MODE_STRICT, SECCOMP_MODE_FILTER
prctl_mm_option = PR_SET_MM_START_CODE, PR_SET_MM_END_CODE, PR_SET_MM_START_DATA, PR_SET_MM_END_DATA, PR_SET_MM_START_STACK, PR_SET_MM_START_BRK, PR_SET_MM_BRK
arch_prctl_code = ARCH_SET_FS, ARCH_GET_FS, ARCH_SET_GS, ARCH_GET_GS
-reqkey_keyring = KEY_REQKEY_DEFL_NO_CHANGE, KEY_REQKEY_DEFL_DEFAULT, KEY_REQKEY_DEFL_THREAD_KEYRING, KEY_REQKEY_DEFL_PROCESS_KEYRING, KEY_REQKEY_DEFL_SESSION_KEYRING, KEY_REQKEY_DEFL_USER_KEYRING, KEY_REQKEY_DEFL_USER_SESSION_KEYRING, KEY_REQKEY_DEFL_GROUP_KEYRING, KEY_REQKEY_DEFL_REQUESTOR_KEYRING
epoll_flags = EPOLL_CLOEXEC
epoll_op = EPOLL_CTL_ADD, EPOLL_CTL_MOD, EPOLL_CTL_DEL
epoll_ev = EPOLLIN, EPOLLOUT, EPOLLRDHUP, EPOLLPRI, EPOLLERR, EPOLLHUP, EPOLLET, EPOLLONESHOT
@@ -1255,7 +1161,6 @@ umount_flags = MNT_FORCE, MNT_DETACH, MNT_EXPIRE, UMOUNT_NOFOLLOW
finit_module_flags = MODULE_INIT_IGNORE_MODVERSIONS, MODULE_INIT_IGNORE_VERMAGIC
delete_module_flags = O_NONBLOCK, O_TRUNC
kexec_load_flags = KEXEC_ON_CRASH, KEXEC_PRESERVE_CONTEXT, KEXEC_ARCH_386, KEXEC_ARCH_X86_64, KEXEC_ARCH_PPC, KEXEC_ARCH_PPC64, KEXEC_ARCH_IA_64, KEXEC_ARCH_ARM, KEXEC_ARCH_S390, KEXEC_ARCH_SH, KEXEC_ARCH_MIPS, KEXEC_ARCH_MIPS_LE
-keyring_type = KEY_SPEC_THREAD_KEYRING, KEY_SPEC_PROCESS_KEYRING, KEY_SPEC_SESSION_KEYRING, KEY_SPEC_USER_KEYRING, KEY_SPEC_USER_SESSION_KEYRING
inotify_flags = IN_NONBLOCK, IN_CLOEXEC
inotify_mask = IN_ACCESS, IN_ATTRIB, IN_CLOSE_WRITE, IN_CLOSE_NOWRITE, IN_CREATE, IN_DELETE, IN_DELETE_SELF, IN_MODIFY, IN_MOVE_SELF, IN_MOVED_FROM, IN_MOVED_TO, IN_OPEN, IN_DONT_FOLLOW, IN_EXCL_UNLINK, IN_MASK_ADD, IN_ONESHOT, IN_ONLYDIR
fanotify_flags = FAN_CLASS_PRE_CONTENT, FAN_CLASS_CONTENT, FAN_CLASS_NOTIF, FAN_CLOEXEC, FAN_NONBLOCK, FAN_UNLIMITED_QUEUE, FAN_UNLIMITED_MARKS
@@ -1347,46 +1252,6 @@ define KCMP_FS 3
define KCMP_SIGHAND 4
define KCMP_IO 5
define KCMP_SYSVSEM 6
-define KEY_SPEC_THREAD_KEYRING -1
-define KEY_SPEC_PROCESS_KEYRING -2
-define KEY_SPEC_SESSION_KEYRING -3
-define KEY_SPEC_USER_KEYRING -4
-define KEY_SPEC_USER_SESSION_KEYRING -5
-define KEY_SPEC_GROUP_KEYRING -6
-define KEY_SPEC_REQKEY_AUTH_KEY -7
-define KEY_SPEC_REQUESTOR_KEYRING -8
-define KEY_REQKEY_DEFL_NO_CHANGE -1
-define KEY_REQKEY_DEFL_DEFAULT 0
-define KEY_REQKEY_DEFL_THREAD_KEYRING 1
-define KEY_REQKEY_DEFL_PROCESS_KEYRING 2
-define KEY_REQKEY_DEFL_SESSION_KEYRING 3
-define KEY_REQKEY_DEFL_USER_KEYRING 4
-define KEY_REQKEY_DEFL_USER_SESSION_KEYRING 5
-define KEY_REQKEY_DEFL_GROUP_KEYRING 6
-define KEY_REQKEY_DEFL_REQUESTOR_KEYRING 7
-define KEYCTL_GET_KEYRING_ID 0
-define KEYCTL_JOIN_SESSION_KEYRING 1
-define KEYCTL_UPDATE 2
-define KEYCTL_REVOKE 3
-define KEYCTL_CHOWN 4
-define KEYCTL_SETPERM 5
-define KEYCTL_DESCRIBE 6
-define KEYCTL_CLEAR 7
-define KEYCTL_LINK 8
-define KEYCTL_UNLINK 9
-define KEYCTL_SEARCH 10
-define KEYCTL_READ 11
-define KEYCTL_INSTANTIATE 12
-define KEYCTL_NEGATE 13
-define KEYCTL_SET_REQKEY_KEYRING 14
-define KEYCTL_SET_TIMEOUT 15
-define KEYCTL_ASSUME_AUTHORITY 16
-define KEYCTL_GET_SECURITY 17
-define KEYCTL_SESSION_TO_PARENT 18
-define KEYCTL_REJECT 19
-define KEYCTL_INSTANTIATE_IOV 20
-define KEYCTL_INVALIDATE 21
-define KEYCTL_GET_PERSISTENT 22
define RENAME_NOREPLACE (1 << 0)
define RENAME_EXCHANGE (1 << 1)
define RENAME_WHITEOUT (1 << 2)
@@ -1490,1132 +1355,3 @@ define UFFDIO_ZEROPAGE_MODE_DONTWAKE (1<<0)
#define __NR_sched_get_priority_max 146
#define __NR_sched_get_priority_min 147
-
-
-
-# tty support
-
-open$ptmx(file strconst["/dev/ptmx"], flags flags[open_flags], mode const[0]) fd[tty]
-syz_openpts(fd fd[tty], flags flags[open_flags]) fd[tty]
-ioctl$TCGETS(fd fd[tty], cmd const[TCGETS], arg ptr[out, termios])
-ioctl$TCSETS(fd fd[tty], cmd const[TCSETS], arg ptr[in, termios])
-ioctl$TCSETSW(fd fd[tty], cmd const[TCSETS], arg ptr[in, termios])
-ioctl$TCSETSF(fd fd[tty], cmd const[TCSETSF], arg ptr[in, termios])
-ioctl$TCGETA(fd fd[tty], cmd const[TCGETA], arg ptr[out, termio])
-ioctl$TCSETA(fd fd[tty], cmd const[TCSETS], arg ptr[in, termio])
-ioctl$TCSETAW(fd fd[tty], cmd const[TCSETS], arg ptr[in, termio])
-ioctl$TCSETAF(fd fd[tty], cmd const[TCSETSF], arg ptr[in, termio])
-ioctl$TIOCGLCKTRMIOS(fd fd[tty], cmd const[TIOCGLCKTRMIOS], arg ptr[in, termios])
-ioctl$TIOCSLCKTRMIOS(fd fd[tty], cmd const[TIOCSLCKTRMIOS], arg ptr[out, termios])
-ioctl$TIOCGWINSZ(fd fd[tty], cmd const[TIOCGWINSZ], arg ptr[out, winsize])
-ioctl$TIOCSWINSZ(fd fd[tty], cmd const[TIOCSWINSZ], arg ptr[in, winsize])
-ioctl$TCSBRK(fd fd[tty], cmd const[TCSBRK], arg intptr)
-ioctl$TCSBRKP(fd fd[tty], cmd const[TCSBRKP], arg intptr)
-ioctl$TIOCSBRK(fd fd[tty], cmd const[TIOCSBRK])
-ioctl$TIOCCBRK(fd fd[tty], cmd const[TIOCCBRK])
-ioctl$TCXONC(fd fd[tty], cmd const[TCXONC], arg intptr)
-ioctl$FIONREAD(fd fd[tty], cmd const[FIONREAD], arg ptr[out, int32])
-ioctl$TIOCOUTQ(fd fd[tty], cmd const[TIOCOUTQ], arg ptr[out, int32])
-ioctl$TCFLSH(fd fd[tty], cmd const[TCFLSH], arg intptr)
-ioctl$TIOCSTI(fd fd[tty], cmd const[TIOCSTI], arg intptr)
-ioctl$TIOCCONS(fd fd[tty], cmd const[TIOCCONS])
-ioctl$TIOCSCTTY(fd fd[tty], cmd const[TIOCSCTTY], arg intptr)
-ioctl$TIOCNOTTY(fd fd[tty], cmd const[TIOCNOTTY])
-ioctl$TIOCGPGRP(fd fd[tty], cmd const[TIOCGPGRP], arg ptr[out, pid])
-ioctl$TIOCSPGRP(fd fd[tty], cmd const[TIOCGPGRP], arg ptr[in, pid])
-ioctl$TIOCGSID(fd fd[tty], cmd const[TIOCGPGRP], arg ptr[out, pid])
-ioctl$TIOCEXCL(fd fd[tty], cmd const[TIOCEXCL])
-ioctl$TIOCNXCL(fd fd[tty], cmd const[TIOCNXCL])
-ioctl$TIOCGETD(fd fd[tty], cmd const[TIOCGETD], arg ptr[out, int32])
-ioctl$TIOCSETD(fd fd[tty], cmd const[TIOCSETD], arg ptr[in, int32])
-ioctl$TIOCPKT(fd fd[tty], cmd const[TIOCPKT], arg ptr[in, int32])
-ioctl$TIOCMGET(fd fd[tty], cmd const[TIOCMGET], arg ptr[out, int32])
-ioctl$TIOCMSET(fd fd[tty], cmd const[TIOCMSET], arg ptr[in, int32])
-ioctl$TIOCMBIC(fd fd[tty], cmd const[TIOCMBIC], arg ptr[in, int32])
-ioctl$TIOCMBIS(fd fd[tty], cmd const[TIOCMBIC], arg ptr[in, int32])
-ioctl$TIOCGSOFTCAR(fd fd[tty], cmd const[TIOCGSOFTCAR], arg ptr[out, int32])
-ioctl$TIOCSSOFTCAR(fd fd[tty], cmd const[TIOCSSOFTCAR], arg ptr[in, int32])
-ioctl$TIOCTTYGSTRUCT(fd fd[tty], cmd const[TIOCSSOFTCAR], arg buffer[out])
-
-# For the TIOCLINUX ioctl, see console_ioctl(4).
-
-ioctl$KDGETLED(fd fd[tty], cmd const[KDGETLED], arg ptr[out, int8])
-ioctl$KDSETLED(fd fd[tty], cmd const[KDSETLED], arg intptr)
-ioctl$KDGKBLED(fd fd[tty], cmd const[KDGKBLED], arg ptr[out, int8])
-ioctl$KDSKBLED(fd fd[tty], cmd const[KDSKBLED], arg intptr)
-ioctl$KDGKBTYPE(fd fd[tty], cmd const[KDGKBTYPE], arg ptr[out, int8])
-ioctl$KDADDIO(fd fd[tty], cmd const[KDADDIO], arg intptr)
-ioctl$KDDELIO(fd fd[tty], cmd const[KDDELIO], arg intptr)
-ioctl$KDENABIO(fd fd[tty], cmd const[KDENABIO])
-ioctl$KDDISABIO(fd fd[tty], cmd const[KDDISABIO])
-ioctl$KDSETMODE(fd fd[tty], cmd const[KDSETMODE], arg intptr)
-ioctl$KDGETMODE(fd fd[tty], cmd const[KDGETMODE], arg ptr[out, intptr])
-ioctl$KDMKTONE(fd fd[tty], cmd const[KDGETMODE], arg intptr)
-ioctl$KIOCSOUND(fd fd[tty], cmd const[KIOCSOUND], arg intptr)
-ioctl$GIO_CMAP(fd fd[tty], cmd const[GIO_CMAP], arg ptr[out, io_cmap])
-ioctl$PIO_CMAP(fd fd[tty], cmd const[GIO_CMAP], arg ptr[in, io_cmap])
-ioctl$GIO_FONT(fd fd[tty], cmd const[GIO_FONT], arg buffer[out])
-ioctl$GIO_FONTX(fd fd[tty], cmd const[GIO_FONTX], arg buffer[out])
-ioctl$PIO_FONT(fd fd[tty], cmd const[PIO_FONT], arg buffer[in])
-ioctl$PIO_FONTX(fd fd[tty], cmd const[PIO_FONTX], arg buffer[in])
-ioctl$PIO_FONTRESET(fd fd[tty], cmd const[PIO_FONTRESET], arg const[0])
-ioctl$GIO_SCRNMAP(fd fd[tty], cmd const[GIO_SCRNMAP], arg buffer[out])
-ioctl$GIO_UNISCRNMAP(fd fd[tty], cmd const[GIO_UNISCRNMAP], arg buffer[out])
-ioctl$PIO_SCRNMAP(fd fd[tty], cmd const[PIO_SCRNMAP], arg buffer[in])
-ioctl$PIO_UNISCRNMAP(fd fd[tty], cmd const[PIO_UNISCRNMAP], arg buffer[in])
-ioctl$GIO_UNIMAP(fd fd[tty], cmd const[GIO_UNIMAP], arg ptr[in, unimapdesc_out])
-ioctl$PIO_UNIMAP(fd fd[tty], cmd const[PIO_UNIMAP], arg ptr[in, unimapdesc_in])
-ioctl$PIO_UNIMAPCLR(fd fd[tty], cmd const[PIO_UNIMAPCLR], arg ptr[in, unimapinit])
-ioctl$KDGKBMODE(fd fd[tty], cmd const[KDGKBMODE], arg ptr[out, intptr])
-ioctl$KDSKBMODE(fd fd[tty], cmd const[KDSKBMODE], arg ptr[in, intptr])
-ioctl$KDGKBMETA(fd fd[tty], cmd const[KDGKBMETA], arg ptr[out, intptr])
-ioctl$KDSKBMETA(fd fd[tty], cmd const[KDSKBMETA], arg ptr[in, intptr])
-ioctl$KDGKBENT(fd fd[tty], cmd const[KDGKBENT], arg ptr[in, kbentry])
-ioctl$KDGKBSENT(fd fd[tty], cmd const[KDGKBSENT], arg ptr[in, kbentry])
-ioctl$KDSKBSENT(fd fd[tty], cmd const[KDSKBSENT], arg buffer[in])
-ioctl$KDGKBDIACR(fd fd[tty], cmd const[KDGKBDIACR], arg buffer[out])
-ioctl$KDGETKEYCODE(fd fd[tty], cmd const[KDGETKEYCODE], arg ptr[in, kbkeycode])
-ioctl$KDSETKEYCODE(fd fd[tty], cmd const[KDSETKEYCODE], arg ptr[in, kbkeycode])
-ioctl$KDSIGACCEPT(fd fd[tty], cmd const[KDSIGACCEPT], arg signalno)
-ioctl$VT_OPENQRY(fd fd[tty], cmd const[VT_OPENQRY], arg ptr[out, int32])
-ioctl$VT_GETMODE(fd fd[tty], cmd const[VT_GETMODE], arg ptr[out, vt_mode])
-ioctl$VT_SETMODE(fd fd[tty], cmd const[VT_SETMODE], arg ptr[in, vt_mode])
-ioctl$VT_GETSTATE(fd fd[tty], cmd const[VT_GETSTATE], arg ptr[in, vt_stat])
-ioctl$VT_RELDISP(fd fd[tty], cmd const[VT_RELDISP])
-ioctl$VT_ACTIVATE(fd fd[tty], cmd const[VT_ACTIVATE], arg intptr)
-ioctl$VT_WAITACTIVE(fd fd[tty], cmd const[VT_WAITACTIVE])
-ioctl$VT_DISALLOCATE(fd fd[tty], cmd const[VT_DISALLOCATE])
-ioctl$VT_RESIZE(fd fd[tty], cmd const[VT_RESIZE], arg ptr[in, vt_sizes])
-ioctl$VT_RESIZEX(fd fd[tty], cmd const[VT_RESIZEX], arg ptr[in, vt_consize])
-ioctl$TIOCLINUX2(fd fd[tty], cmd const[TIOCLINUX], arg ptr[in, tiocl_selection])
-ioctl$TIOCLINUX3(fd fd[tty], cmd const[TIOCLINUX], arg ptr[in, const[3, int8]])
-ioctl$TIOCLINUX4(fd fd[tty], cmd const[TIOCLINUX], arg ptr[in, const[4, int8]])
-ioctl$TIOCLINUX5(fd fd[tty], cmd const[TIOCLINUX], arg ptr[in, loadlut])
-ioctl$TIOCLINUX6(fd fd[tty], cmd const[TIOCLINUX], arg ptr[in, tiocl_shift_state])
-ioctl$TIOCLINUX7(fd fd[tty], cmd const[TIOCLINUX], arg ptr[in, tiocl_report_mouse])
-
-termios {
- iflag int32
- oflag int32
- cflag int32
- lflag int32
- line int8
- cc0 int8
- cc1 int8
- cc2 int8
- cc3_6 int32
- cc7_10 int32
- cc11_14 int32
- cc15_18 int32
-}
-
-termio {
- iflag int16
- oflag int16
- cflag int16
- lflag int16
- line int8
- cc0 int8
- cc1 int8
- cc2 int8
- cc3_6 int32
- cc7 int8
-}
-
-winsize {
- row int16
- col int16
- xpix int16
- upix int16
-}
-
-io_cmap {
- map0 int64
- map1 int64
- map2 int64
- map3 int64
- map4 int64
- map5 int64
-}
-
-unimapdesc_in {
- cnt len[entries, int16]
- entries ptr[in, array[unipair]]
-}
-
-unimapdesc_out {
- cnt len[entries, int16]
- entries ptr[out, array[unipair]]
-}
-
-unipair {
- unicode int16
- fontpos int16
-}
-
-unimapinit {
- size int16
- step int16
- level int16
-}
-
-kbentry {
- table int8
- index int8
- value int16
-}
-
-kbkeycode {
- scan int32
- key int32
-}
-
-vt_mode {
- mode int8
- waitv int8
- relsig int16
- acqsig int16
- frsig int16
-}
-
-vt_stat {
- active int16
- signal int16
- state int16
-}
-
-vt_sizes {
- rows int16
- cols int16
- scroll int16
-}
-
-vt_consize {
- rows int16
- cols int16
- vlin int16
- clin int16
- vcol int16
- ccol int16
-}
-
-tiocl_selection {
- subcode const[2, int8]
- xs int16
- ys int16
- xe int16
- ye int16
- mode int16
-}
-
-loadlut {
- submode const[5, int8]
- tab0 int64
- tab1 int64
- tab2 int64
- tab3 int64
-}
-
-tiocl_shift_state {
- subcode const[6, int8]
- shift int8
-}
-
-tiocl_report_mouse {
- subcode const[7, int8]
- shift int8
-}
-
-
-
-
-# DRI/DRM support
-
-syz_dri_open(card_id intptr, flags flags[open_flags]) fd[dri]
-ioctl$DRM_IOCTL_VERSION(fd fd[dri], cmd const[DRM_IOCTL_VERSION], arg ptr[in, drm_version])
-ioctl$DRM_IOCTL_GET_UNIQUE(fd fd[dri], cmd const[DRM_IOCTL_GET_UNIQUE], arg ptr[in, drm_unique])
-ioctl$DRM_IOCTL_GET_MAGIC(fd fd[dri], cmd const[DRM_IOCTL_GET_MAGIC], arg ptr[in, int32])
-ioctl$DRM_IOCTL_IRQ_BUSID(fd fd[dri], cmd const[DRM_IOCTL_IRQ_BUSID], arg ptr[in, drm_irq_busid])
-ioctl$DRM_IOCTL_GET_MAP(fd fd[dri], cmd const[DRM_IOCTL_GET_MAP], arg ptr[in, drm_map])
-ioctl$DRM_IOCTL_GET_CLIENT(fd fd[dri], cmd const[DRM_IOCTL_GET_CLIENT], arg ptr[in, drm_client])
-ioctl$DRM_IOCTL_GET_STATS(fd fd[dri], cmd const[DRM_IOCTL_GET_STATS], arg buffer[out])
-ioctl$DRM_IOCTL_GET_CAP(fd fd[dri], cmd const[DRM_IOCTL_GET_CAP], arg ptr[in, drm_get_cap])
-ioctl$DRM_IOCTL_SET_CLIENT_CAP(fd fd[dri], cmd const[DRM_IOCTL_SET_CLIENT_CAP], arg ptr[in, drm_get_cap])
-ioctl$DRM_IOCTL_SET_VERSION(fd fd[dri], cmd const[DRM_IOCTL_SET_VERSION], arg ptr[in, drm_set_version])
-
-drm_version {
- maj int32
- min int32
- patch int32
- namelen len[name, intptr]
- name buffer[out]
- datelen len[date, intptr]
- date buffer[out]
- desclen len[desc, intptr]
- desc buffer[out]
-}
-
-drm_unique {
- len len[uni, intptr]
- uni buffer[out]
-}
-
-drm_irq_busid {
- irq int32
- bus int32
- dev int32
- func int32
-}
-
-drm_map {
- off intptr
- size intptr
- type flags[drm_map_type, int32]
- flags flags[drm_map_flags, int32]
- handle vma
- mtrr int32
-}
-
-drm_client {
- idx int32
- auth int32
- pid pid
-# pid is declared is long
- pid_pad int32
- uid uid
-# uid is declared is long
- uid_pad int32
- magic intptr
- iocs intptr
-}
-
-drm_get_cap {
- cap int64
- val int64
-}
-
-drm_set_version {
- di_maj int32
- di_min int32
- dd_maj int32
- dd_min int32
-}
-
-drm_map_type = _DRM_FRAME_BUFFER, _DRM_REGISTERS, _DRM_SHM, _DRM_AGP, _DRM_SCATTER_GATHER, _DRM_CONSISTENT
-drm_map_flags = _DRM_RESTRICTED, _DRM_READ_ONLY, _DRM_LOCKED, _DRM_KERNEL, _DRM_WRITE_COMBINING, _DRM_CONTAINS_LOCK, _DRM_REMOVABLE, _DRM_DRIVER
-
-
-
-
-# FUSE support
-
-syz_fuse_mount(target filename, mode flags[fuse_mode], uid uid, gid gid, maxread intptr, flags flags[mount_flags]) fd[fuse]
-syz_fuseblk_mount(target filename, blkdev filename, mode flags[fuse_mode], uid uid, gid gid, maxread intptr, blksize intptr, flags flags[mount_flags]) fd[fuse]
-ioctl$FUSE_DEV_IOC_CLONE(fd fd[fuse], cmd const[FUSE_DEV_IOC_CLONE], arg ptr[in, fd[fuse]])
-write$fuse_init(fd fd[fuse], arg ptr[in, fuse_init_out], len len[arg])
-write$fuse_interrupt(fd fd[fuse], arg ptr[in, fuse_interrupt_out], len len[arg])
-write$fuse_bmap(fd fd[fuse], arg ptr[in, fuse_bmap_out], len len[arg])
-write$fuse_ioctl(fd fd[fuse], arg ptr[in, fuse_ioctl_out], len len[arg])
-write$fuse_poll(fd fd[fuse], arg ptr[in, fuse_poll_out], len len[arg])
-write$fuse_notify_poll_wakeup(fd fd[fuse], arg ptr[in, fuse_notify_poll_wakeup_out], len len[arg])
-write$fuse_notify_inval_inode(fd fd[fuse], arg ptr[in, fuse_notify_inval_inode_out], len len[arg])
-write$fuse_notify_inval_entry(fd fd[fuse], arg ptr[in, fuse_notify_inval_entry_out], len len[arg])
-write$fuse_notify_delete(fd fd[fuse], arg ptr[in, fuse_notify_delete_out], len len[arg])
-write$fuse_notify_store(fd fd[fuse], arg ptr[in, fuse_notify_store_out], len len[arg])
-write$fuse_notify_retrieve(fd fd[fuse], arg ptr[in, fuse_notify_retrieve_out], len len[arg])
-
-# 1 stands for default_permissions, 2 - allow_other
-fuse_mode = 1, 2, S_IFREG, S_IFCHR, S_IFBLK, S_IFIFO, S_IFSOCK, S_IFLNK, S_IFDIR
-
-define FUSE_DEV_IOC_CLONE _IOR(229, 0, uint32_t)
-
-fuse_init_out {
- len len[parent, int32]
- err int32
- unique int64
-
- maj int32
- min int32
- readah int32
- flags int32
- backg int16
- congest int16
- maxwr int32
- timegr int32
- unused0 const[0, int32]
- unused1 const[0, int32]
- unused2 const[0, int32]
- unused3 const[0, int32]
- unused4 const[0, int32]
- unused5 const[0, int32]
- unused6 const[0, int32]
- unused7 const[0, int32]
- unused8 const[0, int32]
-}
-
-fuse_interrupt_out {
- len len[parent, int32]
- err int32
- unique int64
-}
-
-fuse_bmap_out {
- len len[parent, int32]
- err int32
- unique int64
-
- block int64
-}
-
-fuse_ioctl_out {
- len len[parent, int32]
- err int32
- unique int64
-
- res int32
- flags int32
- iniovs int32
- outiovs int32
-}
-
-fuse_poll_out {
- len len[parent, int32]
- err int32
- unique int64
-
- revents int32
-}
-
-fuse_notify_poll_wakeup_out {
- len len[parent, int32]
- err int32
- unique const[0, int64]
-
- kh int16
-}
-
-fuse_notify_inval_inode_out {
- len len[parent, int32]
- err int32
- unique const[0, int64]
-
- ino int64
- off int64
- len int16
-}
-
-fuse_notify_inval_entry_out {
- len len[parent, int32]
- err int32
- unique const[0, int64]
-
- parent int64
- namelen int32
-}
-
-fuse_notify_delete_out {
- len len[parent, int32]
- err int32
- unique const[0, int64]
-
- parent int64
- child int64
- namelen int32
-}
-
-fuse_notify_store_out {
- len len[parent, int32]
- err int32
- unique const[0, int64]
-
- nodeid int64
- off int64
- size int32
-}
-
-fuse_notify_retrieve_out {
- len len[parent, int32]
- err int32
- unique const[0, int64]
-
- unique int64
- nodeid int64
- off int64
- size int32
-}
-
-
-
-
-# BPF
-
-bpf$MAP_CREATE(cmd const[BPF_MAP_CREATE], arg ptr[in, bpf_map_create_arg], size len[arg]) fd[bpf_map]
-bpf$MAP_LOOKUP_ELEM(cmd const[BPF_MAP_LOOKUP_ELEM], arg ptr[in, bpf_map_lookup_arg], size len[arg])
-bpf$MAP_UPDATE_ELEM(cmd const[BPF_MAP_UPDATE_ELEM], arg ptr[in, bpf_map_update_arg], size len[arg])
-bpf$MAP_DELETE_ELEM(cmd const[BPF_MAP_DELETE_ELEM], arg ptr[in, bpf_map_delete_arg], size len[arg])
-bpf$MAP_GET_NEXT_KEY(cmd const[BPF_MAP_GET_NEXT_KEY], arg ptr[in, bpf_map_get_next_arg], size len[arg])
-bpf$PROG_LOAD(cmd const[BPF_PROG_LOAD], arg ptr[in, bpf_prog], size len[arg]) fd[bpf_prog]
-bpf$OBJ_PIN_MAP(cmd const[BPF_OBJ_PIN], arg ptr[in, bpf_obj_pin_map], size len[arg])
-bpf$OBJ_PIN_PROG(cmd const[BPF_OBJ_PIN], arg ptr[in, bpf_obj_pin_prog], size len[arg])
-bpf$OBJ_GET_MAP(cmd const[BPF_OBJ_GET], arg ptr[in, bpf_obj_get], size len[arg]) fd[bpf_map]
-bpf$OBJ_GET_PROG(cmd const[BPF_OBJ_GET], arg ptr[in, bpf_obj_get], size len[arg]) fd[bpf_prog]
-
-bpf_map_create_arg {
- type flags[bpf_map_type, int32]
- ksize int32
- vsize int32
- max int32
-}
-
-bpf_map_lookup_arg {
- map fd[bpf_map]
- key buffer[in]
- val buffer[out]
-}
-
-bpf_map_update_arg {
- map fd[bpf_map]
- key buffer[in]
- val buffer[in]
- flags flags[bpf_map_flags, int64]
-}
-
-bpf_map_delete_arg {
- map fd[bpf_map]
- key buffer[in]
-}
-
-bpf_map_get_next_arg {
- map fd[bpf_map]
- key buffer[in]
- next buffer[out]
-}
-
-bpf_prog {
- type flags[bpf_prog_type, int32]
- ninsn len[insns, int32]
- insns ptr[in, array[bpf_insn]]
- license string
- loglev int32
- logsize len[log, int32]
- log buffer[out]
- kver int32
-}
-
-bpf_insn {
- code int8
- dst int8
- src int8
- off int16
- imm int32
-}
-
-bpf_obj_pin_map {
- path filename
- fd fd[bpf_map]
-}
-
-bpf_obj_pin_prog {
- path filename
- fd fd[bpf_prog]
-}
-
-bpf_obj_get {
- path filename
- fd const[0, int32]
-}
-
-bpf_map_type = BPF_MAP_TYPE_HASH, BPF_MAP_TYPE_ARRAY, BPF_MAP_TYPE_PROG_ARRAY, BPF_MAP_TYPE_PERF_EVENT_ARRAY
-bpf_map_flags = BPF_ANY, BPF_NOEXIST, BPF_EXIST
-bpf_prog_type = BPF_PROG_TYPE_SOCKET_FILTER, BPF_PROG_TYPE_KPROBE, BPF_PROG_TYPE_SCHED_CLS, BPF_PROG_TYPE_SCHED_ACT
-
-define BPF_MAP_CREATE 0
-define BPF_MAP_LOOKUP_ELEM 1
-define BPF_MAP_UPDATE_ELEM 2
-define BPF_MAP_DELETE_ELEM 3
-define BPF_MAP_GET_NEXT_KEY 4
-define BPF_PROG_LOAD 5
-define BPF_OBJ_PIN 6
-define BPF_OBJ_GET 7
-
-define BPF_MAP_TYPE_HASH 1
-define BPF_MAP_TYPE_ARRAY 2
-define BPF_MAP_TYPE_PROG_ARRAY 3
-define BPF_MAP_TYPE_PERF_EVENT_ARRAY 4
-
-define BPF_ANY 0
-define BPF_NOEXIST 1
-define BPF_EXIST 2
-
-define BPF_PROG_TYPE_SOCKET_FILTER 1
-define BPF_PROG_TYPE_KPROBE 2
-define BPF_PROG_TYPE_SCHED_CLS 3
-define BPF_PROG_TYPE_SCHED_ACT 4
-
-define SO_ATTACH_BPF 50
-
-
-
-
-# Perf
-
-perf_event_open(attr ptr[in, perf_event_attr], pid pid, cpu intptr, group fd[perf], flags flags[perf_flags]) fd[perf]
-
-ioctl$PERF_EVENT_IOC_ENABLE(fd fd[perf], cmd const[PERF_EVENT_IOC_ENABLE], flags intptr)
-ioctl$PERF_EVENT_IOC_DISABLE(fd fd[perf], cmd const[PERF_EVENT_IOC_DISABLE], flags intptr)
-ioctl$PERF_EVENT_IOC_RESET(fd fd[perf], cmd const[PERF_EVENT_IOC_RESET], flags intptr)
-ioctl$PERF_EVENT_IOC_REFRESH(fd fd[perf], cmd const[PERF_EVENT_IOC_REFRESH], refresh intptr)
-ioctl$PERF_EVENT_IOC_PERIOD(fd fd[perf], cmd const[PERF_EVENT_IOC_PERIOD], period ptr[in, int64])
-ioctl$PERF_EVENT_IOC_ID(fd fd[perf], cmd const[PERF_EVENT_IOC_ID], id ptr[out, int64])
-ioctl$PERF_EVENT_IOC_SET_OUTPUT(fd fd[perf], cmd const[PERF_EVENT_IOC_SET_OUTPUT], other fd[perf])
-ioctl$PERF_EVENT_IOC_SET_FILTER(fd fd[perf], cmd const[PERF_EVENT_IOC_SET_FILTER], filter string)
-ioctl$PERF_EVENT_IOC_SET_BPF(fd fd[perf], cmd const[PERF_EVENT_IOC_SET_BPF], prog fd[bpf_prog])
-
-perf_flags = PERF_FLAG_FD_NO_GROUP, PERF_FLAG_FD_OUTPUT, PERF_FLAG_PID_CGROUP, PERF_FLAG_FD_CLOEXEC
-perf_event_type = PERF_TYPE_HARDWARE, PERF_TYPE_SOFTWARE, PERF_TYPE_TRACEPOINT, PERF_TYPE_HW_CACHE, PERF_TYPE_RAW, PERF_TYPE_BREAKPOINT
-perf_bp_type = HW_BREAKPOINT_EMPTY, HW_BREAKPOINT_R, HW_BREAKPOINT_W, HW_BREAKPOINT_X
-perf_attr_flags = 1, 2, 4
-
-perf_event_attr {
- type flags[perf_event_type, int32]
- size len[parent, int32]
- config int64
- freq int64
- sample int64
- format int64
-# Lots of various bit flags.
-# Split into int8's because for int64 large values generated less frequently than small ones.
-# Kernel checks that unused bits are zero.
- flags0 int8
- flags1 int8
- flags2 int8
- flags3 flags[perf_attr_flags, int8]
- freserv const[0, int32]
- wakeup int32
- bptype flags[perf_bp_type, int32]
- config1 int64
- config2 int64
- bsample int64
- regs int64
- stack int64
- clockid flags[clock_type, int32]
- regs2 int64
- auxwm int32
-}
-
-define PERF_FLAG_FD_CLOEXEC (1UL << 3)
-define PERF_EVENT_IOC_SET_BPF _IOW('$', 8, __u32)
-
-
-
-
-# PF_ALG support.
-
-socket$alg(domain const[AF_ALG], type const[SOCK_SEQPACKET], proto const[0]) fd[alg]
-bind$alg(fd fd[alg], addr ptr[in, sockaddr_alg], addrlen len[addr])
-setsockopt$ALG_SET_KEY(fd fd[alg], level const[SOL_ALG], opt const[ALG_SET_KEY], key buffer[in], keylen len[key])
-setsockopt$ALG_SET_AEAD_AUTHSIZE(fd fd[alg], level const[SOL_ALG], opt const[ALG_SET_AEAD_AUTHSIZE], val const[0], size intptr)
-accept$alg(fd fd[alg], peer ptr[out, sockaddr_alg, opt], peerlen ptr[inout, len[peer, int32]]) fd[algconn]
-sendmsg$alg(fd fd[algconn], msg ptr[in, alg_send_msghdr], f flags[send_flags])
-sendmmsg$alg(fd fd[algconn], mmsg ptr[in, array[alg_send_msghdr]], vlen len[mmsg], f flags[send_flags])
-recvmsg$alg(fd fd[algconn], msg ptr[in, alg_recv_msghdr], f flags[recv_flags])
-recvmmsg$alg(fd fd[algconn], mmsg ptr[in, array[alg_recv_msghdr]], vlen len[mmsg], f flags[recv_flags])
-
-sockaddr_alg {
- family const[AF_ALG, int16]
- type salg_type
- feat flags[af_alg_type, int32]
- mask flags[af_alg_type, int32]
- name salg_name
-}
-
-alg_send_msghdr {
- addr const[0, intptr]
- addrlen const[0, int32]
- vec ptr[in, array[iovec_in]]
- vlen len[vec, intptr]
- ctrl ptr[in, alg_cmsghdr, opt]
- ctrllen len[ctrl, intptr]
- f flags[send_flags, int32]
-}
-
-alg_recv_msghdr {
- addr const[0, intptr]
- addrlen const[0, int32]
- vec ptr[in, array[iovec_out]]
- vlen len[vec, intptr]
- ctrl buffer[out]
- ctrllen len[ctrl, intptr]
- f int32
-}
-
-alg_cmsghdr {
- iv alg_cmsghdr_iv
- op alg_cmsghdr_op
- assoc alg_cmsghdr_assoc
-}
-
-alg_cmsghdr_iv {
- len len[parent, intptr]
- level const[SOL_ALG, int32]
- type const[ALG_SET_IV, int32]
- ivlen len[iv, int32]
- iv array[int8]
-}
-
-alg_cmsghdr_op {
- len len[parent, intptr]
- level const[SOL_ALG, int32]
- type const[ALG_SET_OP, int32]
- op int32
-}
-
-alg_cmsghdr_assoc {
- len len[parent, intptr]
- level const[SOL_ALG, int32]
- type const[ALG_SET_AEAD_ASSOCLEN, int32]
- assoc int32
-}
-
-af_alg_type = CRYPTO_ALG_TYPE_MASK, CRYPTO_ALG_TYPE_CIPHER, CRYPTO_ALG_TYPE_COMPRESS, CRYPTO_ALG_TYPE_AEAD, CRYPTO_ALG_TYPE_BLKCIPHER, CRYPTO_ALG_TYPE_ABLKCIPHER, CRYPTO_ALG_TYPE_GIVCIPHER, CRYPTO_ALG_TYPE_DIGEST, CRYPTO_ALG_TYPE_HASH, CRYPTO_ALG_TYPE_SHASH, CRYPTO_ALG_TYPE_AHASH, CRYPTO_ALG_TYPE_RNG, CRYPTO_ALG_TYPE_AKCIPHER, CRYPTO_ALG_TYPE_PCOMPRESS, CRYPTO_ALG_LARVAL, CRYPTO_ALG_DEAD, CRYPTO_ALG_DYING, CRYPTO_ALG_ASYNC, CRYPTO_ALG_NEED_FALLBACK, CRYPTO_ALG_GENIV, CRYPTO_ALG_TESTED, CRYPTO_ALG_INSTANCE, CRYPTO_ALG_KERN_DRIVER_ONLY, CRYPTO_ALG_INTERNAL
-
-define CRYPTO_ALG_TYPE_MASK 0x0000000f
-define CRYPTO_ALG_TYPE_CIPHER 0x00000001
-define CRYPTO_ALG_TYPE_COMPRESS 0x00000002
-define CRYPTO_ALG_TYPE_AEAD 0x00000003
-define CRYPTO_ALG_TYPE_BLKCIPHER 0x00000004
-define CRYPTO_ALG_TYPE_ABLKCIPHER 0x00000005
-define CRYPTO_ALG_TYPE_GIVCIPHER 0x00000006
-define CRYPTO_ALG_TYPE_DIGEST 0x00000008
-define CRYPTO_ALG_TYPE_HASH 0x00000008
-define CRYPTO_ALG_TYPE_SHASH 0x00000009
-define CRYPTO_ALG_TYPE_AHASH 0x0000000a
-define CRYPTO_ALG_TYPE_RNG 0x0000000c
-define CRYPTO_ALG_TYPE_AKCIPHER 0x0000000d
-define CRYPTO_ALG_TYPE_PCOMPRESS 0x0000000f
-define CRYPTO_ALG_LARVAL 0x00000010
-define CRYPTO_ALG_DEAD 0x00000020
-define CRYPTO_ALG_DYING 0x00000040
-define CRYPTO_ALG_ASYNC 0x00000080
-define CRYPTO_ALG_NEED_FALLBACK 0x00000100
-define CRYPTO_ALG_GENIV 0x00000200
-define CRYPTO_ALG_TESTED 0x00000400
-define CRYPTO_ALG_INSTANCE 0x00000800
-define CRYPTO_ALG_KERN_DRIVER_ONLY 0x00001000
-define CRYPTO_ALG_INTERNAL 0x00002000
-define ALG_SET_KEY 1
-define ALG_SET_IV 2
-define ALG_SET_OP 3
-define ALG_SET_AEAD_ASSOCLEN 4
-define ALG_SET_AEAD_AUTHSIZE 5
-#define AF_ALG 38
-define SOL_ALG 279
-
-
-
-
-# PF_KEY support.
-
-# See net/key/af_key.c, requires root.
-# socket$key(domain const[AF_KEY], type const[SOCK_RAW], proto const[PF_KEY_V2]) fd[key]
-
-
-
-
-# PF_NFC support.
-
-socket$nfc_llcp(domain const[AF_NFC], type flags[nfc_llcp_type], proto const[NFC_SOCKPROTO_LLCP]) fd[nfc_llcp]
-bind$nfc_llcp(fd fd[nfc_llcp], addr ptr[in, sockaddr_nfc_llcp], addrlen len[addr])
-connect$nfc_llcp(fd fd[nfc_llcp], addr ptr[in, sockaddr_nfc_llcp], addrlen len[addr])
-accept$nfc_llcp(fd fd[nfc_llcp], peer ptr[out, sockaddr_nfc_llcp, opt], peerlen ptr[inout, len[peer, int32]]) fd[nfc_llcp]
-setsockopt$NFC_LLCP_RW(fd fd[nfc_llcp], level const[SOL_NFC], opt const[NFC_LLCP_RW], arg ptr[in, int32], arglen len[arg])
-setsockopt$NFC_LLCP_MIUX(fd fd[nfc_llcp], level const[SOL_NFC], opt const[NFC_LLCP_MIUX], arg ptr[in, int32], arglen len[arg])
-getsockopt$nfc_llcp(fd fd[nfc_llcp], level const[SOL_NFC], opt flags[nfc_llcp_opts], arg buffer[out], arglen len[arg])
-sendmsg$nfc_llcp(fd fd[nfc_llcp], msg ptr[in, nfc_llcp_send_msghdr], f flags[send_flags])
-sendmmsg$nfc_llcp(fd fd[nfc_llcp], mmsg ptr[in, array[nfc_llcp_send_msghdr]], vlen len[mmsg], f flags[send_flags])
-
-socket$nfc_raw(domain const[AF_NFC], type flags[nfc_raw_type], proto const[NFC_SOCKPROTO_RAW]) fd[nfc_raw]
-connect$nfc_raw(fd fd[nfc_raw], addr ptr[in, sockaddr_nfc], addrlen len[addr])
-
-nfc_llcp_type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW
-nfc_raw_type = SOCK_STREAM, SOCK_RAW
-nfc_proto = NFC_PROTO_JEWEL, NFC_PROTO_MIFARE, NFC_PROTO_FELICA, NFC_PROTO_ISO14443, NFC_PROTO_NFC_DEP, NFC_PROTO_ISO14443_B, NFC_PROTO_ISO15693
-nfc_llcp_opts = NFC_LLCP_RW, NFC_LLCP_MIUX, NFC_LLCP_REMOTE_MIU, NFC_LLCP_REMOTE_LTO, NFC_LLCP_REMOTE_RW
-
-sockaddr_nfc_llcp {
- family const[AF_NFC, int16]
- devidx int32
- target int32
- proto flags[nfc_proto, int32]
- dsap int8
- ssap int8
-# TODO: need fixed-length arrays
-# char service_name[63]
- serv0 int8
- serv1 int8
- serv2 int32
- serv3 int32
- serv4 int32
- serv5 int32
- serv6 int32
- serv7 int32
- serv8 int32
- serv9 int32
- serv10 int32
- serv11 int32
- serv12 int32
- serv13 int32
- serv14 int32
- serv15 int32
- serv16 int32
- serv17 int8
- servlen intptr
-}
-
-sockaddr_nfc {
- family const[AF_NFC, int16]
- dev int32
- targ int32
- proto flags[nfc_proto, int32]
-}
-
-nfc_llcp_send_msghdr {
- addr ptr[in, sockaddr_nfc_llcp]
- addrlen len[addr, int32]
- vec ptr[in, array[iovec_in]]
- vlen len[vec, intptr]
- ctrl ptr[in, cmsghdr]
- ctrllen len[ctrl, intptr]
- f flags[send_flags, int32]
-}
-
-define SOL_NFC 280
-define NFC_PROTO_ISO15693 7
-
-
-
-
-# PF_BLUETOOTH support.
-
-socket$bt_hci(fam const[PF_BLUETOOTH], type const[SOCK_RAW], proto const[BTPROTO_HCI]) fd[bt_hci]
-bind$bt_hci(fd fd[bt_hci], addr ptr[in, sockaddr_hci], addrlen len[addr])
-ioctl$bt_hci(fd fd[bt_hci], cmd flags[bt_hci_ioctl], arg buffer[inout])
-setsockopt$HCI_DATA_DIR(fd fd[bt_hci], level const[0], opt const[HCI_DATA_DIR], arg ptr[in, int32], arglen len[arg])
-setsockopt$HCI_TIME_STAMP(fd fd[bt_hci], level const[0], opt const[HCI_TIME_STAMP], arg ptr[in, int32], arglen len[arg])
-setsockopt$HCI_FILTER(fd fd[bt_hci], level const[0], opt const[HCI_FILTER], arg ptr[in, hci_ufilter], arglen len[arg])
-getsockopt$bt_hci(fd fd[sock], level const[0], opt flags[bt_hci_sockopt], arg buffer[out], arglen ptr[inout, len[arg, int32]])
-
-socket$bt_sco(fam const[PF_BLUETOOTH], type const[SOCK_SEQPACKET], proto const[BTPROTO_SCO]) fd[bt_sco]
-bind$bt_sco(fd fd[bt_sco], addr ptr[in, sockaddr_sco], addrlen len[addr])
-connect$bt_sco(fd fd[bt_sco], addr ptr[in, sockaddr_sco], addrlen len[addr])
-getsockopt$SCO_OPTIONS(fd fd[bt_sco], level const[SOL_SCO], opt const[SCO_OPTIONS], arg buffer[out], arglen ptr[inout, len[arg, int32]])
-getsockopt$SCO_CONNINFO(fd fd[bt_sco], level const[SOL_SCO], opt const[SCO_CONNINFO], arg buffer[out], arglen ptr[inout, len[arg, int32]])
-
-socket$bt_l2cap(fam const[PF_BLUETOOTH], type flags[bt_l2cap_type], proto const[BTPROTO_L2CAP]) fd[bt_l2cap]
-bind$bt_l2cap(fd fd[bt_l2cap], addr ptr[in, sockaddr_l2], addrlen len[addr])
-connect$bt_l2cap(fd fd[bt_l2cap], addr ptr[in, sockaddr_l2], addrlen len[addr])
-setsockopt$L2CAP_OPTIONS(fd fd[bt_l2cap], level const[SOL_L2CAP], opt const[L2CAP_OPTIONS], arg ptr[in, l2cap_options], arglen len[arg])
-getsockopt$L2CAP_OPTIONS(fd fd[bt_l2cap], level const[SOL_L2CAP], opt const[L2CAP_OPTIONS], arg ptr[out, l2cap_options], arglen ptr[inout, len[arg, int32]])
-setsockopt$L2CAP_LM(fd fd[bt_l2cap], level const[SOL_L2CAP], opt const[L2CAP_LM], arg ptr[in, flags[bt_l2cap_lm, int32]], arglen len[arg])
-getsockopt$L2CAP_LM(fd fd[bt_l2cap], level const[SOL_L2CAP], opt const[L2CAP_LM], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]])
-setsockopt$L2CAP_CONNINFO(fd fd[bt_l2cap], level const[SOL_L2CAP], opt const[L2CAP_CONNINFO], arg ptr[in, l2cap_conninfo], arglen len[arg])
-getsockopt$L2CAP_CONNINFO(fd fd[bt_l2cap], level const[SOL_L2CAP], opt const[L2CAP_CONNINFO], arg ptr[out, l2cap_conninfo], arglen ptr[inout, len[arg, int32]])
-
-socket$bt_rfcomm(fam const[PF_BLUETOOTH], type flags[bt_rfcomm_type], proto const[BTPROTO_RFCOMM]) fd[bt_rfcomm]
-bind$bt_rfcomm(fd fd[bt_rfcomm], addr ptr[in, sockaddr_rc], addrlen len[addr])
-connect$bt_rfcomm(fd fd[bt_rfcomm], addr ptr[in, sockaddr_rc], addrlen len[addr])
-setsockopt$RFCOMM_LM(fd fd[bt_rfcomm], level const[SOL_RFCOMM], opt const[RFCOMM_LM], arg ptr[in, flags[bt_l2cap_lm, int32]], arglen len[arg])
-getsockopt$RFCOMM_LM(fd fd[bt_rfcomm], level const[SOL_RFCOMM], opt const[RFCOMM_LM], arg ptr[out, int32], arglen ptr[inout, len[arg, int32]])
-getsockopt$RFCOMM_CONNINFO(fd fd[bt_rfcomm], level const[SOL_RFCOMM], opt const[RFCOMM_CONNINFO], arg buffer[out], arglen ptr[inout, len[arg, int32]])
-
-socket$bt_hidp(fam const[PF_BLUETOOTH], type const[SOCK_RAW], proto const[BTPROTO_HIDP]) fd[bt_hidp]
-ioctl$HIDPCONNADD(fd fd[bt_hidp], cmd const[HIDPCONNADD], arg ptr[in, hidp_connadd_req])
-ioctl$HIDPCONNDEL(fd fd[bt_hidp], cmd const[HIDPCONNDEL], arg ptr[in, hidp_conndel_req])
-ioctl$HIDPGETCONNLIST(fd fd[bt_hidp], cmd const[HIDPGETCONNLIST], arg ptr[in, hidp_connlist_req])
-ioctl$HIDPGETCONNINFO(fd fd[bt_hidp], cmd const[HIDPGETCONNINFO], arg ptr[in, hidp_conninfo])
-
-socket$bt_cmtp(fam const[PF_BLUETOOTH], type const[SOCK_RAW], proto const[BTPROTO_CMTP]) fd[bt_cmtp]
-ioctl$CMTPCONNADD(fd fd[bt_cmtp], cmd const[CMTPCONNADD], arg ptr[in, cmtp_connadd_req])
-ioctl$CMTPCONNDEL(fd fd[bt_cmtp], cmd const[CMTPCONNDEL], arg ptr[in, cmtp_conndel_req])
-ioctl$CMTPGETCONNLIST(fd fd[bt_cmtp], cmd const[CMTPGETCONNLIST], arg ptr[in, cmtp_connlist_req])
-ioctl$CMTPGETCONNINFO(fd fd[bt_cmtp], cmd const[CMTPGETCONNINFO], arg ptr[in, cmtp_conninfo])
-
-socket$bt_bnep(fam const[PF_BLUETOOTH], type const[SOCK_RAW], proto const[BTPROTO_BNEP]) fd[bt_bnep]
-ioctl$BNEPCONNADD(fd fd[bt_bnep], cmd const[BNEPCONNADD], arg ptr[in, bnep_connadd_req])
-ioctl$BNEPCONNDEL(fd fd[bt_bnep], cmd const[BNEPCONNDEL], arg ptr[in, bnep_conndel_req])
-ioctl$BNEPGETCONNLIST(fd fd[bt_bnep], cmd const[BNEPGETCONNLIST], arg ptr[in, bnep_connlist_req])
-ioctl$BNEPGETCONNINFO(fd fd[bt_bnep], cmd const[BNEPGETCONNINFO], arg ptr[in, bnep_conninfo])
-ioctl$BNEPGETSUPPFEAT(fd fd[bt_bnep], cmd const[BNEPGETSUPPFEAT], arg ptr[in, int32])
-
-# These are common for several bluetooth sockets (sco, l2cap, rfcomm).
-ioctl$bt(fd fd, cmd flags[bt_ioctl], arg buffer[inout])
-setsockopt$BT_SECURITY(fd fd, level const[SOL_BLUETOOTH], opt const[BT_SECURITY], arg ptr[in, bt_security], arglen len[arg])
-getsockopt$BT_SECURITY(fd fd, level const[SOL_BLUETOOTH], opt const[BT_SECURITY], arg ptr[out, bt_security], arglen len[arg])
-setsockopt$BT_DEFER_SETUP(fd fd, level const[SOL_BLUETOOTH], opt const[BT_DEFER_SETUP], arg ptr[in, int32], arglen len[arg])
-getsockopt$BT_DEFER_SETUP(fd fd, level const[SOL_BLUETOOTH], opt const[BT_DEFER_SETUP], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_VOICE(fd fd, level const[SOL_BLUETOOTH], opt const[BT_VOICE], arg ptr[in, int16], arglen len[arg])
-getsockopt$BT_VOICE(fd fd, level const[SOL_BLUETOOTH], opt const[BT_VOICE], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_FLUSHABLE(fd fd, level const[SOL_BLUETOOTH], opt const[BT_FLUSHABLE], arg ptr[in, int32], arglen len[arg])
-getsockopt$BT_FLUSHABLE(fd fd, level const[SOL_BLUETOOTH], opt const[BT_FLUSHABLE], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_POWER(fd fd, level const[SOL_BLUETOOTH], opt const[BT_POWER], arg ptr[in, int8], arglen len[arg])
-getsockopt$BT_POWER(fd fd, level const[SOL_BLUETOOTH], opt const[BT_POWER], arg ptr[in, int8], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_CHANNEL_POLICY(fd fd, level const[SOL_BLUETOOTH], opt const[BT_CHANNEL_POLICY], arg ptr[in, int32], arglen len[arg])
-getsockopt$BT_CHANNEL_POLICY(fd fd, level const[SOL_BLUETOOTH], opt const[BT_CHANNEL_POLICY], arg ptr[in, int32], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_SNDMTU(fd fd, level const[SOL_BLUETOOTH], opt const[BT_SNDMTU], arg ptr[in, int16], arglen len[arg])
-getsockopt$BT_SNDMTU(fd fd, level const[SOL_BLUETOOTH], opt const[BT_SNDMTU], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
-setsockopt$BT_RCVMTU(fd fd, level const[SOL_BLUETOOTH], opt const[BT_RCVMTU], arg ptr[in, int16], arglen len[arg])
-getsockopt$BT_RCVMTU(fd fd, level const[SOL_BLUETOOTH], opt const[BT_RCVMTU], arg ptr[in, int16], arglen ptr[in, len[arg, intptr]])
-
-sockaddr_hci {
- fam const[PF_BLUETOOTH, int16]
- dev int16
- chan flags[bt_chi_chan, int16]
-}
-
-hci_inquiry_req {
- dev int16
- flags int16
- lap0 int8
- lap1 int8
- lap2 int8
- len int8
- rsp int8
-}
-
-hci_ufilter {
- type int32
- event0 int32
- event1 int32
- opcode int16
-}
-
-sockaddr_sco {
- fam const[PF_BLUETOOTH, int16]
- addr bdaddr
-}
-
-sockaddr_l2 {
- fam const[PF_BLUETOOTH, int16]
- psm int16
- addr bdaddr
- cid int16
- typ int8
-}
-
-bdaddr {
- addr0 int8
- addr1 int8
- addr2 int8
- addr3 int8
- addr4 int8
- addr5 int8
-}
-
-bt_security {
- lev int8
- keysize int8
-}
-
-l2cap_options {
- omtu int16
- imtu int16
- flushto int16
- mode int8
- fcs int8
- maxtx int8
- txwin int16
-}
-
-l2cap_conninfo {
- handle int16
- devcls0 int8
- devcls1 int8
- devcls2 int8
-}
-
-sockaddr_rc {
- fam const[PF_BLUETOOTH, int16]
- addr bdaddr
- chan int8
-}
-
-hidp_connadd_req {
- ctrlsk fd
- intrsk fd
- parser int16
- rdsize int16
- rddata buffer[in]
- country int8
- subclas int8
- vendor int16
- product int16
- version int16
- flags int32
- idleto int32
- name array[int8]
-}
-
-hidp_conndel_req {
- addr bdaddr
- flags int32
-}
-
-hidp_conninfo {
- addr bdaddr
- flags int32
- state int16
- vendor int16
- product int16
- ver int16
- name array[int8]
-}
-
-hidp_connlist_req {
- cnum len[ci, int32]
- ci ptr[out, array[hidp_conninfo]]
-}
-
-cmtp_connadd_req {
- sock fd
- flags int32
-}
-
-cmtp_conndel_req {
- addr bdaddr
- flags int32
-}
-
-cmtp_conninfo {
- addr bdaddr
- flags int32
- state int16
- num int32
-}
-
-cmtp_connlist_req {
- cnum len[ci, int32]
- ci ptr[out, array[cmtp_conninfo]]
-}
-
-bnep_connadd_req {
- sock fd
- flags int32
- role int16
- device array[int8]
-}
-
-bnep_conndel_req {
- flags int32
- dst array[int8, 6]
-}
-
-bnep_conninfo {
- flags int32
- role int16
- state int16
- dst array[int8, 6]
- device array[int8, 16]
-}
-
-bnep_connlist_req {
- cnum len[ci, int32]
- ci ptr[out, array[bnep_conninfo]]
-}
-
-bt_chi_chan = HCI_CHANNEL_RAW, HCI_CHANNEL_USER, HCI_CHANNEL_MONITOR, HCI_CHANNEL_CONTROL
-bt_hci_ioctl = HCIDEVUP, HCIDEVDOWN, HCIDEVRESET, HCIDEVRESTAT, HCIGETDEVLIST, HCIGETDEVINFO, HCIGETCONNLIST, HCIGETCONNINFO, HCIGETAUTHINFO, HCISETRAW, HCISETSCAN, HCISETAUTH, HCISETENCRYPT, HCISETPTYPE, HCISETLINKPOL, HCISETLINKMODE, HCISETACLMTU, HCISETSCOMTU, HCIBLOCKADDR, HCIUNBLOCKADDR, HCIINQUIRY
-bt_hci_sockopt = HCI_DATA_DIR, HCI_TIME_STAMP, HCI_FILTER
-bt_ioctl = TIOCOUTQ, TIOCINQ, SIOCGSTAMP, SIOCGSTAMPNS
-bt_l2cap_type = SOCK_SEQPACKET, SOCK_STREAM, SOCK_DGRAM, SOCK_RAW
-bt_l2cap_lm = L2CAP_LM_MASTER, L2CAP_LM_AUTH, L2CAP_LM_ENCRYPT, L2CAP_LM_TRUSTED, L2CAP_LM_RELIABLE, L2CAP_LM_SECURE, L2CAP_LM_FIPS
-bt_rfcomm_type = SOCK_STREAM, SOCK_RAW
-
-define BTPROTO_L2CAP 0
-define BTPROTO_HCI 1
-define BTPROTO_SCO 2
-define BTPROTO_RFCOMM 3
-define BTPROTO_BNEP 4
-define BTPROTO_CMTP 5
-define BTPROTO_HIDP 6
-define BTPROTO_AVDTP 7
-
-define SOL_BLUETOOTH 274
-define SOL_HCI 0
-define SOL_L2CAP 6
-define SOL_SCO 17
-define SOL_RFCOMM 18
-
-define HCI_DATA_DIR 1
-define HCI_FILTER 2
-define HCI_TIME_STAMP 3
-
-define HCI_CHANNEL_RAW 0
-define HCI_CHANNEL_USER 1
-define HCI_CHANNEL_MONITOR 2
-define HCI_CHANNEL_CONTROL 3
-
-define HCIDEVUP _IOW('H', 201, int)
-define HCIDEVDOWN _IOW('H', 202, int)
-define HCIDEVRESET _IOW('H', 203, int)
-define HCIDEVRESTAT _IOW('H', 204, int)
-define HCIGETDEVLIST _IOR('H', 210, int)
-define HCIGETDEVINFO _IOR('H', 211, int)
-define HCIGETCONNLIST _IOR('H', 212, int)
-define HCIGETCONNINFO _IOR('H', 213, int)
-define HCIGETAUTHINFO _IOR('H', 215, int)
-define HCISETRAW _IOW('H', 220, int)
-define HCISETSCAN _IOW('H', 221, int)
-define HCISETAUTH _IOW('H', 222, int)
-define HCISETENCRYPT _IOW('H', 223, int)
-define HCISETPTYPE _IOW('H', 224, int)
-define HCISETLINKPOL _IOW('H', 225, int)
-define HCISETLINKMODE _IOW('H', 226, int)
-define HCISETACLMTU _IOW('H', 227, int)
-define HCISETSCOMTU _IOW('H', 228, int)
-define HCIBLOCKADDR _IOW('H', 230, int)
-define HCIUNBLOCKADDR _IOW('H', 231, int)
-define HCIINQUIRY _IOR('H', 240, int)
-
-define BT_SECURITY 4
-define BT_DEFER_SETUP 7
-define BT_VOICE 11
-define BT_SNDMTU 12
-define BT_RCVMTU 13
-define BT_CHANNEL_POLICY 10
-define BT_FLUSHABLE 8
-define BT_POWER 9
-
-define SCO_OPTIONS 0x01
-define SCO_CONNINFO 0x02
-
-define L2CAP_OPTIONS 0x01
-define L2CAP_CONNINFO 0x02
-define L2CAP_LM 0x03
-
-define L2CAP_LM_MASTER 0x0001
-define L2CAP_LM_AUTH 0x0002
-define L2CAP_LM_ENCRYPT 0x0004
-define L2CAP_LM_TRUSTED 0x0008
-define L2CAP_LM_RELIABLE 0x0010
-define L2CAP_LM_SECURE 0x0020
-define L2CAP_LM_FIPS 0x0040
-
-define RFCOMM_CONNINFO 0x02
-define RFCOMM_LM 0x03
-
-define HIDPCONNADD _IOW('H', 200, int)
-define HIDPCONNDEL _IOW('H', 201, int)
-define HIDPGETCONNLIST _IOR('H', 210, int)
-define HIDPGETCONNINFO _IOR('H', 211, int)
-
-define CMTPCONNADD _IOW('C', 200, int)
-define CMTPCONNDEL _IOW('C', 201, int)
-define CMTPGETCONNLIST _IOR('C', 210, int)
-define CMTPGETCONNINFO _IOR('C', 211, int)
-
-define BNEPCONNADD _IOW('B', 200, int)
-define BNEPCONNDEL _IOW('B', 201, int)
-define BNEPGETCONNLIST _IOR('B', 210, int)
-define BNEPGETCONNINFO _IOR('B', 211, int)
-define BNEPGETSUPPFEAT _IOR('B', 212, int)
-