diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2015-12-28 16:11:15 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2015-12-28 16:11:15 +0100 |
| commit | bd768c8f40f84598cf2c92a7b0f5a54ff7b53153 (patch) | |
| tree | aeaa10bfd08bd852077baad32ccf401183665dfe /sys/sys.txt | |
| parent | 0451ffa50aaf44ea28bfe729c6080b6ec97f7bb5 (diff) | |
sys: move more subsystems into separate files
Diffstat (limited to 'sys/sys.txt')
| -rw-r--r-- | sys/sys.txt | 1270 |
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) - |
