cosmopolitan/libc/sysv/consts.sh
Justine Tunney b73e35c6fa
Improve open source compatibility
This change tunes the default stack size for the outside world to 8mb
while at the same time, reducing Cosmopolitan's default stack size to
64kb. You can override the stack size using STATIC_STACK_SIZE(). Your
build scripts should point to o//ape/public/ape.lds

This change also fixes the definition of SOMAXCONN and removes AF_RDS
since it's not polyfilled and Python 3.11 complained.
2022-09-08 03:19:35 -07:00

2381 lines
195 KiB
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*bin/echo ' -*- mode:sh; indent-tabs-mode:nil; tab-width:8; coding:utf-8 -*-│
│vi: set net ft=sh ts=2 sts=2 sw=2 fenc=utf-8 :vi│
╞══════════════════════════════════════════════════════════════════════════════╡
│ Copyright 2020 Justine Alexandra Roberts Tunney │
│ │
│ Permission to use, copy, modify, and/or distribute this software for │
│ any purpose with or without fee is hereby granted, provided that the │
│ above copyright notice and this permission notice appear in all copies. │
│ │
│ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL │
│ WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED │
│ WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE │
│ AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL │
│ DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR │
│ PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER │
│ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR │
│ PERFORMANCE OF THIS SOFTWARE. │
╚────────────────────────────────────────────────────────────────'>/dev/null #*/
dir=libc/sysv/consts
. libc/sysv/gen.sh
# The Fifth Bell System, Community Edition
# » catalogue of carnage
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon errno ENOSYS 38 78 78 78 78 1 # system call unavailable; bsd consensus; kNtErrorInvalidFunction
syscon errno EPERM 1 1 1 1 1 12 # operation not permitted; unix consensus; kNtErrorInvalidAccess (should be kNtErrorNotOwner but is that mutex only??); raised by accept(2), acct(2), add_key(2), adjtimex(2), arch_prctl(2), bdflush(2), bpf(2), capget(2), chmod(2), chown(2), chroot(2), clock_getres(2), clone(2), copy_file_range(2), create_module(2), delete_module(2), epoll_ctl(2), execve(2), fallocate(2), fanotify_init(2), fcntl(2), futex(2), get_robust_list(2), getdomainname(2), getgroups(2), gethostname(2), getpriority(2), getrlimit(2), getsid(2), gettimeofday(2), idle(2), init_module(2), io_submit(2), ioctl_console(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), ioctl_ns(2), ioctl_tty(2), ioperm(2), iopl(2), ioprio_set(2), kcmp(2), kexec_load(2), keyctl(2), kill(2), link(2), lookup_dcookie(2), madvise(2), mbind(2), membarrier(2), migrate_pages(2), mkdir(2), mknod(2), mlock(2), mmap(2), mount(2), move_pages(2), msgctl(2), nice(2), open(2), open_by_handle_at(2), pciconfig_read(2), perf_event_open(2), pidfd_getfd(2), pidfd_send_signal(2), pivot_root(2), prctl(2), process_vm_readv(2), ptrace(2), quotactl(2), reboot(2), rename(2), request_key(2), rmdir(2), rt_sigqueueinfo(2), sched_setaffinity(2), sched_setattr(2), sched_setparam(2), sched_setscheduler(2), semctl(2), seteuid(2), setfsgid(2), setfsuid(2), setgid(2), setns(2), setpgid(2), setresuid(2), setreuid(2), setsid(2), setuid(2), setup(2), setxattr(2), shmctl(2), shmget(2), sigaltstack(2), spu_create(2), stime(2), swapon(2), symlink(2), syslog(2), timer_create(2), timerfd_create(2), tkill(2), truncate(2), umount(2), unlink(2), unshare(2), utime(2), utimensat(2), vhangup(2), vm86(2), write(2), unix(7), ip(7)
syscon errno ENOENT 2 2 2 2 2 2 # no such file or directory; unix consensus; kNtErrorFileNotFound; raised by access(2), acct(2), alloc_hugepages(2), bind(2), bpf(2), chdir(2), chmod(2), chown(2), chroot(2), clock_getres(2), delete_module(2), epoll_ctl(2), execve(2), execveat(2), fanotify_mark(2), getdents(2), inotify_add_watch(2), ioctl_fat(2), kcmp(2), keyctl(2), link(2), mkdir(2), mknod(2), mount(2), msgget(2), open(2), open_by_handle_at(2), perf_event_open(2), query_module(2), quotactl(2), readdir(2), readlink(2), rename(2), rmdir(2), semget(2), shmget(2), spu_create(2), stat(2), statfs(2), statx(2), swapon(2), symlink(2), truncate(2), umount(2), unlink(2), utime(2), utimensat(2), unix(7), ip(7)
syscon errno ESRCH 3 3 3 3 3 566 # no such process; kNtErrorThreadNotInProcess (cf. kNtErrorInvalidHandle); raised by capget(2), get_robust_list(2), getpriority(2), getrlimit(2), getsid(2), ioprio_set(2), kcmp(2), kill(2), migrate_pages(2), move_pages(2), perf_event_open(2), pidfd_getfd(2), pidfd_open(2), pidfd_send_signal(2), process_vm_readv(2), ptrace(2), quotactl(2), rt_sigqueueinfo(2), sched_rr_get_interval(2), sched_setaffinity(2), sched_setattr(2), sched_setparam(2), sched_setscheduler(2), set_thread_area(2), setpgid(2), tkill(2), utimensat(2), unix(7)
syscon errno EINTR 4 4 4 4 4 10004 # the greatest of all errnos; crucial for building real time reliable software; unix consensus; WSAEINTR; raised by accept(2), clock_nanosleep(2), close(2), connect(2), dup(2), epoll_wait(2), fallocate(2), fcntl(2), flock(2), futex(2), getrandom(2), io_getevents(2), msgop(2), nanosleep(2), open(2), pause(2), perf_event_open(2), poll(2), ptrace(2), read(2), recv(2), request_key(2), select(2), semop(2), send(2), sigsuspend(2), sigwaitinfo(2), spu_run(2), statfs(2), truncate(2), wait(2), write(2)
syscon errno EIO 5 5 5 5 5 1117 # unix consensus; kNtErrorIoDevice; raised by access(2) acct(2) chdir(2) chmod(2) chown(2) chroot(2) close(2) copy_file_range(2) execve(2) fallocate(2) fsync(2) ioperm(2) link(2) madvise(2) mbind(2) pciconfig_read(2) ptrace(2) read(2) readlink(2) sendfile(2) statfs(2) symlink(2) sync_file_range(2) truncate(2) unlink(2) write(2)
syscon errno ENXIO 6 6 6 6 6 1112 # no such device or address; unix consensus; kNtErrorNoMediaInDrive; raised by lseek(2), mount(2), open(2), prctl(2)
syscon errno E2BIG 7 7 7 7 7 1639 # argument list too long; unix consensus; kNtErrorInvalidCommandLine; raised by bpf(2), execve(2), getxattr(2), listxattr(2), move_pages(2), msgop(2), openat2(2), perf_event_open(2), sched_setattr(2), semop(2)
syscon errno ENOEXEC 8 8 8 8 8 193 # exec format error; unix consensus; kNtErrorBadExeFormat; raised by execve(2), init_module(2), kexec_load(2), uselib(2)
syscon errno EBADF 9 9 9 9 9 6 # bad file descriptor; cf. EBADFD; unix consensus; kNtErrorInvalidHandle; raised by accept(2), access(2), bind(2), bpf(2), chdir(2), chmod(2), chown(2), close(2), connect(2), copy_file_range(2), dup(2), epoll_ctl(2), epoll_wait(2), execveat(2), fallocate(2), fanotify_mark(2), fcntl(2), flock(2), fsync(2), futimesat(2), getdents(2), getpeername(2), getsockname(2), getsockopt(2), init_module(2), inotify_add_watch(2), inotify_rm_watch(2), io_submit(2), ioctl(2), ioctl_console(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), ioctl_getfsmap(2), kcmp(2), kexec_load(2), link(2), listen(2), llseek(2), lseek(2), madvise(2), mkdir(2), mknod(2), mmap(2), open(2), open_by_handle_at(2), perf_event_open(2), pidfd_getfd(2), pidfd_send_signal(2), posix_fadvise(2), prctl(2), read(2), readahead(2), readdir(2), readlink(2), recv(2), rename(2), select(2), send(2), sendfile(2), setns(2), shutdown(2), signalfd(2), splice(2), spu_run(2), stat(2), statfs(2), statx(2), symlink(2), sync(2), sync_file_range(2), timerfd_create(2), truncate(2), unlink(2), utimensat(2), vmsplice(2), write(2), unix(7)
syscon errno ECHILD 10 10 10 10 10 128 # no child process; unix consensus; kNtErrorWaitNoChildren; raised by wait(2), waitpid(2), waitid(2), wait3(2), wait4(2)
syscon errno EAGAIN 11 35 35 35 35 10035 # resource temporarily unavailable (e.g. SO_RCVTIMEO expired, too many processes, too much memory locked, read or write with O_NONBLOCK needs polling, etc.); bsd consensus; WSAEWOULDBLOCK; raised by accept(2), clone(2), connect(2), eventfd(2), fcntl(2), fork(2), futex(2), getrandom(2), io_cancel(2), io_setup(2), io_submit(2), ioctl_userfaultfd(2), keyctl(2), madvise(2), mincore(2), mlock(2), mmap(2), mremap(2), msgop(2), openat2(2), poll(2), read(2), rt_sigqueueinfo(2), select(2), semop(2), send(2), sendfile(2), setresuid(2), setreuid(2), setuid(2), signalfd(2), sigwaitinfo(2), splice(2), tee(2), timer_create(2), timerfd_create(2), tkill(2), umount(2), vmsplice(2), write(2), ip(7)
syscon errno ENOMEM 12 12 12 12 12 14 # we require more vespene gas; unix consensus; kNtErrorOutofmemory; raised by access(2), acct(2), add_key(2), bind(2), bpf(2), chdir(2), chmod(2), chown(2), chroot(2), clone(2), copy_file_range(2), create_module(2), epoll_create(2), epoll_ctl(2), eventfd(2), execve(2), fanotify_init(2), fanotify_mark(2), fork(2), getgroups(2), getrlimit(2), init_module(2), inotify_add_watch(2), inotify_init(2), io_setup(2), ioctl_fideduperange(2), ioctl_getfsmap(2), ioperm(2), kexec_load(2), keyctl(2), link(2), lookup_dcookie(2), madvise(2), mbind(2), memfd_create(2), mincore(2), mkdir(2), mknod(2), mlock(2), mmap(2), mount(2), mprotect(2), mremap(2), msgget(2), msgop(2), msync(2), open(2), pidfd_open(2), poll(2), process_vm_readv(2), readlink(2), recv(2), rename(2), request_key(2), rmdir(2), s390_guarded_storage(2), s390_pci_mmio_write(2), s390_runtime_instr(2), s390_sthyi(2), select(2), semget(2), semop(2), send(2), sendfile(2), set_mempolicy(2), setns(2), shmctl(2), shmget(2), shmop(2), sigaltstack(2), signalfd(2), splice(2), spu_create(2), spu_run(2), stat(2), statfs(2), statx(2), subpage_prot(2), swapon(2), symlink(2), sync_file_range(2), tee(2), timer_create(2), timerfd_create(2), umount(2), unlink(2), unshare(2), userfaultfd(2), vmsplice(2), unix(7), ip(7)
syscon errno EACCES 13 13 13 13 13 5 # permission denied; unix consensus; kNtErrorAccessDenied; raised by access(2), acct(2), add_key(2), bind(2), bpf(2), chdir(2), chmod(2), chown(2), chroot(2), clock_getres(2), connect(2), execve(2), fcntl(2), futex(2), getpriority(2), inotify_add_watch(2), keyctl(2), link(2), madvise(2), mkdir(2), mknod(2), mmap(2), mount(2), move_pages(2), mprotect(2), msgctl(2), msgget(2), msgop(2), open(2), perf_event_open(2), prctl(2), ptrace(2), quotactl(2), readlink(2), rename(2), request_key(2), rmdir(2), semctl(2), semget(2), semop(2), send(2), setpgid(2), shmctl(2), shmget(2), shmop(2), socket(2), spu_create(2), stat(2), statfs(2), statx(2), symlink(2), truncate(2), unlink(2), uselib(2), utime(2), utimensat(2), ip(7)
syscon errno EFAULT 14 14 14 14 14 487 # pointer passed to system call that would otherwise segfault; unix consensus; kNtErrorInvalidAddress; raised by accept(2), access(2), acct(2), add_key(2), adjtimex(2), arch_prctl(2), bdflush(2), bind(2), bpf(2), cacheflush(2), capget(2), chdir(2), chmod(2), chown(2), chroot(2), clock_getres(2), clock_nanosleep(2), connect(2), create_module(2), delete_module(2), epoll_wait(2), execve(2), fcntl(2), futex(2), get_mempolicy(2), get_robust_list(2), getcpu(2), getdents(2), getdomainname(2), getgroups(2), gethostname(2), getitimer(2), getpeername(2), getrandom(2), getresuid(2), getrlimit(2), getrusage(2), getsockname(2), getsockopt(2), gettimeofday(2), getunwind(2), init_module(2), inotify_add_watch(2), io_cancel(2), io_destroy(2), io_getevents(2), io_setup(2), io_submit(2), ioctl(2), ioctl_getfsmap(2), ioctl_userfaultfd(2), kcmp(2), keyctl(2), link(2), llseek(2), lookup_dcookie(2), mbind(2), memfd_create(2), migrate_pages(2), mincore(2), mkdir(2), mknod(2), mmap2(2), modify_ldt(2), mount(2), move_pages(2), mremap(2), msgctl(2), msgop(2), msync(2), nanosleep(2), open(2), open_by_handle_at(2), perf_event_open(2), pipe(2), poll(2), prctl(2), process_vm_readv(2), ptrace(2), query_module(2), quotactl(2), read(2), readdir(2), readlink(2), reboot(2), recv(2), rename(2), request_key(2), rmdir(2), s390_guarded_storage(2), s390_pci_mmio_write(2), s390_sthyi(2), sched_rr_get_interval(2), sched_setaffinity(2), semctl(2), semop(2), send(2), sendfile(2), set_mempolicy(2), set_thread_area(2), shmctl(2), sigaction(2), sigaltstack(2), sigpending(2), sigprocmask(2), sigsuspend(2), socketpair(2), spu_create(2), spu_run(2), stat(2), statfs(2), statx(2), stime(2), subpage_prot(2), symlink(2), sysctl(2), sysfs(2), sysinfo(2), time(2), timer_settime(2), timerfd_create(2), times(2), truncate(2), umount(2), uname(2), unlink(2), ustat(2), utimensat(2), vm86(2), write(2), unix(7)
syscon errno ENOTBLK 15 15 15 15 15 26 # block device required; unix consensus; kNtErrorNotDosDisk; raised by mount(2), quotactl(2), umount(2)
syscon errno EBUSY 16 16 16 16 16 170 # device or resource busy; unix consensus; kNtErrorBusy; raised by bdflush(2), delete_module(2), dup(2), fcntl(2), init_module(2), ioctl_tty(2), ioctl_userfaultfd(2), kexec_load(2), mount(2), msync(2), pivot_root(2), prctl(2), ptrace(2), quotactl(2), rename(2), rmdir(2), sched_setattr(2), swapon(2), umount(2)
syscon errno EEXIST 17 17 17 17 17 183 # file exists; unix consensus; kNtErrorAlreadyExists (should be kNtErrorFileExists too); raised by bpf(2), create_module(2), epoll_ctl(2), init_module(2), inotify_add_watch(2), keyctl(2), link(2), mkdir(2), mknod(2), mmap(2), msgget(2), open(2), rename(2), rmdir(2), semget(2), setxattr(2), shmget(2), spu_create(2), symlink(2)
syscon errno EXDEV 18 18 18 18 18 17 # improper link; unix consensus; kNtErrorNotSameDevice; raised by copy_file_range(2), fanotify_mark(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), link(2), openat2(2), rename(2)
syscon errno ENODEV 19 19 19 19 19 1200 # no such device; unix consensus; kNtErrorBadDevice; raised by arch_prctl(2), eventfd(2), fallocate(2), fanotify_mark(2), mmap(2), mount(2), move_pages(2), open(2), pciconfig_read(2), perf_event_open(2), pidfd_open(2), prctl(2), s390_pci_mmio_write(2), signalfd(2), spu_create(2), timerfd_create(2)
syscon errno ENOTDIR 20 20 20 20 20 3 # not a directory; unix consensus; kNtErrorPathNotFound; raised by access(2), acct(2), bind(2), chdir(2), chmod(2), chown(2), chroot(2), execve(2), execveat(2), fanotify_mark(2), fcntl(2), futimesat(2), getdents(2), inotify_add_watch(2), ioctl_fat(2), keyctl(2), link(2), mkdir(2), mknod(2), mount(2), open(2), open_by_handle_at(2), pivot_root(2), readdir(2), readlink(2), rename(2), rmdir(2), spu_create(2), stat(2), statfs(2), statx(2), symlink(2), sysctl(2), truncate(2), unlink(2), utimensat(2)
syscon errno EISDIR 21 21 21 21 21 267 # is a a directory; unix consensus; kNtErrorDirectory; raised by acct(2), copy_file_range(2), execve(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), open(2), read(2), rename(2), truncate(2), unlink(2)
syscon errno EINVAL 22 22 22 22 22 87 # invalid argument; unix consensus; kNtErrorInvalidParameter; raised by accept(2), access(2), add_key(2), adjtimex(2), arch_prctl(2), bdflush(2), bind(2), bpf(2), cacheflush(2), capget(2), chmod(2), chown(2), clock_getres(2), clock_nanosleep(2), clone(2), copy_file_range(2), create_module(2), dup(2), epoll_create(2), epoll_ctl(2), epoll_wait(2), eventfd(2), execve(2), execveat(2), fallocate(2), fanotify_init(2), fanotify_mark(2), fcntl(2), flock(2), futex(2), get_mempolicy(2), get_robust_list(2), getdents(2), getdomainname(2), getgroups(2), gethostname(2), getitimer(2), getpeername(2), getpriority(2), getrandom(2), getrlimit(2), getrusage(2), getsockname(2), getsockopt(2), gettimeofday(2), init_module(2), inotify_add_watch(2), inotify_init(2), inotify_rm_watch(2), io_cancel(2), io_destroy(2), io_getevents(2), io_setup(2), io_submit(2), ioctl(2), ioctl_console(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), ioctl_getfsmap(2), ioctl_ns(2), ioctl_tty(2), ioctl_userfaultfd(2), ioperm(2), iopl(2), ioprio_set(2), kcmp(2), kexec_load(2), keyctl(2), kill(2), link(2), llseek(2), lookup_dcookie(2), lseek(2), madvise(2), mbind(2), membarrier(2), memfd_create(2), migrate_pages(2), mincore(2), mkdir(2), mknod(2), mlock(2), mmap(2), mmap2(2), modify_ldt(2), mount(2), move_pages(2), mprotect(2), mremap(2), msgctl(2), msgop(2), msync(2), nanosleep(2), open(2), open_by_handle_at(2), openat2(2), pciconfig_read(2), perf_event_open(2), personality(2), pidfd_getfd(2), pidfd_open(2), pidfd_send_signal(2), pipe(2), pivot_root(2), pkey_alloc(2), poll(2), posix_fadvise(2), prctl(2), process_vm_readv(2), ptrace(2), query_module(2), quotactl(2), read(2), readahead(2), readdir(2), readlink(2), readv(2), reboot(2), recv(2), recvmmsg(2), remap_file_pages(2), rename(2), request_key(2), rmdir(2), rt_sigqueueinfo(2), s390_guarded_storage(2), s390_pci_mmio_write(2), s390_runtime_instr(2), s390_sthyi(2), sched_get_priority_max(2), sched_rr_get_interval(2), sched_setaffinity(2), sched_setattr(2), sched_setparam(2), sched_setscheduler(2), seccomp(2), select(2), semctl(2), semget(2), semop(2), send(2), sendfile(2), set_mempolicy(2), set_thread_area(2), seteuid(2), setfsgid(2), setfsuid(2), setgid(2), setns(2), setpgid(2), setresuid(2), setreuid(2), setuid(2), shmctl(2), shmget(2), shmop(2), shutdown(2), sigaction(2), sigaltstack(2), signal(2), signalfd(2), sigprocmask(2), sigsuspend(2), sigwaitinfo(2), socket(2), splice(2), spu_create(2), spu_run(2), stat(2), statx(2), subpage_prot(2), swapon(2), sync_file_range(2), sysfs(2), syslog(2), tee(2), timer_create(2), timer_delete(2), timer_getoverrun(2), timer_settime(2), timerfd_create(2), tkill(2), truncate(2), umount(2), unlink(2), unshare(2), userfaultfd(2), ustat(2), utimensat(2), vmsplice(2), wait(2), write(2), unix(7), ip(7)
syscon errno ENFILE 23 23 23 23 23 331 # too many open files in system; unix consensus; kNtErrorTooManyDescriptors; raised by accept(2), acct(2), epoll_create(2), eventfd(2), execve(2), futex(2), inotify_init(2), memfd_create(2), mmap(2), open(2), pidfd_getfd(2), pidfd_open(2), pipe(2), shmget(2), signalfd(2), socket(2), socketpair(2), spu_create(2), swapon(2), timerfd_create(2), uselib(2), userfaultfd(2)
syscon errno EMFILE 24 24 24 24 24 4 # too many open files; unix consensus; kNtErrorTooManyOpenFiles; raised by accept(2), dup(2), epoll_create(2), eventfd(2), execve(2), fanotify_init(2), fcntl(2), inotify_init(2), memfd_create(2), mount(2), open(2), perf_event_open(2), pidfd_getfd(2), pidfd_open(2), pipe(2), signalfd(2), socket(2), socketpair(2), spu_create(2), timerfd_create(2)
syscon errno ENOTTY 25 25 25 25 25 1118 # inappropriate i/o control operation; unix consensus; kNtErrorSerialNoDevice; raised by ioctl(2), ioctl_console(2), ioctl_fat(2), ioctl_ns(2), ioctl_tty(2)
syscon errno ETXTBSY 26 26 26 26 26 148 # won't open executable that's executing in write mode; try UnlockExecutable(); unix consensus; kNtErrorPathBusy; raised by access(2), copy_file_range(2), execve(2), fallocate(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), mmap(2), open(2), truncate(2)
syscon errno EFBIG 27 27 27 27 27 223 # file too large; unix consensus; kNtErrorFileTooLarge; raised by copy_file_range(2), fallocate(2), init_module(2), open(2), semop(2), truncate(2), write(2)
syscon errno ENOSPC 28 28 28 28 28 39 # no space left on device; unix consensus; kNtErrorDiskFull; raised by copy_file_range(2), epoll_ctl(2), fallocate(2), fanotify_mark(2), fsync(2), inotify_add_watch(2), link(2), mkdir(2), mknod(2), msgget(2), open(2), perf_event_open(2), pkey_alloc(2), query_module(2), rename(2), semget(2), setxattr(2), shmget(2), spu_create(2), symlink(2), sync_file_range(2), write(2)
syscon errno EDQUOT 122 69 69 69 69 1816 # disk quota exceeded; bsd consensus; kNtErrorNotEnoughQuota; raised by add_key(2), keyctl(2), link(2), mkdir(2), mknod(2), open(2), rename(2), request_key(2), setxattr(2), symlink(2), write(2)
syscon errno ESPIPE 29 29 29 29 29 25 # invalid seek; unix consensus; kNtErrorSeek; raised by fallocate(2), lseek(2), posix_fadvise(2), sendfile(2), splice(2), sync_file_range(2)
syscon errno EROFS 30 30 30 30 30 6009 # read-only filesystem; unix consensus; kNtErrorFileReadOnly; raised by access(2), acct(2), bind(2), chmod(2), chown(2), link(2), mkdir(2), mknod(2), mount(2), open(2), rename(2), rmdir(2), symlink(2), truncate(2), unlink(2), utime(2), utimensat(2)
syscon errno EMLINK 31 31 31 31 31 1142 # too many links; unix consensus; kNtErrorTooManyLinks; raised by link(2), mkdir(2), rename(2)
syscon errno EPIPE 32 32 32 32 32 109 # broken pipe; unix consensus; kNtErrorBrokenPipe; raised by send(2), write(2), tcp(7), unix(7), ip(7)
syscon errno EDOM 33 33 33 33 33 33 # mathematics argument out of domain of function; bsd consensus; fudged on NT; returned by cos(3), fmod(3), log1p(3), sin(3), tan(3), tgamma(3)
syscon errno ERANGE 34 34 34 34 34 34 # result too large; bsd consensus; fudged on NT; raised by getxattr(2), listxattr(2), lookup_dcookie(2), prctl(2), quotactl(2), semctl(2), semop(2), setxattr(2)
syscon errno EDEADLK 35 11 11 11 11 1131 # resource deadlock avoided; bsd consensus; kNtErrorPossibleDeadlock; raised by fcntl(2), keyctl(2)
syscon errno ENAMETOOLONG 36 63 63 63 63 10063 # filename too long; bsd consensus; WSAENAMETOOLONG; raised by access(2), acct(2), bind(2), chdir(2), chmod(2), chown(2), chroot(2), execve(2), gethostname(2), inotify_add_watch(2), link(2), lookup_dcookie(2), mkdir(2), mknod(2), mount(2), open(2), readlink(2), rename(2), rmdir(2), spu_create(2), stat(2), statfs(2), statx(2), symlink(2), truncate(2), umount(2), unlink(2), utimensat(2)
syscon errno ENOLCK 37 77 77 77 77 0 # no locks available; bsd consensus; raised by fcntl(2), flock(2)
syscon errno ENOTEMPTY 39 66 66 66 66 145 # directory not empty; bsd consensus; kNtErrorDirNotEmpty (TODO: What is WSAENOTEMPTY? 10066); raised by rmdir(2)
syscon errno ELOOP 40 62 62 62 62 1921 # too many levels of symbolic links; bsd consensus; kNtErrorCantResolveFilename; raised by access(2), acct(2), bind(2), chdir(2), chmod(2), chown(2), chroot(2), epoll_ctl(2), execve(2), execveat(2), keyctl(2), link(2), mkdir(2), mknod(2), mount(2), open(2), open_by_handle_at(2), openat2(2), readlink(2), rename(2), rmdir(2), spu_create(2), stat(2), statfs(2), statx(2), symlink(2), truncate(2), unlink(2), utimensat(2)
syscon errno ENOMSG 42 91 83 90 83 0 # raised by msgop(2)
syscon errno EIDRM 43 90 82 89 82 0 # identifier removed; raised by msgctl(2), msgget(2), msgop(2), semctl(2), semop(2), shmctl(2), shmget(2), shmop(2)
syscon errno ETIME 62 101 60 60 92 0 # timer expired; timer expired; raised by connect(2), futex(2), keyctl(2), mq_receive(2), mq_send(2), rtime(2), sem_wait(2)
syscon errno EPROTO 71 100 92 95 96 0 # raised by accept(2), connect(2), socket(2), socketpair(2)
syscon errno EOVERFLOW 75 84 84 87 84 0 # raised by aio_read(2), copy_file_range(2), ctime(2), fanotify_init(2), lseek(2), mmap(2), open(2), open_by_handle_at(2), sem_post(2), sendfile(2), shmctl(2), stat(2), statfs(2), statvfs(2), time(2), timegm(2)
syscon errno EILSEQ 84 92 86 84 85 0 # returned by fgetwc(3), fputwc(3), getwchar(3), putwchar(3), scanf(3), ungetwc(3)
syscon errno EUSERS 87 68 68 68 68 10068 # too many users; bsd consensus; WSAEUSERS; raised by acct(2)
syscon errno ENOTSOCK 88 38 38 38 38 10038 # not a socket; bsd consensus; WSAENOTSOCK; raised by accept(2), bind(2), connect(2), getpeername(2), getsockname(2), getsockopt(2), listen(2), recv(2), send(2), shutdown(2)
syscon errno EDESTADDRREQ 89 39 39 39 39 10039 # destination address required; bsd consensus; WSAEDESTADDRREQ; raised by send(2), write(2)
syscon errno EMSGSIZE 90 40 40 40 40 10040 # message too long; bsd consensus; WSAEMSGSIZE; raised by keyctl(2), send(2), ip(7)
syscon errno EPROTOTYPE 91 41 41 41 41 10041 # protocol wrong type for socket; bsd consensus; WSAEPROTOTYPE; raised by connect(2), unix(7)
syscon errno ENOPROTOOPT 92 42 42 42 42 10042 # protocol not available; bsd consensus; WSAENOPROTOOPT; raised by getsockopt(2), accept(2), ip(7)
syscon errno EPROTONOSUPPORT 93 43 43 43 43 10043 # protocol not supported; bsd consensus; WSAEPROTONOSUPPORT; raised by socket(2), socketpair(2), unix(7)
syscon errno ESOCKTNOSUPPORT 94 44 44 44 44 10044 # socket type not supported; bsd consensus; WSAESOCKTNOSUPPORT; raised by unix(7), ip(7)
syscon errno ENOTSUP 95 45 45 91 86 10045 # operation not supported; raised by chmod(2), clock_getres(2), clock_nanosleep(2), getxattr(2), listxattr(2), removexattr(2), setxattr(2), timer_create(2)
syscon errno EOPNOTSUPP 95 102 45 45 45 10045 # socket operation not supported; raised by accept(2), fallocate(2), fanotify_mark(2), ioctl_ficlonerange(2), ioctl_fideduperange(2), ioctl_getfsmap(2), keyctl(2), listen(2), mmap(2), open_by_handle_at(2), pciconfig_read(2), perf_event_open(2), prctl(2), readv(2), s390_guarded_storage(2), s390_runtime_instr(2), s390_sthyi(2), send(2), socketpair(2), unix(7), ip(7)
syscon errno EPFNOSUPPORT 96 46 46 46 46 10046 # protocol family not supported; bsd consensus; WSAEPFNOSUPPORT
syscon errno EAFNOSUPPORT 97 47 47 47 47 10047 # address family not supported; bsd consensus; WSAEAFNOSUPPORT; raised by connect(2), socket(2), socketpair(2), tcp(7)
syscon errno EADDRINUSE 98 48 48 48 48 10048 # address already in use; bsd consensus; WSAEADDRINUSE; raised by bind(2), connect(2), listen(2), unix(7), ip(7)
syscon errno EADDRNOTAVAIL 99 49 49 49 49 10049 # address not available; bsd consensus; WSAEADDRNOTAVAIL; raised by bind(2), connect(2), kexec_load(2), ip(7)
syscon errno ENETDOWN 100 50 50 50 50 10050 # network is down; bsd consensus; WSAENETDOWN; raised by accept(2)
syscon errno ENETUNREACH 101 51 51 51 51 10051 # host is unreachable; bsd consensus; WSAENETUNREACH; raised by accept(2), connect(2)
syscon errno ENETRESET 102 52 52 52 52 10052 # connection reset by network; bsd consensus; WSAENETRESET
syscon errno ECONNABORTED 103 53 53 53 53 10053 # connection reset before accept; bsd consensus; WSAECONNABORTED; raised by accept(2)
syscon errno ECONNRESET 104 54 54 54 54 10054 # connection reset by client; bsd consensus; WSAECONNRESET; raised by send(2), unix(7)
syscon errno ENOBUFS 105 55 55 55 55 10055 # no buffer space available; bsd consensus; WSAENOBUFS; raised by getpeername(2), getsockname(2), send(2), ip(7)
syscon errno EISCONN 106 56 56 56 56 10056 # socket is connected; bsd consensus; WSAEISCONN; raised by connect(2), send(2), unix(7), ip(7)
syscon errno ENOTCONN 107 57 57 57 57 10057 # socket is not connected; bsd consensus; WSAENOTCONN; raised by getpeername(2), recv(2), send(2), shutdown(2), ip(7)
syscon errno ESHUTDOWN 108 58 58 58 58 10058 # cannot send after transport endpoint shutdown; note that shutdown write is an EPIPE; bsd consensus; WSAESHUTDOWN
syscon errno ETOOMANYREFS 109 59 59 59 59 10059 # too many references: cannot splice; bsd consensus; WSAETOOMANYREFS; raised by sendmsg(2), unix(7)
syscon errno ETIMEDOUT 110 60 60 60 60 10060 # connection timed out; bsd consensus; WSAETIMEDOUT; raised by connect(2), futex(2), keyctl(2), tcp(7)
syscon errno ECONNREFUSED 111 61 61 61 61 10061 # bsd consensus; WSAECONNREFUSED; raised by connect(2), listen(2), recv(2), unix(7), udp(7)system-imposed limit on the number of threads was encountered.
syscon errno EHOSTDOWN 112 64 64 64 64 10064 # bsd consensus; WSAEHOSTDOWN; raised by accept(2)
syscon errno EHOSTUNREACH 113 65 65 65 65 10065 # bsd consensus; WSAEHOSTUNREACH; raised by accept(2), ip(7)
syscon errno EALREADY 114 37 37 37 37 10037 # connection already in progress; bsd consensus; WSAEALREADY; raised by connect(2), send(2), ip(7)
syscon errno EINPROGRESS 115 36 36 36 36 10036 # bsd consensus; WSAEINPROGRESS; raised by connect(2) w/ O_NONBLOCK
syscon errno ESTALE 116 70 70 70 70 10070 # bsd consensus; WSAESTALE; raised by open_by_handle_at(2)
syscon errno EREMOTE 66 71 71 71 71 10071 # bsd consensus
syscon errno EBADRPC 0 72 72 72 72 0 # bsd consensus
syscon errno ERPCMISMATCH 0 73 73 73 73 0 # bsd consensus
syscon errno EPROGUNAVAIL 0 74 74 74 74 0 # bsd consensus
syscon errno EPROGMISMATCH 0 75 75 75 75 0 # bsd consensus
syscon errno EPROCUNAVAIL 0 76 76 76 76 0 # bsd consensus
syscon errno EFTYPE 0 79 79 79 79 0 # bsd consensus
syscon errno EAUTH 0 80 80 80 80 0 # bsd consensus
syscon errno ENEEDAUTH 0 81 81 81 81 0 # bsd consensus
syscon errno EPROCLIM 0 67 67 67 67 10067 # bsd consensus
syscon errno ENOATTR 0 93 87 83 93 0 #
syscon errno EPWROFF 0 82 0 0 0 0 #
syscon errno EDEVERR 0 83 0 0 0 0 #
syscon errno EBADEXEC 0 85 0 0 0 0 #
syscon errno EBADARCH 0 86 0 0 0 0 #
syscon errno ESHLIBVERS 0 87 0 0 0 0 # shiver me timbers
syscon errno EBADMACHO 0 88 0 0 0 0 #
syscon errno ENOPOLICY 0 103 0 0 0 0 #
syscon errno EBADMSG 74 94 89 92 88 0 # raised by ioctl_getfsmap(2)
syscon errno ECANCELED 125 89 85 88 87 0 # raised by timerfd_create(2)
syscon errno EOWNERDEAD 130 105 96 94 97 0 # raised by pthread_cond_timedwait(3), pthread_mutex_consistent(3), pthread_mutex_getprioceiling(3), pthread_mutex_lock(3), pthread_mutex_timedlock(3), pthread_mutexattr_getrobust(3), pthread_mutexattr_setrobust(3)
syscon errno ENOTRECOVERABLE 131 104 95 93 98 0 # raised by pthread_cond_timedwait(3), pthread_mutex_consistent(3), pthread_mutex_getprioceiling(3), pthread_mutex_lock(3), pthread_mutex_timedlock(3), pthread_mutexattr_getrobust(3), pthread_mutexattr_setrobust(3)
syscon errno ENONET 64 0 0 0 0 0 # unilateral; raised by accept(2)
syscon errno ERESTART 85 -1 -1 -1 -3 0 # should only be seen in ptrace()
syscon errno ENODATA 61 96 0 0 89 232 # no message is available in xsi stream or named pipe is being closed; no data available; barely in posix; returned by ioctl; very close in spirit to EPIPE?
syscon errno ENOSR 63 98 0 90 90 0 # out of streams resources; something like EAGAIN; it's in POSIX; maybe some commercial UNIX returns it with openat, putmsg, putpmsg, posix_openpt, ioctl, open
syscon errno ENOSTR 60 99 0 0 91 0 # not a stream; returned by getmsg, putmsg, putpmsg, getpmsg
syscon errno EMULTIHOP 72 95 90 0 94 0 # barely in posix
syscon errno ENOLINK 67 97 91 0 95 0 # barely in posix
syscon errno ENOMEDIUM 123 0 0 85 0 0 # not posix; not documented
syscon errno EMEDIUMTYPE 124 0 0 86 0 0 # not posix; not documented
syscon errno EBADFD 77 9 0 0 0 0 # file descriptor in bad state
syscon compat EWOULDBLOCK 11 35 35 35 35 10035 # same as EAGAIN on every platform we've seen
# signals
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon sig SIGHUP 1 1 1 1 1 1 # terminal hangup or daemon reload; resumable; auto-broadcasted to process group; unix consensus & faked on nt
syscon sig SIGINT 2 2 2 2 2 2 # terminal ctrl-c keystroke; resumable; auto-broadcasted to process group; unix consensus & faked on nt; X3.159-1988
syscon sig SIGQUIT 3 3 3 3 3 3 # terminal ctrl-\ keystroke; resumable; unix consensus & faked on nt
syscon sig SIGILL 4 4 4 4 4 4 # illegal instruction; unresumable (unless you longjmp() or edit ucontex->rip+=ild(ucontex->rip)); unix consensus & faked on nt; X3.159-1988
syscon sig SIGTRAP 5 5 5 5 5 5 # int3 instruction; resumable; unix consensus & faked on nt
syscon sig SIGABRT 6 6 6 6 6 6 # process aborted; resumable; unix consensus & faked on nt; X3.159-1988
syscon sig SIGBUS 7 10 10 10 10 7 # valid memory access that went beyond underlying end of file; bsd consensus
syscon sig SIGFPE 8 8 8 8 8 8 # illegal math; unresumable (unless you longjmp() or edit ucontex->rip+=ild(ucontex->rip)); unix consensus & faked on nt; X3.159-1988
syscon sig SIGKILL 9 9 9 9 9 9 # terminate with extreme prejudice; unreceivable; unix consensus & faked on nt
syscon sig SIGUSR1 10 30 30 30 30 10 # do whatever you want; bsd consensus
syscon sig SIGSEGV 11 11 11 11 11 11 # invalid memory access; unresumable (unless you longjmp() or edit ucontex->rip+=ild(ucontex->rip)); unix consensus & faked on nt; X3.159-1988
syscon sig SIGUSR2 12 31 31 31 31 12 # do whatever you want; bsd consensus
syscon sig SIGPIPE 13 13 13 13 13 13 # write to closed file descriptor; unix consensus & faked on nt
syscon sig SIGALRM 14 14 14 14 14 14 # sent by setitimer(2) or timer_settime(2); unix consensus & faked on nt
syscon sig SIGTERM 15 15 15 15 15 15 # terminate; resumable; unix consensus & faked on nt; X3.159-1988
syscon sig SIGSTKFLT 16 0 0 0 0 0 # wut
syscon sig SIGCHLD 17 20 20 20 20 17 # child process exited or terminated and is now a zombie (unless this is SIG_IGN or SA_NOCLDWAIT) or child process stopped due to terminal i/o or profiling/debugging (unless you used SA_NOCLDSTOP); bsd consensus
syscon sig SIGCONT 18 19 19 19 19 18 # child process resumed from profiling/debugging; bsd consensus
syscon sig SIGSTOP 19 17 17 17 17 19 # child process stopped due to profiling/debugging; bsd consensus
syscon sig SIGTSTP 20 18 18 18 18 20 # terminal ctrl-z keystroke; bsd consensus
syscon sig SIGTTIN 21 21 21 21 21 21 # terminal input for background process; resumable; unix consensus & faked on nt
syscon sig SIGTTOU 22 22 22 22 22 22 # terminal output for background process; resumable; unix consensus & faked on nt
syscon sig SIGURG 23 16 16 16 16 23 # bsd consensus
syscon sig SIGXCPU 24 24 24 24 24 24 # cpu time limit exceeded; unix consensus & faked on nt
syscon sig SIGXFSZ 25 25 25 25 25 25 # file size limit exceeded; unix consensus & faked on nt
syscon sig SIGVTALRM 26 26 26 26 26 26 # virtual alarm clock; wut; unix consensus & faked on nt
syscon sig SIGPROF 27 27 27 27 27 27 # profiling timer expired; unix consensus & faked on nt
syscon sig SIGWINCH 28 28 28 28 28 28 # terminal resized; unix consensus & faked on nt
syscon sig SIGIO 29 23 23 23 23 29 # bsd consensus
syscon sig SIGSYS 31 12 12 12 12 31 # wut; bsd consensus
syscon sig SIGINFO 0 29 29 29 29 0 # bsd consensus
syscon sig SIGRTMAX 64 0 126 0 63 0
syscon sig SIGRTMIN 32 0 65 0 33 0
syscon sig SIGEMT 0 7 7 7 7 0 # not implemented in most community editions of system five; consider doing this using SIGUSR1 or SIGUSR2 instead
syscon sig SIGPWR 30 30 30 30 32 30 # not implemented in most community editions of system five; consider doing this using SIGUSR1 or SIGUSR2 instead
syscon compat SIGPOLL 29 23 23 23 23 29 # same as SIGIO
syscon compat SIGIOT 6 6 6 6 6 6 # PDP-11 feature; same as SIGABRT
# open() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD Windoze Commentary
syscon open O_RDONLY 0 0 0 0 0 0 # consensus
syscon open O_WRONLY 1 1 1 1 1 1 # consensus
syscon open O_RDWR 2 2 2 2 2 2 # consensus
syscon open O_ACCMODE 3 3 3 3 3 3 # O_RDONLY|O_WRONLY|O_RDWR
syscon open O_APPEND 0x00000400 8 8 8 8 0x00000400 # bsd consensus & kNtFileAppendData; won't pose issues w/ mknod(S_IFIFO) [SYNC libc/calls/open-nt.c]
syscon open O_CREAT 0x00000040 0x00000200 0x00000200 0x00000200 0x00000200 0x00000040 # bsd consensus & NT faked as Linux [SYNC libc/calls/open-nt.c]
syscon open O_EXCL 0x00000080 0x00000800 0x00000800 0x00000800 0x00000800 0x00000080 # bsd consensus & NT faked as Linux [SYNC libc/calls/open-nt.c]
syscon open O_TRUNC 0x00000200 0x00000400 0x00000400 0x00000400 0x00000400 0x00000200 # bsd consensus & NT faked as Linux [SYNC libc/calls/open-nt.c]
syscon open O_DIRECTORY 0x00010000 0x00100000 0x00020000 0x00020000 0x00200000 0x00010000 # useful hint on UNIX, but required on NT (see kNtFileFlagBackupSemantics) [SYNC libc/calls/open-nt.c]
syscon open O_NOFOLLOW 0x00020000 0x00000100 0x00000100 0x00000100 0x00000100 0x00020000 # bsd consensus; kNtFileFlagOpenReparsePoint
syscon open O_DIRECT 0x00004000 0 0x00010000 0 0x00080000 0x00004000 # kNtFileFlagNoBuffering [SYNC libc/calls/open-nt.c]
syscon open O_NDELAY 0x00000800 0x00000004 0x00000004 0x00000004 0x00000004 0x00000800 # kNtFileFlagWriteThrough [SYNC libc/calls/open-nt.c]
syscon open O_RANDOM 0 0 0 0 0 0x80000000 # kNtFileFlagRandomAccess [SYNC libc/calls/open-nt.c]
syscon open O_SEQUENTIAL 0 0 0 0 0 0x40000000 # kNtFileFlagSequentialScan [SYNC libc/calls/open-nt.c]
syscon open O_COMPRESSED 0 0 0 0 0 0x20000000 # kNtFileAttributeCompressed [SYNC libc/calls/open-nt.c]
syscon open O_INDEXED 0 0 0 0 0 0x10000000 # !kNtFileAttributeNotContentIndexed [SYNC libc/calls/open-nt.c]
syscon open O_CLOEXEC 0x00080000 0x01000000 0x00100000 0x00010000 0x00400000 0x00080000 # NT faked as Linux [SYNC libc/calls/open-nt.c]
syscon open O_TMPFILE 0x00410000 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff # please use tmpfd(); Linux 3.11+ (c. 2013) __O_TMPFILE | O_DIRECTORY; kNtFileAttributeTemporary|kNtFileFlagDeleteOnClose [SYNC libc/calls/open-nt.c]
syscon open O_SPARSE 0 0 0 0 0 0 # wut
syscon open O_NONBLOCK 0x00000800 0x00000004 0x00000004 0x00000004 0x00000004 0x00000800 # bsd consensus
syscon open O_ASYNC 0x00002000 0x00000040 0x00000040 0x00000040 0x00000040 0 # bsd consensus
syscon open O_NOFOLLOW_ANY 0 0x20000000 0 0 0 0 #
syscon open O_SYNC 0x00101000 0x00000080 0x00000080 0x00000080 0x00000080 0 # bsd consensus
syscon open O_NOCTTY 0x00000100 0x00020000 0x00008000 0x00008000 0x00008000 0 # used for remote viewing (default behavior on freebsd)
syscon open O_NOATIME 0x00040000 0 0 0 0 0 # optimize away access time update
syscon open O_EXEC 0 0 0x00040000 0 0x04000000 0 # it's specified by posix what does it mean
syscon open O_SEARCH 0 0 0x00040000 0 0x00800000 0 # it's specified by posix what does it mean
syscon open O_DSYNC 0x00001000 0x00400000 0 0x00000080 0x00010000 0 #
syscon open O_RSYNC 0x00101000 0 0 0x00000080 0x00020000 0 #
syscon open O_PATH 0x00200000 0 0 0 0 0 # Linux 2.6.39+
syscon open O_VERIFY 0 0 0x00200000 0 0 0 #
syscon open O_SHLOCK 0 0x00000010 0x00000010 0x00000010 0x00000010 0 #
syscon open O_EXLOCK 0 0x00000020 0x00000020 0x00000020 0x00000020 0 #
syscon open O_TTY_INIT 0 0 0x00080000 0 0 0 #
syscon compat O_LARGEFILE 0100000 0 0 0 0 0 #
# mmap() flags
# the revolutionary praxis of malloc()
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon mmap MAP_FILE 0 0 0 0 0 0 # consensus
syscon mmap MAP_SHARED 1 1 1 1 1 1 # forced consensus & faked nt
syscon mmap MAP_SHARED_VALIDATE 3 1 1 1 1 1 # weird linux thing
syscon mmap MAP_PRIVATE 2 2 2 2 2 2 # forced consensus & faked nt
syscon mmap MAP_STACK 6 6 6 6 6 6 # our definition
syscon mmap MAP_TYPE 15 15 15 15 15 15 # mask for type of mapping
syscon mmap MAP_FIXED 0x00000010 0x00000010 0x00000010 0x00000010 0x00000010 0x00000010 # unix consensus; openbsd appears to forbid; faked nt
syscon mmap MAP_FIXED_NOREPLACE 0x08000000 0x00004010 0x08000000 0x08000000 0x08000000 0x08000000 # handled and defined by cosmo runtime; 0x100000 on linux 4.7+; MAP_FIXED|MAP_EXCL on FreeBSD
syscon mmap MAP_ANONYMOUS 0x00000020 0x00001000 0x00001000 0x00001000 0x00001000 0x00000020 # bsd consensus; faked nt
syscon mmap MAP_GROWSDOWN 0x00000100 0 0 0 0 0 # use MAP_STACK; abstracted by MAP_STACK; may be passed to __sys_mmap() for low-level Linux fiddling
syscon mmap MAP_LOCKED 0x00002000 0 0 0 0 0
syscon mmap MAP_NORESERVE 0x00004000 0x00000040 0 0 0x00000040 0 # Linux calls it "reserve"; NT calls it "commit"? which is default?
syscon mmap MAP_POPULATE 0x00008000 0 0x00040000 0 0 0 # MAP_PREFAULT_READ on FreeBSD; can avoid madvise(MADV_WILLNEED) on private file mapping
syscon mmap MAP_NONBLOCK 0x00010000 0 0 0 0 0
syscon mmap MAP_HUGETLB 0x00040000 0 0 0 0 0x80000000 # kNtSecLargePages
syscon mmap MAP_SYNC 0x00080000 0 0 0 0 0 # perform synchronous page faults for mapping (Linux 4.15+)
syscon mmap MAP_INHERIT -1 -1 -1 -1 0x00000080 -1 # make it inherit across execve()
syscon mmap MAP_HASSEMAPHORE 0 0x00000200 0x00000200 0 0x00000200 0 # does it matter on x86?
syscon mmap MAP_NOSYNC 0 0 0x00000800 0 0 0 # flush to physical media only when necessary rather than gratuitously; be sure to use write() rather than ftruncate() with this!
syscon mmap MAP_CONCEAL 0 0 0x00020000 0x00008000 0x00008000 0 # omit from core dumps; MAP_NOCORE on FreeBSD
syscon mmap MAP_HUGE_MASK 63 0 0 0 0 0
syscon mmap MAP_HUGE_SHIFT 26 0 0 0 0 0
syscon compat MAP_NOCORE 0 0 0x00020000 0x00008000 0x00008000 0 # use MAP_CONCEAL
syscon compat MAP_ANON 0x00000020 0x00001000 0x00001000 0x00001000 0x00001000 0x00000020 # bsd consensus; faked nt
syscon compat MAP_EXECUTABLE 0x00001000 0 0 0 0 0 # ignored
syscon compat MAP_DENYWRITE 0x00000800 0 0 0 0 0
syscon compat MAP_32BIT 0x00000040 0 0x00080000 0 0 0 # iffy
# madvise() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon madv MADV_NORMAL 0 0 0 0 0 0 # consensus
syscon compat POSIX_FADV_NORMAL 0 0 0 0 0 0 # consensus
syscon compat POSIX_MADV_NORMAL 0 0 0 0 0 0 # consensus
syscon madv MADV_DONTNEED 4 4 4 4 4 127 # TODO(jart): weird nt decommit thing?
syscon compat POSIX_MADV_DONTNEED 4 4 4 4 4 127 # unix consensus
syscon compat POSIX_FADV_DONTNEED 4 127 4 4 4 127 # unix consensus
syscon madv MADV_RANDOM 1 1 1 1 1 1 # unix consensus
syscon compat POSIX_MADV_RANDOM 1 1 1 1 1 1 # unix consensus
syscon compat POSIX_FADV_RANDOM 1 127 1 1 1 1 # unix consensus
syscon madv MADV_SEQUENTIAL 2 2 2 2 2 2 # unix consensus
syscon compat POSIX_MADV_SEQUENTIAL 2 2 2 2 2 2 # unix consensus
syscon compat POSIX_FADV_SEQUENTIAL 2 127 2 2 2 2 # TODO(jart): double check xnu
syscon madv MADV_WILLNEED 3 3 3 3 3 3 # unix consensus (faked on NT)
syscon compat POSIX_MADV_WILLNEED 3 3 3 3 3 3 # unix consensus
syscon compat POSIX_FADV_WILLNEED 3 127 3 3 3 3 # TODO(jart): double check xnu
syscon madv MADV_MERGEABLE 12 127 127 127 127 127 # turns on (private anon range) page scanning and merging service (linux only)
syscon madv MADV_UNMERGEABLE 13 127 127 127 127 127 # turns off mergeable (linux only)
syscon madv MADV_FREE 8 5 5 6 6 8 # Linux 4.5+ (c. 2016) / NT Faked → VMOfferPriorityNormal (Win8+)
syscon madv MADV_HUGEPAGE 14 127 127 127 127 127 # TODO(jart): why would we need it?
syscon madv MADV_NOHUGEPAGE 15 127 127 127 127 127 # TODO(jart): why would we need it?
syscon madv MADV_DODUMP 17 127 127 127 127 127 # TODO(jart): what is it?
syscon madv MADV_DOFORK 11 127 127 127 127 127 # TODO(jart): what is it?
syscon madv MADV_DONTDUMP 16 127 127 127 127 127 # see MAP_CONCEAL in OpenBSD; TODO(jart): what is it?
syscon madv MADV_DONTFORK 10 127 127 127 127 127 # TODO(jart): what is it?
syscon madv MADV_HWPOISON 100 127 127 127 127 127 # TODO(jart): what is it?
syscon madv MADV_REMOVE 9 127 127 127 127 127 # TODO(jart): what is it?
syscon fadv POSIX_FADV_NOREUSE 5 127 5 127 5 127 # wut
# mmap(), mprotect(), etc.
# digital restrictions management for the people
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon mprot PROT_NONE 0 0 0 0 0 0 # mmap, mprotect, unix consensus (nt needs special business logic here)
syscon mprot PROT_READ 1 1 1 1 1 1 # mmap, mprotect, unix consensus
syscon mprot PROT_WRITE 2 2 2 2 2 2 # mmap, mprotect, unix consensus
syscon mprot PROT_EXEC 4 4 4 4 4 4 # mmap, mprotect, unix consensus
syscon mprot PROT_GROWSDOWN 0x01000000 0 0 0 0 0 # intended for mprotect; see MAP_GROWSDOWN for mmap() (todo: what was 0x01000000 on nt)
syscon mprot PROT_GROWSUP 0x02000000 0 0 0 0 0 # intended for mprotect; see MAP_GROWSDOWN for mmap()
# mremap() flags
# the revolutionary praxis of realloc()
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon mremap MREMAP_MAYMOVE 1 1 1 1 1 1 # faked non-linux (b/c linux only)
syscon mremap MREMAP_FIXED 2 2 2 2 2 2 # faked non-linux (b/c linux only)
# sigprocmask() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon misc SIG_BLOCK 0 1 1 1 1 0 # bsd consensus; faked nt
syscon misc SIG_UNBLOCK 1 2 2 2 2 1 # bsd consensus; faked nt
syscon misc SIG_SETMASK 2 3 3 3 3 2 # bsd consensus; faked nt
# lseek() whence
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon splice SEEK_HOLE 4 3 4 -1 -1 -1 #
syscon splice SEEK_DATA 3 4 3 -1 -1 -1 #
# splice() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon splice SPLICE_F_MOVE 1 0 0 0 0 0 # can be safely ignored by polyfill; it's a hint
syscon splice SPLICE_F_NONBLOCK 2 0 0 0 0 0 # can be safely ignored by polyfill, since linux says it doesn't apply to underlying FDs
syscon splice SPLICE_F_MORE 4 0 0 0 0 0 # can be safely ignored by polyfill; it's a hint
syscon splice SPLICE_F_GIFT 8 0 0 0 0 0 # can probably be ignored by polyfill
# access() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon access F_OK 0 0 0 0 0 0 # consensus
syscon access X_OK 1 1 1 1 1 0xa0000000 # unix consensus and kNtGenericExecute | kNtGenericRead
syscon access W_OK 2 2 2 2 2 0x40000000 # unix consensus and kNtGenericWrite
syscon access R_OK 4 4 4 4 4 0x80000000 # unix consensus and kNtGenericRead
# flock() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon lock LOCK_SH 1 1 1 1 1 0 # shared [unix consensus]
syscon lock LOCK_EX 2 2 2 2 2 2 # exclusive [consensus!] a.k.a. kNtLockfileExclusiveLock
syscon lock LOCK_NB 4 4 4 4 4 1 # non-blocking [unix consensus] a.k.a. kNtLockfileFailImmediately
syscon lock LOCK_UN 8 8 8 8 8 8 # unlock [unix consensus & faked NT]
# waitpid() / wait4() options
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon waitpid WNOHANG 1 1 1 1 1 1 # helps you reap zombies; unix consensus; fake nt
syscon waitpid WUNTRACED 2 2 2 2 2 0 # unix consensus
syscon waitpid WCONTINUED 8 0x10 4 8 16 0 #
# waitid() options
# no dice on openbsd >:\
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon waitid WEXITED 4 4 0x10 0 32 0
syscon waitid WSTOPPED 2 8 2 0 2 0
syscon waitid WNOWAIT 0x01000000 0x20 8 0 0x10000 0
# fcntl()
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon fcntl2 F_DUPFD 0 0 0 0 0 0 # consensus
syscon fcntl2 F_GETFD 1 1 1 1 1 1 # unix consensus & faked nt
syscon fcntl2 F_SETFD 2 2 2 2 2 2 # unix consensus & faked nt
syscon fcntl2 F_GETFL 3 3 3 3 3 3 # unix consensus & faked nt
syscon fcntl2 F_SETFL 4 4 4 4 4 4 # unix consensus & faked nt
syscon fcntl2 F_SETOWN 8 6 6 6 6 0 # bsd consensus
syscon fcntl2 F_GETOWN 9 5 5 5 5 0 # bsd consensus
syscon fcntl2 F_FULLFSYNC 0 51 0 0 0 0 #
syscon fcntl2 F_NOCACHE 0 48 0 0 0 0 #
syscon fcntl3 FD_CLOEXEC 1 1 1 1 1 1 # unix consensus & faked nt
syscon fcntl F_DUPFD_CLOEXEC 0x0406 67 17 10 12 0x0406 # Linux 2.6.24+; faked nt
syscon fcntl F_MAXFD 0 0 0 0 11 0 #
syscon fcntl FREAD 0 1 1 1 1 0 #
syscon fcntl FWRITE 0 2 2 2 2 0 #
# fcntl3 O_NONBLOCK
# fcntl3 O_APPEND
# fcntl3 O_ASYNC
# fcntl3 O_DIRECT
# fcntl3 O_NOATIME
# fcntl() POSIX Advisory Locks
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon fcntl F_SETLK 6 8 12 8 8 6 # polyfilled nt
syscon compat F_SETLK64 6 8 12 8 8 6 # polyfilled nt
syscon fcntl F_SETLKW 7 9 13 9 9 7
syscon compat F_SETLKW64 7 9 13 9 9 7
syscon fcntl F_GETLK 5 7 11 7 7 5 # polyfilled nt
syscon compat F_GETLK64 5 7 11 7 7 5 # polyfilled nt
syscon fcntl F_RDLCK 0 1 1 1 1 0 # polyfilled nt; bsd consensus
syscon fcntl F_WRLCK 1 3 3 3 3 1 # polyfilled nt; bsd consensus
syscon fcntl F_UNLCK 2 2 2 2 2 2 # polyfilled nt; unix consensus
syscon fcntl F_ULOCK 0 0 0 0 0 0 # TODO: specified by posix but not kernels?
syscon fcntl F_LOCK 1 1 1 1 1 0 # unix consensus
syscon fcntl F_TLOCK 2 2 2 2 2 0 # unix consensus
syscon fcntl F_TEST 3 3 3 3 3 0 # unix consensus
syscon fcntl F_SETSIG 10 0 0 0 0 0
syscon fcntl F_GETSIG 11 0 0 0 0 0
syscon fcntl F_SETOWN_EX 15 0 0 0 0 0
syscon fcntl F_GETOWN_EX 0x10 0 0 0 0 0
syscon fcntl F_OFD_GETLK 36 0 0 0 0 0
syscon fcntl F_OFD_SETLK 37 0 0 0 0 0
syscon fcntl F_OFD_SETLKW 38 0 0 0 0 0
syscon fcntl F_SETLEASE 0x0400 0 0 0 0 0
syscon fcntl F_GETLEASE 0x0401 0 0 0 0 0
syscon fcntl F_NOTIFY 0x0402 0 0 0 0 0
syscon fcntl F_SETPIPE_SZ 0x0407 0 0 0 0 0
syscon fcntl F_GETPIPE_SZ 0x0408 0 0 0 0 0
syscon ioctl FIONBIO 0x5421 0x8004667e 0x8004667e 0x8004667e 0x8004667e 0x8004667e # BSD-The New Technology consensus; FIONBIO is traditional O_NONBLOCK; see F_SETFL for re-imagined api
syscon ioctl FIOASYNC 0x5452 0x8004667d 0x8004667d 0x8004667d 0x8004667d 0x8004667d # BSD-The New Technology consensus
syscon ioctl FIONREAD 0x541b 0x4004667f 0x4004667f 0x4004667f 0x4004667f 0x4004667f # BSD-The New Technology consensus; bytes waiting in FD's input buffer
syscon ioctl FIOCLEX 0x5451 0x20006601 0x20006601 0x20006601 0x20006601 0x5451 # sets "close on exec" on file descriptor the fast way; faked nt
syscon ioctl FIONCLEX 0x5450 0x20006602 0x20006602 0x20006602 0x20006602 0x5450 # clears "close on exec" on file descriptor the fast way; faked nt
#syscon ioctl FIONWRITE 0x0 0x0 0x40046677 0x0 0x0 -1 # [FreeBSD Generalization] bytes queued in FD's output buffer (same as TIOCOUTQ for TTY FDs; see also SO_SNDBUF)
#syscon ioctl FIONSPACE 0x0 0x0 0x40046676 0x0 0x0 -1 # [FreeBSD Generalization] capacity of FD's output buffer, e.g. equivalent to TIOCGSERIAL w/ UART
syscon ioctl TIOCINQ 0x541b 0x4004667f 0x4004667f 0x4004667f 0x4004667f 0x4004667f # [Linuxism] same as FIONREAD
#syscon ioctl TIOCOUTQ 0x5411 0x40047473 0x40047473 0x40047473 0x40047473 -1 # bytes queued in TTY's output buffer
# openat(), fstatat(), linkat(), etc. magnums
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon at AT_FDCWD -100 -2 -100 -100 -100 -100 # faked nt
syscon at AT_SYMLINK_NOFOLLOW 0x0100 0x20 0x0200 2 0x200 0x0100 # faked nt
syscon at AT_SYMLINK_FOLLOW 0x0400 0x40 0x0400 4 0x400 0 # see linkat(2)
syscon at AT_REMOVEDIR 0x0200 0x80 0x0800 8 0x800 0x0200 # faked nt
syscon at AT_EACCESS 0x0200 0x10 0x0100 1 0x100 0 # performs check using effective uid/gid; unnecessary nt
syscon at AT_EMPTY_PATH 0x1000 0 0 0 0 0 # linux 2.6.39+; see unlink, O_TMPFILE, etc.
# utimensat() special values
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon utime UTIME_NOW 0x3fffffff 0x3fffffff -1 -2 0x3fffffff -2 # timespec::tv_sec may be this; polyfilled xnu/nt
syscon utime UTIME_OMIT 0x3ffffffe 0x3ffffffe -2 -1 0x3ffffffe -1 # timespec::tv_nsec may be this; polyfilled xnu/nt
# getauxval() keys
#
# Unsupported values are encoded as 0.
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon auxv AT_EXECFD 2 0 2 0 2 0 # file descriptor of program
syscon auxv AT_PHDR 3 0 3 0 3 0 # address of program headers of executable
syscon auxv AT_PHENT 4 0 4 0 4 0
syscon auxv AT_PHNUM 5 0 5 0 5 0
syscon auxv AT_PAGESZ 6 0 6 0 6 0
syscon auxv AT_BASE 7 0 7 0 7 0 # address of program interpreter
syscon auxv AT_FLAGS 8 0 8 0 8 0
syscon auxv AT_ENTRY 9 0 9 0 9 0 # entry address of executable
syscon auxv AT_NOTELF 10 0 10 0 0 0
syscon auxv AT_OSRELDATE 0 0 18 0 0 0
syscon auxv AT_UID 11 0 0 0 2001 0
syscon auxv AT_EUID 12 0 0 0 2000 0
syscon auxv AT_GID 13 0 0 0 2003 0
syscon auxv AT_EGID 14 0 0 0 2002 0
syscon auxv AT_PLATFORM 15 0 0 0 0 0 # address of string with hardware platform for rpath interpretation
syscon auxv AT_HWCAP 16 0 0 0 0 0
syscon auxv AT_CLKTCK 17 0 0 0 0 0
syscon auxv AT_DCACHEBSIZE 19 0 0 0 0 0
syscon auxv AT_ICACHEBSIZE 20 0 0 0 0 0
syscon auxv AT_UCACHEBSIZE 21 0 0 0 0 0
syscon auxv AT_SECURE 23 0 0 0 0 0
syscon auxv AT_BASE_PLATFORM 24 0 0 0 0 0
syscon auxv AT_RANDOM 25 0 16 0 0 0 # address of sixteen bytes of random data; AT_CANARY on FreeBSD whose AT_CANARYLEN should be 64
syscon auxv AT_HWCAP2 26 0 0 0 0 0
syscon auxv AT_EXECFN 31 31 15 999 2014 31 # address of string containing first argument passed to execve() used when running program; AT_EXECPATH on FreeBSD
syscon auxv AT_SYSINFO_EHDR 33 0 0 0 0 0
syscon auxv AT_STACKBASE 0 0 0 0 13 0
syscon auxv AT_EXECPATH 31 31 15 999 2014 31 # FreeBSD name for AT_EXECFN
syscon auxv AT_MINSIGSTKSZ 51 0 0 0 0 0 # FreeBSD name for AT_EXECFN
syscon auxv AT_CANARY 0 0 16 0 0 0
syscon auxv AT_CANARYLEN 0 0 17 0 0 0
syscon auxv AT_NCPUS 0 0 19 0 0 0
syscon auxv AT_PAGESIZES 0 0 20 0 0 0
syscon auxv AT_PAGESIZESLEN 0 0 21 0 0 0
syscon auxv AT_TIMEKEEP 0 0 22 0 0 0
syscon auxv AT_STACKPROT 0 0 23 0 0 0
syscon auxv AT_EHDRFLAGS 0 0 24 0 0 0
syscon auxv AT_NO_AUTOMOUNT 0x0800 0 0 0 0 0
# getrlimit() / setrlimit() resource parameter
#
# Unsupported values are encoded as 127.
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon rlimit RLIMIT_CPU 0 0 0 0 0 127 # max cpu time in seconds; see SIGXCPU; unix consensus
syscon rlimit RLIMIT_FSIZE 1 1 1 1 1 127 # max file size in bytes; unix consensus
syscon rlimit RLIMIT_DATA 2 2 2 2 2 127 # max mmap() / brk() / sbrk() size in bytes; unix consensus
syscon rlimit RLIMIT_STACK 3 3 3 3 3 127 # max stack size in bytes; see SIGXFSZ; unix consensus
syscon rlimit RLIMIT_CORE 4 4 4 4 4 127 # max core file size in bytes; unix consensus
syscon rlimit RLIMIT_RSS 5 5 5 5 5 127 # max physical memory size in bytes; see mmap()→ENOMEM; unix consensus
syscon rlimit RLIMIT_NPROC 6 7 7 7 7 127 # max number of processes; see fork()→EAGAIN; bsd consensus
syscon rlimit RLIMIT_NOFILE 7 8 8 8 8 127 # max number of open files; see accept()→EMFILE/ENFILE; bsd consensus
syscon rlimit RLIMIT_MEMLOCK 8 6 6 6 6 127 # max locked-in-memory address space; bsd consensus
syscon rlimit RLIMIT_AS 9 5 10 2 10 0 # max virtual memory size in bytes; this one actually works; fudged as RLIMIT_DATA on OpenBSD
syscon rlimit RLIMIT_LOCKS 10 127 127 127 127 127 # max flock() / fcntl() locks; bsd consensus
syscon rlimit RLIMIT_SIGPENDING 11 127 127 127 127 127 # max sigqueue() can enqueue; bsd consensus
syscon rlimit RLIMIT_MSGQUEUE 12 127 127 127 127 127 # meh posix message queues; bsd consensus
syscon rlimit RLIMIT_NICE 13 127 127 127 127 127 # max scheduling priority; 𝑥 ∈ [1,40]; niceness is traditionally displayed as as 𝟸𝟶-𝑥, therefore 𝑥=1 (lowest priority) prints as 19 and 𝑥=40 (highest priority) prints as -20; bsd consensus
syscon rlimit RLIMIT_RTPRIO 14 127 127 127 127 127 # woop
syscon rlimit RLIMIT_RTTIME 15 127 127 127 127 127 # woop
syscon rlimit RLIMIT_SWAP 127 127 12 127 127 127 # swap used
syscon rlimit RLIMIT_SBSIZE 127 127 9 127 127 127 # max size of all socket buffers
syscon rlimit RLIMIT_NPTS 127 127 11 127 127 127 # pseudoteletypewriters
syscon compat RLIMIT_VMEM 9 5 10 127 10 127 # same as RLIMIT_AS
# resource limit special values
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon rlim RLIM_NLIMITS 16 9 15 9 12 1
syscon rlim RLIM_INFINITY 0xffffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0xffffffffffffffff
syscon rlim RLIM_SAVED_CUR 0xffffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0xffffffffffffffff
syscon rlim RLIM_SAVED_MAX 0xffffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0x7fffffffffffffff 0xffffffffffffffff
# sigaction() codes
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon sigact SA_NOCLDSTOP 1 8 8 8 8 1 # lets you set SIGCHLD handler that's only notified on exit/termination and not notified on SIGSTOP/SIGTSTP/SIGTTIN/SIGTTOU/SIGCONT lool; bsd consensus
syscon sigact SA_NOCLDWAIT 2 32 32 32 32 2 # changes SIGCHLD so the zombie is gone and you can't call wait(2) anymore; similar to SIGCHLD+SIG_IGN but may still deliver the SIGCHLD; bsd consensus
syscon sigact SA_SIGINFO 4 64 64 64 64 4 # asks kernel to provide ucontext_t argument, which has mutable cpu/fpu state of signalled process; and it is polyfilled by cosmopolitan; bsd consensus
syscon sigact SA_ONSTACK 0x08000000 1 1 1 1 0x08000000 # causes signal handler to be called on stack provided by sigaltstack(2); bsd consensus
syscon sigact SA_RESTART 0x10000000 2 2 2 2 0x10000000 # prevents signal delivery from triggering EINTR on i/o calls (e.g. read/write/open/wait/accept) but doesn't impact non-i/o blocking calls (e.g. poll, sigsuspend, nanosleep) which will still EINTR; bsd consensus
syscon sigact SA_NODEFER 0x40000000 16 16 16 16 0x40000000 # lets signal handler be reentrant (e.g. so you can longjmp() out of signal handler); bsd consensus
syscon sigact SA_RESETHAND 0x80000000 4 4 4 4 0x80000000 # causes signal handler to be called at most once and then set to SIG_DFL automatically; bsd consensus
syscon compat SA_NOMASK 0x40000000 16 16 16 16 0x40000000 # same as SA_NODEFER
syscon compat SA_ONESHOT 0x80000000 4 4 4 4 0x80000000 # same as SA_RESETHAND
# siginfo::si_code values
#
# The New Technology NT is polyfilled as Linux.
# Unsupported values are encoded as 0x80000000.
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon sicode SI_USER 0 0x010001 0x010001 0 0 0 # sent by kill(2); openbsd defines si_code<=0 as originating from user
syscon sicode SI_QUEUE -1 0x010002 0x010002 -2 -1 -1 # sent by sigqueue(2)
syscon sicode SI_TIMER -2 0x010003 0x010003 -3 -2 -2 # sent by setitimer(2) or clock_settime(2)
syscon sicode SI_TKILL -6 0x80000000 0x010007 -1 -5 -6 # sent by tkill(2) or tgkill(2) or thr_kill(2) or lwp_kill(2) or _lwp_kill(2); cries
syscon sicode SI_MESGQ -3 0x010005 0x010005 0x80000000 -4 -3 # sent by mq_notify(2); lool
syscon sicode SI_ASYNCIO -4 0x010004 0x010004 0x80000000 -3 -4 # aio completion; no thank you
syscon sicode SI_ASYNCNL -60 0x80000000 0x80000000 0x80000000 0x80000000 0x80000000 # aio completion for dns; the horror
syscon sicode SI_KERNEL 128 0x80000000 0x010006 0x80000000 0x80000000 0x80 # wut; openbsd defines as si_code>0
syscon sicode SI_NOINFO 32767 0x80000000 0 32767 32767 32767 # no signal specific info available
syscon sicode CLD_EXITED 1 1 1 1 1 1 # SIGCHLD; child exited; unix consensus
syscon sicode CLD_KILLED 2 2 2 2 2 2 # SIGCHLD; child terminated w/o core; unix consensus
syscon sicode CLD_DUMPED 3 3 3 3 3 3 # SIGCHLD; child terminated w/ core; unix consensus
syscon sicode CLD_TRAPPED 4 4 4 4 4 4 # SIGCHLD; traced child trapped; unix consensus
syscon sicode CLD_STOPPED 5 5 5 5 5 5 # SIGCHLD; child stopped; unix consensus
syscon sicode CLD_CONTINUED 6 6 6 6 6 6 # SIGCHLD; stopped child continued; unix consensus
syscon sicode TRAP_BRKPT 1 1 1 1 1 1 # SIGTRAP; process breakpoint; unix consensus
syscon sicode TRAP_TRACE 2 2 2 2 2 2 # SIGTRAP; process trace trap; unix consensus
syscon sicode SEGV_MAPERR 1 1 1 1 1 1 # SIGSEGV; address not mapped to object; unix consensus
syscon sicode SEGV_ACCERR 2 2 2 2 2 2 # SIGSEGV; invalid permissions for mapped object; unix consensus
syscon sicode SEGV_PKUERR -1 -1 100 -1 -1 -1 # SIGSEGV: x86: PKU violation
syscon sicode FPE_INTDIV 1 7 2 1 1 1 # SIGFPE; integer divide by zero
syscon sicode FPE_INTOVF 2 8 1 2 2 2 # SIGFPE; integer overflow
syscon sicode FPE_FLTDIV 3 1 3 3 3 3 # SIGFPE; floating point divide by zero
syscon sicode FPE_FLTOVF 4 2 4 4 4 4 # SIGFPE; floating point overflow
syscon sicode FPE_FLTUND 5 3 5 5 5 5 # SIGFPE; floating point underflow
syscon sicode FPE_FLTRES 6 4 6 6 6 6 # SIGFPE; floating point inexact
syscon sicode FPE_FLTINV 7 5 7 7 7 7 # SIGFPE; invalid floating point operation
syscon sicode FPE_FLTSUB 8 6 8 8 8 8 # SIGFPE; subscript out of range
syscon sicode ILL_ILLOPC 1 1 1 1 1 1 # SIGILL; illegal opcode; unix consensus
syscon sicode ILL_ILLOPN 2 4 2 2 2 2 # SIGILL; illegal operand
syscon sicode ILL_ILLADR 3 5 3 3 3 3 # SIGILL; illegal addressing mode
syscon sicode ILL_ILLTRP 4 2 4 4 4 4 # SIGILL; illegal trap
syscon sicode ILL_PRVOPC 5 3 5 5 5 5 # SIGILL; privileged opcode
syscon sicode ILL_PRVREG 6 6 6 6 6 6 # SIGILL; privileged register; unix consensus
syscon sicode ILL_COPROC 7 7 7 7 7 7 # SIGILL; coprocessor error; unix consensus
syscon sicode ILL_BADSTK 8 8 8 8 8 8 # SIGILL; internal stack error; unix consensus
syscon sicode BUS_ADRALN 1 1 1 1 1 1 # SIGBUS; invalid address alignment; unix consensus
syscon sicode BUS_ADRERR 2 2 2 2 2 2 # SIGBUS; non-existent physical address; unix consensus
syscon sicode BUS_OBJERR 3 3 3 3 3 3 # SIGBUS; object specific hardware error; unix consensus
syscon sicode BUS_OOMERR -1 -1 100 -1 -1 -1 # SIGBUS; Non-standard: No memory.
syscon sicode BUS_MCEERR_AR 4 0x80000000 0x80000000 0x80000000 0x80000000 0x80000000 # SIGBUS; Linux 2.6.32+
syscon sicode BUS_MCEERR_AO 5 0x80000000 0x80000000 0x80000000 0x80000000 0x80000000 # SIGBUS; Linux 2.6.32+
syscon sicode POLL_IN 1 1 1 1 1 1 # SIGIO; data input available; unix consensus
syscon sicode POLL_OUT 2 2 2 2 2 2 # SIGIO; output buffer available; unix consensus
syscon sicode POLL_MSG 3 3 3 3 3 3 # SIGIO; input message available; unix consensus
syscon sicode POLL_ERR 4 4 4 4 4 4 # SIGIO; i/o error; unix consensus
syscon sicode POLL_PRI 5 5 5 5 5 5 # SIGIO; high priority input available; unix consensus
syscon sicode POLL_HUP 6 6 6 6 6 6 # SIGIO; device disconnected; unix consensus
syscon sicode SYS_SECCOMP 1 -1 -1 -1 -1 -1 # SIGSYS; seccomp triggered
syscon sicode SYS_USER_DISPATCH 2 -1 -1 -1 -1 -1 # SIGSYS; syscall user dispatch triggered
# sigaltstack() values
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon ss SIGSTKSZ 8192 131072 34816 28672 28672 8192 # overlaid with STACKSIZE; you need to #undef SIGSTKSZ to access this symbol
syscon ss MINSIGSTKSZ 2048 32768 2048 12288 8192 2048 # overlaid with 32768; you need to #undef MINSIGSTKSZ to access this symbol
syscon ss SS_ONSTACK 1 1 1 1 1 1 # unix consensus
syscon ss SS_DISABLE 2 4 4 4 4 2 # bsd consensus
# close_range() values
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon close CLOSE_RANGE_UNSHARE 2 -1 -1 -1 -1 -1 #
syscon close CLOSE_RANGE_CLOEXEC 4 -1 -1 -1 -1 -1 #
# clock_{gettime,settime} timers
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon clock CLOCK_REALTIME 0 0 0 0 0 0 # consensus
syscon clock CLOCK_REALTIME_PRECISE 0 0 9 0 0 0 #
syscon clock CLOCK_REALTIME_FAST 0 0 10 0 0 0 #
syscon clock CLOCK_REALTIME_COARSE 5 0 10 0 0 0 # Linux 2.6.32+; bsd consensus; not available on RHEL5
syscon clock CLOCK_MONOTONIC 1 1 4 3 3 1 # XNU/NT faked; could move backwards if NTP introduces negative leap second
syscon clock CLOCK_MONOTONIC_PRECISE 1 1 11 3 3 1 #
syscon clock CLOCK_MONOTONIC_FAST 1 1 12 3 3 1 #
syscon clock CLOCK_MONOTONIC_COARSE 6 1 12 3 3 1 # Linux 2.6.32+; bsd consensus; not available on RHEL5
syscon clock CLOCK_MONOTONIC_RAW 4 127 127 127 127 127 # actually monotonic; not subject to NTP adjustments; Linux 2.6.28+; XNU/NT/FreeBSD/OpenBSD faked; not available on RHEL5
syscon clock CLOCK_PROCESS_CPUTIME_ID 2 127 15 2 0x40000000 127 #
syscon clock CLOCK_THREAD_CPUTIME_ID 3 127 14 4 0x20000000 127 #
syscon clock CLOCK_PROF 127 127 2 127 2 127 #
syscon clock CLOCK_BOOTTIME 7 127 127 6 127 127 #
syscon clock CLOCK_REALTIME_ALARM 8 127 127 127 127 127 #
syscon clock CLOCK_BOOTTIME_ALARM 9 127 127 127 127 127 #
syscon clock CLOCK_TAI 11 127 127 127 127 127 #
syscon clock CLOCK_UPTIME 127 127 5 5 127 127 #
syscon clock CLOCK_UPTIME_PRECISE 127 127 7 127 127 127 #
syscon clock CLOCK_UPTIME_FAST 127 127 8 127 127 127 #
syscon clock CLOCK_SECOND 127 127 13 127 127 127 #
# poll()
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon poll POLLIN 1 1 1 1 1 0x0300 # unix consensus; POLLRDNORM|POLLRDBAND on Windows
syscon poll POLLPRI 2 2 2 2 2 0x0400 # unix consensus
syscon poll POLLOUT 4 4 4 4 4 0x0010 # unix consensus; POLLWRNORM on Windows
syscon poll POLLERR 8 8 8 8 8 0x0001 # unix consensus
syscon poll POLLHUP 0x10 0x10 0x10 0x10 0x10 0x0002 # unix consensus
syscon poll POLLNVAL 0x20 0x20 0x20 0x20 0x20 0x0004 # unix consensus
syscon poll POLLRDBAND 0x80 0x80 0x80 0x80 0x80 0x0200 # unix consensus
syscon poll POLLRDNORM 0x40 0x40 0x40 0x40 0x40 0x0100 # unix consensus
syscon poll POLLWRBAND 0x0200 0x0100 0x0100 0x0100 0x0100 0x0020 # bsd consensus
syscon poll POLLWRNORM 0x0100 4 4 4 4 0x0010 # bsd consensus
syscon poll POLLRDHUP 0x2000 0x10 0x10 0x10 0x10 2 # bsd consensus (POLLHUP on non-Linux)
# epoll
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon epoll EPOLL_CLOEXEC 0x080000 0x01000000 0x100000 0x010000 0x010000 0x80000 # O_CLOEXEC
syscon epoll EPOLL_CTL_ADD 1 1 1 1 1 1 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLL_CTL_DEL 2 2 2 2 2 2 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLL_CTL_MOD 3 3 3 3 3 3 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLIN 1 1 1 1 1 1 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLOUT 4 4 4 4 4 4 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLERR 8 8 8 8 8 8 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLPRI 2 2 2 2 2 2 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLHUP 0x10 0x10 0x10 0x10 0x10 0x10 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLRDNORM 0x40 0x40 0x40 0x40 0x40 0x40 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLRDBAND 0x80 0x80 0x80 0x80 0x80 0x80 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLWRNORM 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLWRBAND 0x0200 0x0200 0x0200 0x0200 0x0200 0x0200 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLMSG 0x0400 0x0400 0x0400 0x0400 0x0400 0x0400 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLRDHUP 0x2000 0x2000 0x2000 0x2000 0x2000 0x2000 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLEXCLUSIVE 0x10000000 0x10000000 0x10000000 0x10000000 0x10000000 0x10000000 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLWAKEUP 0x20000000 0x20000000 0x20000000 0x20000000 0x20000000 0x20000000 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLONESHOT 0x40000000 0x40000000 0x40000000 0x40000000 0x40000000 0x40000000 # forced consensus, linux only natively, polyfilled elsewhere
syscon epoll EPOLLET 0x80000000 0x80000000 0x80000000 0x80000000 0x80000000 0x80000000 # forced consensus, linux only natively, polyfilled elsewhere
# {set,get}sockopt(fd, level=SOL_SOCKET, X, ...)
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon so SO_DEBUG 1 1 1 1 1 1 # debugging is enabled; consensus
syscon so SO_TYPE 3 0x1008 0x1008 0x1008 0x1008 0x1008 # bsd consensus
syscon so SO_ERROR 4 0x1007 0x1007 0x1007 0x1007 0x1007 # takes int pointer and stores/clears the pending error code; bsd consensus
syscon so SO_ACCEPTCONN 30 2 2 2 2 2 # takes int pointer and stores boolean indicating if listen() was called on fd; bsd consensus
syscon so SO_REUSEPORT 15 0x0200 0x0200 0x0200 0x0200 4 # bsd consensus (NT calls it SO_REUSEADDR)
syscon so SO_REUSEADDR 2 4 4 4 4 4 # bsd consensus (default behavior on NT)
syscon so SO_EXCLUSIVEADDRUSE 0 0 0 0 0 ~4 # bsd consensus (default behavior on NT)
syscon so SO_KEEPALIVE 9 8 8 8 8 8 # bsd consensus
syscon so SO_DONTROUTE 5 0x10 0x10 0x10 0x10 0x10 # bsd consensus
syscon so SO_BROADCAST 6 0x20 0x20 0x20 0x20 0x20 # socket is configured for broadcast messages; bsd consensus
syscon so SO_USELOOPBACK 0 0x40 0x40 0x40 0x40 0x40 # bsd consensus
syscon so SO_LINGER 13 0x80 0x80 0x80 0x80 0x80 # takes struct linger; causes close() return value to actually mean something; bsd consensus
syscon so SO_DONTLINGER 0 0 0 0 0 ~0x80 # disables so_linger on windows
syscon so SO_OOBINLINE 10 0x0100 0x0100 0x0100 0x0100 0x0100 # bsd consensus
syscon so SO_SNDBUF 7 0x1001 0x1001 0x1001 0x1001 0x1001 # bsd consensus
syscon so SO_RCVBUF 8 0x1002 0x1002 0x1002 0x1002 0x1002 # bsd consensus
syscon so SO_RCVTIMEO 20 0x1006 0x1006 0x1006 0x100c 0x1006 # recv timeout; takes struct timeval (overrides SA_RESTART restoring EINTR behavior on recv/send/connect/accept/etc.; bsd consensus)
syscon so SO_SNDTIMEO 21 0x1005 0x1005 0x1005 0x100b 0x1005 # send timeout; takes struct timeval; bsd consensus
syscon so SO_RCVLOWAT 18 0x1004 0x1004 0x1004 0x1004 0x1004 # bsd consensus
syscon so SO_SNDLOWAT 19 0x1003 0x1003 0x1003 0x1003 0x1003 # bsd consensus
syscon so SO_TIMESTAMP 29 0x0400 0x0400 0x0800 0x2000 0
syscon so SO_SETFIB 0 0 0x1014 0 0 0
syscon so SO_DOMAIN 39 0 0x1019 0x1024 0 0
syscon so SO_MAX_PACING_RATE 47 0 0x1018 0 0 0
syscon so SO_PEERCRED 17 0 0 0x1022 0 0
syscon so SO_EXCLUSIVEADDRUSE 0 0 0 0 0 0xfffffffb # hoo boy
syscon so LOCAL_PEERCRED 0 1 1 0 0 0
syscon so SO_PROTOCOL 38 0 0x1016 0x1025 0 0
syscon so SO_ATTACH_BPF 50 0 0 0 0 0
syscon so SO_ATTACH_FILTER 26 0 0 0 0 0
syscon so SO_ATTACH_REUSEPORT_CBPF 51 0 0 0 0 0
syscon so SO_ATTACH_REUSEPORT_EBPF 52 0 0 0 0 0
syscon so SO_BINDTODEVICE 25 0 0 0 0 0
syscon so SO_BPF_EXTENSIONS 48 0 0 0 0 0
syscon so SO_BSDCOMPAT 14 0 0 0 0 0
syscon so SO_BUSY_POLL 46 0 0 0 0 0
syscon so SO_CNX_ADVICE 53 0 0 0 0 0
syscon so SO_DETACH_BPF 27 0 0 0 0 0
syscon so SO_DETACH_FILTER 27 0 0 0 0 0
syscon so SO_GET_FILTER 26 0 0 0 0 0
syscon so SO_INCOMING_CPU 49 0 0 0 0 0
syscon so SO_LOCK_FILTER 44 0 0 0 0 0
syscon so SO_MARK 36 0 0 0 0 0
syscon so SO_NOFCS 43 0 0 0 0 0
syscon so SO_NO_CHECK 11 0 0 0 0 0
syscon so SO_PASSCRED 0x10 0 0 0 0 0
syscon so SO_PASSSEC 34 0 0 0 0 0
syscon so SO_PEEK_OFF 42 0 0 0 0 0
syscon so SO_PEERNAME 28 0 0 0 0 0
syscon so SO_PEERSEC 31 0 0 0 0 0
syscon so SO_PRIORITY 12 0 0 0 0 0
syscon so SO_RCVBUFFORCE 33 0 0 0 0 0
syscon so SO_RXQ_OVFL 40 0 0 0 0 0
syscon so SO_SECURITY_AUTHENTICATION 22 0 0 0 0 0
syscon so SO_SECURITY_ENCRYPTION_NETWORK 24 0 0 0 0 0
syscon so SO_SECURITY_ENCRYPTION_TRANSPORT 23 0 0 0 0 0
syscon so SO_SELECT_ERR_QUEUE 45 0 0 0 0 0
syscon so SO_SNDBUFFORCE 0x20 0 0 0 0 0
syscon so SO_TIMESTAMPING 37 0 0 0 0 0
syscon so SO_TIMESTAMPNS 35 0 0 0 0 0
syscon so SO_WIFI_STATUS 41 0 0 0 0 0
syscon sol SOL_IP 0 0 0 0 0 0 # consensus
syscon sol SOL_SOCKET 1 0xffff 0xffff 0xffff 0xffff 0xffff # yes it's actually 0xffff; bsd+nt consensus (todo: what's up with ipproto_icmp overlap)
syscon sol SOL_TCP 6 6 6 6 6 6 # consensus
syscon sol SOL_UDP 17 17 17 17 17 17 # consensus
syscon sol SOL_RAW 255 -1 -1 -1 -1 -1
syscon sol SOL_IPV6 41 41 41 41 41 41
syscon sol SOL_ICMPV6 58 58 58 58 58 -1
syscon sol SOL_AAL 265 -1 -1 -1 -1 -1
syscon sol SOL_ALG 279 -1 -1 -1 -1 -1
syscon sol SOL_ATM 264 -1 -1 -1 -1 -1
syscon sol SOL_BLUETOOTH 274 -1 -1 -1 -1 -1
syscon sol SOL_CAIF 278 -1 -1 -1 -1 -1
syscon sol SOL_DCCP 269 -1 -1 -1 -1 -1
syscon sol SOL_DECNET 261 -1 -1 -1 -1 -1
syscon sol SOL_IRDA 266 -1 -1 -1 -1 -1
syscon sol SOL_IUCV 277 -1 -1 -1 -1 -1
syscon sol SOL_KCM 281 -1 -1 -1 -1 -1
syscon sol SOL_LLC 268 -1 -1 -1 -1 -1
syscon sol SOL_NETBEUI 267 -1 -1 -1 -1 -1
syscon sol SOL_NETLINK 270 -1 -1 -1 -1 -1
syscon sol SOL_NFC 280 -1 -1 -1 -1 -1
syscon sol SOL_PACKET 263 -1 -1 -1 -1 -1
syscon sol SOL_PNPIPE 275 -1 -1 -1 -1 -1
syscon sol SOL_PPPOL2TP 273 -1 -1 -1 -1 -1
syscon sol SOL_RDS 276 -1 -1 -1 -1 -1
syscon sol SOL_RXRPC 272 -1 -1 -1 -1 -1
syscon sol SOL_TIPC 271 -1 -1 -1 -1 -1
syscon sol SOL_X25 262 -1 -1 -1 -1 -1
syscon alg ALG_SET_KEY 1 0 0 0 0 0
syscon alg ALG_SET_IV 2 0 0 0 0 0
syscon alg ALG_SET_OP 3 0 0 0 0 0
syscon alg ALG_SET_AEAD_ASSOCLEN 4 0 0 0 0 0
syscon alg ALG_SET_AEAD_AUTHSIZE 5 0 0 0 0 0
syscon alg ALG_SET_DRBG_ENTROPY 6 0 0 0 0 0
# {set,get}sockopt(fd, level=SOL_TCP, X, ...)
# » most elite of all tuning groups
#
# @see https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
# @see https://www.iana.org/assignments/tcp-parameters/tcp-parameters.txt
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon tcp TCP_NODELAY 1 1 1 1 1 1 # strong consensus for disabling nagle's algorithm; so be sure to disable it by turning this on
syscon tcp TCP_CORK 3 4 4 16 0 0 # nagle's algorithm strikes again; TCP_NOPUSH on BSD; be sure to turn it off; protip: mmap+writev vs. write+sendfile; see also /proc/sys/net/ipv4/tcp_autocorking; netbsd is 4 but not implemented
syscon tcp TCP_MAXSEG 2 2 2 2 2 0 # reduces tcp segment size; see also tcp offloading
syscon tcp TCP_FASTOPEN 23 0 0x0401 0 0 15 # reduces roundtrips; for listener; Linux 3.7+ (c. 2012) / or is windows it 0x22? /proc/sys/net/ipv4/tcp_fastopen TODO(jart): MSG_FASTOPEN; XNU sources say 261 but not sure if that's true
syscon tcp TCP_FASTOPEN_CONNECT 30 0 0 0 0 0 # reduces roundtrips; for listener; Linux 3.7+ (c. 2012) / or is windows it 0x22? /proc/sys/net/ipv4/tcp_fastopen TODO(jart): MSG_FASTOPEN; XNU sources say 261 but not sure if that's true
syscon tcp TCP_KEEPIDLE 4 0 0x100 0 3 0 # keepalives
syscon tcp TCP_KEEPINTVL 5 0x101 0x200 0 5 0 # keepalives
syscon tcp TCP_KEEPCNT 6 0x102 0x400 0 6 0 # keepalives
syscon tcp TCP_SYNCNT 7 0 0 0 0 0 # how hard to syn packet the enemy
syscon tcp TCP_ULP 31 0 0 0 0 0 # setsockopt(sock, IPPROTO_TCP, TCP_ULP, "tls", 4)
syscon tcp TCP_COOKIE_TRANSACTIONS 15 0 0 0 0 0 # defense against the syn packets
syscon tcp TCP_LINGER2 8 0 0 0 0 0 # orphaned fin-wait-2 lifetime cf. net.ipv4.tcp_fin_timeout see cloudflare blog
syscon tcp TCP_NOTSENT_LOWAT 25 513 0 0 0 0 # limit unset byte queue
syscon tcp TCP_INFO 11 0 0x20 0 9 0 # get connection info
syscon tcp TCP_CC_INFO 26 0 0 0 0 0 # get congestion control info
syscon tcp TCP_CONGESTION 13 0 0x40 0 0 0 # set traffic control
syscon tcp TCP_MD5SIG 14 0 0x10 4 16 0 # what is it (rfc2385)
syscon tcp TCP_MD5SIG_MAXKEYLEN 80 0 0 0 0 0 # what is it
syscon tcp TCP_TIMESTAMP 24 0 0 0 0 0 # what is it
syscon tcp TCP_USER_TIMEOUT 18 0 0 0 0 0 # what is it
syscon tcp TCP_QUICKACK 12 0 0 0 0 0 # what is it
syscon tcp TCP_SAVE_SYN 27 0 0 0 0 0 # record syn packets
syscon tcp TCP_SAVED_SYN 28 0 0 0 0 0 # get recorded syn packets
syscon tcp TCP_THIN_DUPACK 17 0 0 0 0 0 # what is it
syscon tcp TCP_QUEUE_SEQ 21 0 0 0 0 0 # what is it
syscon tcp TCP_WINDOW_CLAMP 10 0 0 0 0 0 # what is it
syscon tcp TCP_DEFER_ACCEPT 9 0 0 0 0 0 # what is it
syscon tcp TCP_REPAIR 19 0 0 0 0 0 # what is it
syscon tcp TCP_REPAIR_OPTIONS 22 0 0 0 0 0 # what is it
syscon tcp TCP_REPAIR_QUEUE 20 0 0 0 0 0 # what is it
syscon tcp TCP_THIN_LINEAR_TIMEOUTS 16 0 0 0 0 0 # what is it
# https://blog.cloudflare.com/know-your-scm_rights/
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon scm SCM_RIGHTS 1 1 1 1 1 1 # unix consensus; faked nt
syscon scm SCM_TIMESTAMP 29 2 2 4 8 0
syscon scm SCM_CREDENTIALS 2 0 0 0 0 0
syscon scm SCM_TIMESTAMPING 37 0 0 0 0 0
syscon scm SCM_TIMESTAMPNS 35 0 0 0 0 0
syscon scm SCM_WIFI_STATUS 41 0 0 0 0 0
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon ip IP_TOS 1 3 3 3 3 8 # bsd consensus
syscon ip IP_TTL 2 4 4 4 4 7 # bsd consensus
syscon ip IP_HDRINCL 3 2 2 2 2 2 # bsd consensus
syscon ip IP_DEFAULT_MULTICAST_LOOP 1 1 1 1 1 1 # consensus
syscon ip IP_DEFAULT_MULTICAST_TTL 1 1 1 1 1 1 # consensus
syscon ip IP_PMTUDISC_DONT 0 0 0 0 0 0 # consensus
syscon ip IP_MAX_MEMBERSHIPS 20 0x0fff 0x0fff 0x0fff 0x0fff 20 # bsd consensus
syscon ip IP_OPTIONS 4 1 1 1 1 1 # bsd consensus
syscon ip IP_RECVTTL 12 24 65 31 23 21
syscon ip IP_ADD_MEMBERSHIP 35 12 12 12 12 5 # bsd consensus
syscon ip IP_DROP_MEMBERSHIP 36 13 13 13 13 6 # bsd consensus
syscon ip IP_MULTICAST_IF 0x20 9 9 9 9 2 # bsd consensus
syscon ip IP_MULTICAST_LOOP 34 11 11 11 11 4 # bsd consensus
syscon ip IP_MULTICAST_TTL 33 10 10 10 10 3 # bsd consensus
syscon ip IP_RECVOPTS 6 5 5 5 5 0 # bsd consensus
syscon ip IP_RECVRETOPTS 7 6 6 6 6 0 # bsd consensus
syscon ip IP_RECVDSTADDR 0 7 7 7 7 0 # bsd consensus
syscon ip IP_RETOPTS 7 8 8 8 8 0 # bsd consensus
syscon ip IP_ADD_SOURCE_MEMBERSHIP 39 70 70 0 0 15
syscon ip IP_BLOCK_SOURCE 38 72 72 0 0 17
syscon ip IP_DROP_SOURCE_MEMBERSHIP 40 71 71 0 0 0x10
syscon ip IP_UNBLOCK_SOURCE 37 73 73 0 0 18
syscon ip IP_IPSEC_POLICY 0x10 21 21 0 0 0
syscon ip IP_MINTTL 21 0 66 32 24 0 # minimum ttl for packet or drop
syscon ip IP_MSFILTER 41 74 74 0 0 0
syscon ip IP_PKTINFO 8 26 0 0 25 19
syscon ip IP_RECVTOS 13 0 68 0 0 40
syscon ip IP_MTU 14 0 0 0 0 73 # bsd consensus
syscon ip IP_MTU_DISCOVER 10 0 0 0 0 71 # bsd consensus
syscon ip IP_RECVERR 11 0 0 0 0 75 # bsd consensus
syscon ip IP_UNICAST_IF 50 0 0 0 0 31 # bsd consensus
syscon ip IP_ORIGDSTADDR 20 0 27 0 0 0
syscon ip IP_RECVORIGDSTADDR 20 0 27 0 0 0
syscon ip IP_BIND_ADDRESS_NO_PORT 24 0 0 0 0 0
syscon ip IP_CHECKSUM 23 0 0 0 0 0
syscon ip IP_FREEBIND 15 0 0 0 0 0
syscon ip IP_MULTICAST_ALL 49 0 0 0 0 0
syscon ip IP_NODEFRAG 22 0 0 0 0 0
syscon ip IP_PASSSEC 18 0 0 0 0 0
syscon ip IP_PKTOPTIONS 9 0 0 0 0 0
syscon ip IP_PMTUDISC 10 0 0 0 0 0
syscon ip IP_PMTUDISC_DO 2 0 0 0 0 0
syscon ip IP_PMTUDISC_INTERFACE 4 0 0 0 0 0
syscon ip IP_PMTUDISC_OMIT 5 0 0 0 0 0
syscon ip IP_PMTUDISC_PROBE 3 0 0 0 0 0
syscon ip IP_PMTUDISC_WANT 1 0 0 0 0 0
syscon ip IP_ROUTER_ALERT 5 0 0 0 0 0
syscon ip IP_TRANSPARENT 19 0 0 0 0 0
syscon ip IP_XFRM_POLICY 17 0 0 0 0 0
syscon ip INET_ADDRSTRLEN 0x10 0x10 0x10 0x10 0x10 22 # unix consensus
syscon ipport IPPORT_USERRESERVED 5000 5000 5000 49151 5000 5000
# ptrace() codes
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon ptrace PTRACE_TRACEME 0 0 0 0 -1 -1 # unix consensus a.k.a. PT_TRACE_ME
syscon ptrace PTRACE_PEEKTEXT 1 1 1 1 -1 -1 # unix consensus a.k.a. PT_READ_I
syscon ptrace PTRACE_PEEKDATA 2 2 2 2 -1 -1 # unix consensus a.k.a. PT_READ_D
syscon ptrace PTRACE_PEEKUSER 3 3 -1 -1 -1 -1 # a.k.a. PT_READ_U
syscon ptrace PTRACE_POKETEXT 4 4 4 4 -1 -1 # unix consensus a.k.a. PT_WRITE_I
syscon ptrace PTRACE_POKEDATA 5 5 5 5 -1 -1 # unix consensus a.k.a. PT_WRITE_D
syscon ptrace PTRACE_POKEUSER 6 6 -1 -1 -1 -1 # a.k.a. PT_WRITE_U
syscon ptrace PTRACE_CONT 7 7 7 7 -1 -1 # unix consensus a.k.a. PT_CONTINUE
syscon ptrace PTRACE_KILL 8 8 8 8 -1 -1 # unix consensus a.k.a. PT_KILL
syscon ptrace PTRACE_SINGLESTEP 9 9 9 32 -1 -1 # a.k.a. PT_STEP
syscon ptrace PTRACE_GETREGS 12 -1 33 33 -1 -1 # a.k.a. PT_GETREGS
syscon ptrace PTRACE_SETREGS 13 -1 34 34 -1 -1 # a.k.a. PT_SETREGS
syscon ptrace PTRACE_GETFPREGS 14 -1 35 35 -1 -1 # a.k.a. PT_GETFPREGS
syscon ptrace PTRACE_SETFPREGS 15 -1 36 36 -1 -1 # a.k.a. PT_SETFPREGS
syscon ptrace PTRACE_ATTACH 16 10 10 9 -1 -1 # a.k.a. PT_ATTACH
syscon ptrace PTRACE_DETACH 17 11 11 10 -1 -1 # a.k.a. PT_DETACH
syscon ptrace PTRACE_GETFPXREGS 18 -1 -1 -1 -1 -1 # a.k.a. PT_GETFPXREGS
syscon ptrace PTRACE_SETFPXREGS 19 -1 -1 -1 -1 -1 # a.k.a. PT_SETFPXREGS
syscon ptrace PTRACE_SYSCALL 24 -1 22 -1 -1 -1 # a.k.a. PT_SYSCALL
syscon ptrace PTRACE_GETEVENTMSG 0x4201 -1 -1 -1 -1 -1
syscon ptrace PTRACE_GETSIGINFO 0x4202 -1 -1 -1 -1 -1
syscon ptrace PTRACE_SETOPTIONS 0x4200 -1 -1 -1 -1 -1
syscon ptrace PTRACE_SETSIGINFO 0x4203 -1 -1 -1 -1 -1
syscon ptrace PTRACE_GETREGSET 0x4204 -1 -1 -1 -1 -1
syscon ptrace PTRACE_GETSIGMASK 0x420a -1 -1 -1 -1 -1
syscon ptrace PTRACE_INTERRUPT 0x4207 -1 -1 -1 -1 -1
syscon ptrace PTRACE_LISTEN 0x4208 -1 -1 -1 -1 -1
syscon ptrace PTRACE_PEEKSIGINFO 0x4209 -1 -1 -1 -1 -1
syscon ptrace PTRACE_SECCOMP_GET_FILTER 0x420c -1 -1 -1 -1 -1
syscon ptrace PTRACE_SEIZE 0x4206 -1 -1 -1 -1 -1
syscon ptrace PTRACE_SETREGSET 0x4205 -1 -1 -1 -1 -1
syscon ptrace PTRACE_SETSIGMASK 0x420b -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_TRACESYSGOOD 0x0001 -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_TRACEFORK 0x0002 -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_TRACEVFORK 0x0004 -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_TRACECLONE 0x0008 -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_TRACEEXEC 0x0010 -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_TRACEVFORKDONE 0x0020 -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_TRACEEXIT 0x0040 -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_TRACESECCOMP 0x0080 -1 -1 -1 -1 -1
syscon ptrace PTRACE_O_MASK 0x007f -1 -1 -1 -1 -1
syscon ptrace PTRACE_EVENT_FORK 1 -1 -1 -1 -1 -1
syscon ptrace PTRACE_EVENT_VFORK 2 -1 -1 -1 -1 -1
syscon ptrace PTRACE_EVENT_CLONE 3 -1 -1 -1 -1 -1
syscon ptrace PTRACE_EVENT_EXEC 4 -1 -1 -1 -1 -1
syscon ptrace PTRACE_EVENT_VFORK_DONE 5 -1 -1 -1 -1 -1
syscon ptrace PTRACE_EVENT_EXIT 6 -1 -1 -1 -1 -1
syscon ptrace PTRACE_EVENT_SECCOMP 7 -1 -1 -1 -1 -1
syscon ptrace PTRACE_EVENT_STOP 128 -1 -1 -1 -1 -1
# clone() codes
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon clone CLONE_VM 0x00000100 0x00000100 0x00000100 0x00000100 0x00000100 0x00000100 # intentionally symbolic so we can tell if clone() is being used to create threads
# IPPROTO_*
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon iproto IPPROTO_IP 0 0 0 0 0 0 # consensus
syscon iproto IPPROTO_ICMP 1 1 1 1 1 1 # consensus
syscon iproto IPPROTO_TCP 6 6 6 6 6 6 # consensus
syscon iproto IPPROTO_UDP 17 17 17 17 17 17 # consensus
syscon iproto IPPROTO_RAW 255 255 255 255 255 255 # consensus
syscon iproto IPPROTO_HOPOPTS -1 -1 -1 -1 -1 -1 # consensus
syscon iproto IPPROTO_IDP 22 22 22 22 22 22 # consensus
syscon iproto IPPROTO_IGMP 2 2 2 2 2 2 # consensus
syscon iproto IPPROTO_PUP 12 12 12 12 12 12 # consensus
syscon iproto IPPROTO_AH 51 51 51 51 51 -1 # unix consensus
syscon iproto IPPROTO_DSTOPTS 60 60 60 60 60 -1 # unix consensus
syscon iproto IPPROTO_EGP 8 8 8 8 8 -1 # unix consensus
syscon iproto IPPROTO_ENCAP 98 98 98 98 98 -1 # unix consensus
syscon iproto IPPROTO_ESP 50 50 50 50 50 -1 # unix consensus
syscon iproto IPPROTO_FRAGMENT 44 44 44 44 44 -1 # unix consensus
syscon iproto IPPROTO_GRE 47 47 47 47 47 -1 # unix consensus
syscon iproto IPPROTO_ICMPV6 58 58 58 58 58 -1 # unix consensus
syscon iproto IPPROTO_IPIP 4 4 4 4 4 -1 # unix consensus
syscon iproto IPPROTO_IPV6 41 41 41 41 41 -1 # unix consensus
syscon iproto IPPROTO_NONE 59 59 59 59 59 -1 # unix consensus
syscon iproto IPPROTO_PIM 103 103 103 103 103 -1 # unix consensus
syscon iproto IPPROTO_ROUTING 43 43 43 43 43 -1 # unix consensus
syscon iproto IPPROTO_RSVP 46 46 46 46 46 -1 # unix consensus
syscon iproto IPPROTO_TP 29 29 29 29 29 -1 # unix consensus
syscon iproto IPPROTO_MPLS 137 -1 137 137 137 -1
syscon iproto IPPROTO_MTP 92 92 92 -1 -1 -1
syscon iproto IPPROTO_SCTP 132 132 132 -1 -1 -1
syscon iproto IPPROTO_MH 135 -1 135 -1 -1 -1
syscon iproto IPPROTO_UDPLITE 136 -1 136 -1 -1 -1
syscon iproto IPPROTO_BEETPH 94 -1 -1 -1 -1 -1
syscon iproto IPPROTO_COMP 108 -1 -1 -1 -1 -1
syscon iproto IPPROTO_DCCP 33 -1 -1 -1 -1 -1
# socket ioctl()
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon sio SIOCATMARK 0x8905 0x40047307 0x40047307 0x40047307 0x40047307 0x40047307 # use sockatmark(); determines if oob is available; bsd consensus
syscon sio SIOCADDMULTI 0x8931 0x80206931 0x80206931 0x80206931 0x80206931 0 # bsd consensus
syscon sio SIOCDELMULTI 0x8932 0x80206932 0x80206932 0x80206932 0x80206932 0 # bsd consensus
syscon sio SIOCDIFADDR 0x8936 0x80206919 0x80206919 0x80206919 0x80206919 0 # bsd consensus
syscon sio SIOCGIFADDR 0x8915 0xc0206921 0xc0206921 0xc0206921 0xc0206921 0 # bsd consensus
syscon sio SIOCGIFBRDADDR 0x8919 0xc0206923 0xc0206923 0xc0206923 0xc0206923 0 # bsd consensus
syscon sio SIOCGIFDSTADDR 0x8917 0xc0206922 0xc0206922 0xc0206922 0xc0206922 0 # bsd consensus
syscon sio SIOCGIFFLAGS 0x8913 0xc0206911 0xc0206911 0xc0206911 0xc0206911 0 # bsd consensus
syscon sio SIOCGIFMETRIC 0x891d 0xc0206917 0xc0206917 0xc0206917 0xc0206917 0 # bsd consensus
syscon sio SIOCGIFNETMASK 0x891b 0xc0206925 0xc0206925 0xc0206925 0xc0206925 0 # bsd consensus
syscon sio SIOCGPGRP 0x8904 0x40047309 0x40047309 0x40047309 0x40047309 0 # bsd consensus
syscon sio SIOCSIFADDR 0x8916 0x8020690c 0x8020690c 0x8020690c 0x8020690c 0 # bsd consensus
syscon sio SIOCSIFBRDADDR 0x891a 0x80206913 0x80206913 0x80206913 0x80206913 0 # bsd consensus
syscon sio SIOCSIFDSTADDR 0x8918 0x8020690e 0x8020690e 0x8020690e 0x8020690e 0 # bsd consensus
syscon sio SIOCSIFFLAGS 0x8914 0x80206910 0x80206910 0x80206910 0x80206910 0 # bsd consensus
syscon sio SIOCSIFMETRIC 0x891e 0x80206918 0x80206918 0x80206918 0x80206918 0 # bsd consensus
syscon sio SIOCSIFNETMASK 0x891c 0x80206916 0x80206916 0x80206916 0x80206916 0 # bsd consensus
syscon sio SIOCSPGRP 0x8902 0x80047308 0x80047308 0x80047308 0x80047308 0 # bsd consensus
syscon sio SIOCGIFCONF 0x8912 0xc00c6924 0xc0106924 0xc0106924 0xc0106924 0
syscon sio SIOCGIFMTU 0x8921 0xc0206933 0xc0206933 0xc020697e 0xc020697e 0
syscon sio SIOCSIFMTU 0x8922 0x80206934 0x80206934 0x8020697f 0x8020697f 0
syscon sio SIOCGIFINDEX 0x8933 0 0xc0206920 0 0 0
syscon sio SIOCSIFNAME 0x8923 0 0x80206928 0 0 0
syscon sio SIOCADDDLCI 0x8980 0 0 0 0 0
syscon sio SIOCADDRT 0x890b 0 0 0 0 0
syscon sio SIOCDARP 0x8953 0 0 0 0 0
syscon sio SIOCDELDLCI 0x8981 0 0 0 0 0
syscon sio SIOCDELRT 0x890c 0 0 0 0 0
syscon sio SIOCDEVPRIVATE 0x89f0 0 0 0 0 0
syscon sio SIOCDRARP 0x8960 0 0 0 0 0
syscon sio SIOCGARP 0x8954 0 0 0 0 0
syscon sio SIOCGIFBR 0x8940 0 0 0 0 0
syscon sio SIOCGIFCOUNT 0x8938 0 0 0 0 0
syscon sio SIOCGIFENCAP 0x8925 0 0 0 0 0
syscon sio SIOCGIFHWADDR 0x8927 0 0 0 0 0
syscon sio SIOCGIFMAP 0x8970 0 0 0 0 0
syscon sio SIOCGIFMEM 0x891f 0 0 0 0 0
syscon sio SIOCGIFNAME 0x8910 0 0 0 0 0
syscon sio SIOCGIFPFLAGS 0x8935 0 0 0 0 0
syscon sio SIOCGIFSLAVE 0x8929 0 0 0 0 0
syscon sio SIOCGIFTXQLEN 0x8942 0 0 0 0 0
syscon sio SIOCGRARP 0x8961 0 0 0 0 0
syscon sio SIOCGSTAMP 0x8906 0 0 0 0 0
syscon sio SIOCGSTAMPNS 0x8907 0 0 0 0 0
syscon sio SIOCPROTOPRIVATE 0x89e0 0 0 0 0 0
syscon sio SIOCRTMSG 0x890d 0 0 0 0 0
syscon sio SIOCSARP 0x8955 0 0 0 0 0
syscon sio SIOCSIFBR 0x8941 0 0 0 0 0
syscon sio SIOCSIFENCAP 0x8926 0 0 0 0 0
syscon sio SIOCSIFHWADDR 0x8924 0 0 0 0 0
syscon sio SIOCSIFHWBROADCAST 0x8937 0 0 0 0 0
syscon sio SIOCSIFLINK 0x8911 0 0 0 0 0
syscon sio SIOCSIFMAP 0x8971 0 0 0 0 0
syscon sio SIOCSIFMEM 0x8920 0 0 0 0 0
syscon sio SIOCSIFPFLAGS 0x8934 0 0 0 0 0
syscon sio SIOCSIFSLAVE 0x8930 0 0 0 0 0
syscon sio SIOCSIFTXQLEN 0x8943 0 0 0 0 0
syscon sio SIOCSRARP 0x8962 0 0 0 0 0
syscon sio SIOGIFINDEX 0x8933 0 0 0 0 0
# socket() address families
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon af AF_UNSPEC 0 0 0 0 0 0 # consensus
syscon af AF_UNIX 1 1 1 1 1 1 # consensus
syscon af AF_LOCAL 1 1 1 1 1 1 # consensus
syscon af AF_FILE 1 0 0 0 0 0
syscon af AF_INET 2 2 2 2 2 2 # consensus
syscon af AF_INET6 10 30 28 24 24 23
syscon af AF_AX25 3 0 0 0 0 0
syscon af AF_IPX 4 23 23 23 23 6 # bsd consensus
syscon af AF_APPLETALK 5 0x10 0x10 0x10 0x10 0x10 # bsd consensus
syscon af AF_NETROM 6 0 0 0 0 0
syscon af AF_BRIDGE 7 0 0 0 0 0
syscon af AF_ATMPVC 8 0 0 0 0 0
syscon af AF_X25 9 0 0 0 0 0
syscon af AF_ROSE 11 0 0 0 0 0
syscon af AF_NETBEUI 13 0 0 0 0 0
syscon af AF_SECURITY 14 0 0 0 0 0
syscon af AF_KEY 15 0 0 30 0 0
syscon af AF_ROUTE 16 17 17 17 34 0 # bsd consensus
syscon af AF_NETLINK 16 0 0 0 0 0
syscon af AF_PACKET 17 0 0 0 0 0
syscon af AF_LINK 0 18 18 18 18 0
syscon af AF_ASH 18 0 0 0 0 0
syscon af AF_ECONET 19 0 0 0 0 0
syscon af AF_ATMSVC 20 0 0 0 0 0
syscon af AF_RDS 21 0 0 0 0 0
syscon af AF_SNA 22 11 11 11 11 11 # bsd consensus
syscon af AF_IRDA 23 0 0 0 0 0
syscon af AF_PPPOX 24 0 0 0 0 0
syscon af AF_WANPIPE 25 0 0 0 0 0
syscon af AF_LLC 26 0 0 0 0 0
syscon af AF_IB 27 0 0 0 0 0
syscon af AF_MPLS 28 0 0 33 33 0
syscon af AF_CAN 29 0 0 0 35 0
syscon af AF_TIPC 30 0 0 0 0 0
syscon af AF_BLUETOOTH 31 0 36 0x20 31 0
syscon af AF_IUCV 0x20 0 0 0 0 0
syscon af AF_RXRPC 33 0 0 0 0 0
syscon af AF_ISDN 34 28 26 26 26 0
syscon af AF_PHONET 35 0 0 0 0 0
syscon af AF_IEEE802154 36 0 0 0 0 0
syscon af AF_CAIF 37 0 0 0 0 0
syscon af AF_ALG 38 0 0 0 0 0
syscon af AF_NFC 39 0 0 0 0 0
syscon af AF_VSOCK 40 0 0 0 0 0
syscon af AF_KCM 41 0 0 0 0 0
syscon af AF_MAX 42 40 42 36 37 35
syscon pf PF_UNIX 1 1 1 1 1 1 # consensus
syscon pf PF_UNSPEC 0 0 0 0 0 0 # consensus
syscon pf PF_APPLETALK 5 0x10 0x10 0x10 0x10 0x10 # bsd consensus
syscon pf PF_SNA 22 11 11 11 11 11 # bsd consensus
syscon pf PF_INET6 10 30 28 24 24 23
syscon pf PF_MAX 42 40 42 36 36 35
syscon pf PF_INET 2 2 2 2 2 0 # unix consensus
syscon pf PF_LOCAL 1 1 1 1 1 0 # unix consensus
syscon pf PF_IPX 4 23 23 23 23 0 # bsd consensus
syscon pf PF_ROUTE 0x10 17 17 17 17 0 # bsd consensus
syscon pf PF_ISDN 34 28 26 26 26 0
syscon pf PF_KEY 15 29 27 30 30 0
syscon pf PF_BLUETOOTH 31 0 36 0x20 0x20 0
syscon pf PF_MPLS 28 0 0 33 33 0
syscon pf PF_ALG 38 0 0 0 0 0
syscon pf PF_ASH 18 0 0 0 0 0
syscon pf PF_ATMPVC 8 0 0 0 0 0
syscon pf PF_ATMSVC 20 0 0 0 0 0
syscon pf PF_AX25 3 0 0 0 0 0
syscon pf PF_BRIDGE 7 0 0 0 0 0
syscon pf PF_CAIF 37 0 0 0 0 0
syscon af PF_CAN 29 0 0 0 35 0
syscon pf PF_ECONET 19 0 0 0 0 0
syscon pf PF_FILE 1 0 0 0 0 0
syscon pf PF_IB 27 0 0 0 0 0
syscon pf PF_IEEE802154 36 0 0 0 0 0
syscon pf PF_IRDA 23 0 0 0 0 0
syscon pf PF_IUCV 0x20 0 0 0 0 0
syscon pf PF_KCM 41 0 0 0 0 0
syscon pf PF_LLC 26 0 0 0 0 0
syscon pf PF_NETBEUI 13 0 0 0 0 0
syscon pf PF_NETLINK 0x10 0 0 0 0 0
syscon pf PF_NETROM 6 0 0 0 0 0
syscon pf PF_NFC 39 0 0 0 0 0
syscon pf PF_PACKET 17 0 0 0 0 0
syscon pf PF_PHONET 35 0 0 0 0 0
syscon pf PF_PPPOX 24 0 0 0 0 0
syscon pf PF_RDS 21 0 0 0 0 0
syscon pf PF_ROSE 11 0 0 0 0 0
syscon pf PF_RXRPC 33 0 0 0 0 0
syscon pf PF_SECURITY 14 0 0 0 0 0
syscon pf PF_TIPC 30 0 0 0 0 0
syscon pf PF_VSOCK 40 0 0 0 0 0
syscon pf PF_WANPIPE 25 0 0 0 0 0
syscon pf PF_X25 9 0 0 0 0 0
# Eric Allman's exit() codes
#
# - Broadly supported style guideline;
# - Dating back to 1980 in 4.0BSD;
# - That won't be standardized.
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon ex EX_OK 0 0 0 0 0 0 # consensus
syscon ex EX_USAGE 64 64 64 64 64 64 # unix consensus & force NT
syscon ex EX_DATAERR 65 65 65 65 65 65 # unix consensus & force NT
syscon ex EX_NOINPUT 66 66 66 66 66 66 # unix consensus & force NT
syscon ex EX_NOUSER 67 67 67 67 67 67 # unix consensus & force NT
syscon ex EX_NOHOST 68 68 68 68 68 68 # unix consensus & force NT
syscon ex EX_UNAVAILABLE 69 69 69 69 69 69 # unix consensus & force NT
syscon ex EX_SOFTWARE 70 70 70 70 70 70 # unix consensus & force NT
syscon ex EX_OSERR 71 71 71 71 71 71 # unix consensus & force NT
syscon ex EX_OSFILE 72 72 72 72 72 72 # unix consensus & force NT
syscon ex EX_CANTCREAT 73 73 73 73 73 73 # unix consensus & force NT
syscon ex EX_IOERR 74 74 74 74 74 74 # unix consensus & force NT
syscon ex EX_TEMPFAIL 75 75 75 75 75 75 # unix consensus & force NT
syscon ex EX_PROTOCOL 76 76 76 76 76 76 # unix consensus & force NT
syscon ex EX_NOPERM 77 77 77 77 77 77 # unix consensus & force NT
syscon ex EX_CONFIG 78 78 78 78 78 78 # unix consensus & force NT
syscon ex EX__BASE 64 64 64 64 64 64 # unix consensus & force NT
syscon ex EX__MAX 78 78 78 78 78 78 # unix consensus & force NT
# getdents() constants
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon dt DT_UNKNOWN 0 0 0 0 0 0 # consensus
syscon dt DT_FIFO 1 1 1 1 1 1 # unix consensus & faked nt
syscon dt DT_CHR 2 2 2 2 2 2 # unix consensus & faked nt
syscon dt DT_DIR 4 4 4 4 4 4 # unix consensus & faked nt
syscon dt DT_BLK 6 6 6 6 6 6 # unix consensus & faked nt
syscon dt DT_REG 8 8 8 8 8 8 # unix consensus & faked nt
syscon dt DT_LNK 10 10 10 10 10 10 # unix consensus & faked nt
syscon dt DT_SOCK 12 12 12 12 12 12 # unix consensus & faked nt
# msync() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon ms MS_SYNC 4 16 0 2 4 4 # faked nt
syscon ms MS_ASYNC 1 1 1 1 1 1 # consensus (faked nt)
syscon ms MS_INVALIDATE 2 2 2 4 2 0
# statfs() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon statfs ST_RDONLY 1 1 1 1 1 0x00080000 # MNT_RDONLY on BSD, kNtFileReadOnlyVolume on NT
syscon statfs ST_NOSUID 2 8 8 8 8 0 # MNT_NOSUID on BSD
syscon statfs ST_NODEV 4 16 0 16 16 0 # MNT_NODEV on BSD
syscon statfs ST_NOEXEC 8 4 4 4 4 0 # MNT_NOEXEC on BSD
syscon statfs ST_SYNCHRONOUS 16 2 2 2 2 0 # MNT_SYNCHRONOUS on BSD
syscon statfs ST_NOATIME 0x0040 0x10000000 0x10000000 0x00008000 0x04000000 0 # MNT_NOATIME on BSD
syscon statfs ST_RELATIME 0x1000 0 0 0 0x00020000 0 # MNT_RELATIME on NetBSD
syscon statfs ST_APPEND 0x0100 0 0 0 0 0 #
syscon statfs ST_IMMUTABLE 0x0200 0 0 0 0 0 #
syscon statfs ST_MANDLOCK 0x0040 0 0 0 0 0 #
syscon statfs ST_NODIRATIME 0x0800 0 0 0 0 0 #
syscon statfs ST_WRITE 0x0080 0 0 0 0 0 #
# sendfile() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon sf SF_NODISKIO 0 0 1 0 0 0
syscon sf SF_MNOWAIT 0 0 2 0 0 0
syscon sf SF_SYNC 0 0 4 0 0 0
# mount() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon mount MS_RDONLY 0x00000001 0x00000001 0x00000001 0x00000001 0x00000001 0x00000001 # consensus; MNT_RDONLY on bsd; faked nt
syscon mount MNT_RDONLY 0x00000001 0x00000001 0x00000001 0x00000001 0x00000001 0x00000001 # consensus; MS_RDONLY on linux; faked nt
syscon mount MS_NOSUID 0x00000002 0x00000008 0x00000008 0x00000008 0x00000008 0x00000001 # don't honor S_ISUID bit; bsd consensus; MNT_NOSUID on bsd; faked nt
syscon mount MNT_NOSUID 0 0x00000008 0x00000008 0x00000008 0x00000008 0x00000001 # don't honor S_ISUID bit; bsd consensus; appears incorrectly defined in linux headers; MS_NOSUID on linux; faked nt
syscon mount MS_NODEV 0x00000004 0x00000010 0x00000010 0x00000010 0x00000010 0x00000004 # disallow special files; bsd consensus; MNT_NODEV on bsd; faked nt
syscon mount MNT_NODEV 0x00000004 0x00000010 0x00000010 0x00000010 0x00000010 0x00000004 # disallow special files; bsd consensus; MS_NODEV on linux; faked nt
syscon mount MS_NOEXEC 0x00000008 0x00000004 0x00000004 0x00000004 0x00000004 0x00000008 # disallow program execution; bsd consensus; MNT_NOEXEC on bsd; faked nt
syscon mount MNT_NOEXEC 0x00000008 0x00000004 0x00000004 0x00000004 0x00000004 0x00000008 # disallow program execution; bsd consensus; MS_NOEXEC on linux; faked nt
syscon mount MS_SYNCHRONOUS 0x00000010 0x00000002 0x00000002 0x00000002 0x00000002 0x00000010 # bsd consensus; MNT_SYNCHRONOUS on bsd; faked nt
syscon mount MNT_SYNCHRONOUS 0x00000010 0x00000002 0x00000002 0x00000002 0x00000002 0x00000010 # bsd consensus; MS_SYNCHRONOUS on linux; faked nt
syscon mount MS_REMOUNT 0x00000020 0x00010000 0x00010000 0x00010000 0x00010000 0x00000020 # tune existing mounting; bsd consensus; MNT_UPDATE on bsd; faked nt
syscon mount MNT_UPDATE 0x00000020 0x00010000 0x00010000 0x00010000 0x00010000 0x00000020 # tune existing mounting; bsd consensus; MS_REMOUNT on linux; faked nt
syscon mount MS_MANDLOCK 0x00000040 0 0 0 0 0 #
syscon mount MS_DIRSYNC 0x00000080 0 0 0 0 0 #
syscon mount MS_NOATIME 0x00000400 0x10000000 0x10000000 0x00008000 0x04000000 0x00000400 # do not update access times; MNT_NOATIME on bsd
syscon mount MNT_NOATIME 0x00000400 0x10000000 0x10000000 0x00008000 0x04000000 0x00000400 # do not update access times; MS_NOATIME on linux
syscon mount MS_NODIRATIME 0x00000800 0 0 0 0 0 #
syscon mount MS_BIND 0x00001000 0 0 0 0 0 #
syscon mount MS_MOVE 0x00002000 0 0 0 0 0 #
syscon mount MS_REC 0x00004000 0 0 0 0 0 #
syscon mount MS_SILENT 0x00008000 0 0 0 0 0 #
syscon mount MS_POSIXACL 0x00010000 0 0 0 0 0 #
syscon mount MS_UNBINDABLE 0x00020000 0 0 0 0 0 #
syscon mount MS_PRIVATE 0x00040000 0 0 0 0 0 #
syscon mount MS_SLAVE 0x00080000 0 0 0 0 0 #
syscon mount MS_SHARED 0x00100000 0 0 0 0 0 #
syscon mount MS_RELATIME 0x00200000 0 0 0 0x00020000 0 # MNT_RELATIME on bsd
syscon mount MNT_RELATIME 0x00200000 0 0 0 0x00020000 0 # MS_RELATIME on linux
syscon mount MS_KERNMOUNT 0x00400000 0 0 0 0 0 #
syscon mount MS_I_VERSION 0x00800000 0 0 0 0 0 #
syscon mount MS_STRICTATIME 0x01000000 0x80000000 0 0 0 0 # enable strict update of file access time; MNT_STRICTATIME on bsd
syscon mount MNT_STRICTATIME 0x01000000 0x80000000 0 0 0 0 # enable strict update of file access time; MS_STRICTATIME on linux
syscon mount MS_LAZYTIME 0x02000000 0 0 0 0 0 #
syscon mount MS_ACTIVE 0x40000000 0 0 0 0 0 #
syscon mount MS_NOUSER 0x80000000 0 0 0 0 0 #
syscon mount MS_RMT_MASK 0x02800051 0 0 0 0 0 #
syscon mount MS_MGC_VAL 0xc0ed0000 0 0 0 0 0 # Linux 2.3
syscon mount MS_MGC_MSK 0xffff0000 0 0 0 0 0 # Linux 2.3
syscon mount MNT_ASYNC 0 0x00000040 0x00000040 0x00000040 0x00000040 0 # file system written asynchronously; bsd consensus
syscon mount MNT_RELOAD 0 0x00040000 0x00040000 0x00040000 0x00040000 0 # reload filesystem data; bsd consensus
syscon mount MNT_SUIDDIR 0 0 0x00100000 0 0 0 # special suid dir handling
syscon mount MNT_NOCLUSTERR 0 0 0x40000000 0 0 0 # disable cluster read
syscon mount MNT_NOCLUSTERW 0 0 0x80000000 0 0 0 # disable cluster write
syscon mount MNT_SNAPSHOT 0 0x40000000 0x01000000 0 0 0 # confusing
# limits
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon limits PIPE_BUF 4096 512 512 512 512 4096 # bsd consensus
syscon limits NGROUPS_MAX 65536 16 1023 16 16 0 #
syscon limits SOMAXCONN 4096 128 128 128 128 2147483647 # maximum backlog for listen()
syscon limits _ARG_MAX 128*1024 1024*1024 512*1024 512*1024 256*1024 32767*2 # bsd consensus
syscon limits _NAME_MAX 255 255 255 255 511 255 # probably higher on windows?
syscon limits _PATH_MAX 4096 1024 1024 1024 1024 512 # cosmopolitan libc imposes a lower 512 limit; nt theoretically goes up to 32767
syscon limits _NSIG 64 32 128 32 64 32 # _SIG_MAXSIG on FreeBSD
# unmount() flags
# a.k.a. umount2() on linux
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon unmount MNT_FORCE 1 0x00080000 0x00080000 0x00080000 0x00080000 2 # force unmount or readonly
syscon unmount MNT_DETACH 2 0 0 0 0 0 # just detach from the tree
syscon unmount MNT_EXPIRE 4 0 0 0 0 0 # mark for expiry
syscon unmount UMOUNT_NOFOLLOW 8 0 0 0 0 0 # don't follow symlinks on unmount
syscon unmount MNT_BYFSID 0 0 0x08000000 0 0 0 # if used pass "FSID:val0:val1", where val0 and val1 are the contents of the fsid_t val[] array in decimal
# reboot() magnums
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon reboot RB_AUTOBOOT 0x01234567 0 0 0 0 4 # reboots; SHUTDOWN_RESTART on NT
syscon reboot RB_POWER_OFF 0x4321fedc 0xffffffff 0x4000 0x1000 0x808 8 # SHUTDOWN_POWEROFF on NT
syscon reboot RB_POWERDOWN 0x4321fedc 0xffffffff 0x4000 0x1000 0x808 8 # openbsd/netbsd name
syscon reboot RB_POWEROFF 0x4321fedc 0xffffffff 0x4000 0x1000 0x808 8 # freebsd name
syscon reboot RB_HALT_SYSTEM 0xcdef0123 8 8 8 8 16 # the processor is simply halted; SHUTDOWN_NOREBOOT on NT
syscon reboot RB_HALT 0xcdef0123 8 8 8 8 16 # the processor is simply halted; bsd name
syscon reboot RB_SW_SUSPEND 0xd000fce2 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xd000fce2 #
syscon reboot RB_KEXEC 0x45584543 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff #
syscon reboot RB_ENABLE_CAD 0x89abcdef 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff # enable control-alt-delete reboot
syscon reboot RB_DISABLE_CAD 0 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff # make control-alt-delete just eintr
syscon reboot RB_NOSYNC 0x20000000 4 4 4 4 0x20000000 # prevents implicit sync() beforehand; polyfilled linux; polyfilled on nt just in case
# send() / recv() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon msg MSG_OOB 1 1 1 1 1 1 # consensus
syscon msg MSG_PEEK 2 2 2 2 2 2 # consensus
syscon msg MSG_DONTROUTE 4 4 4 4 4 4 # consensus
syscon msg MSG_FASTOPEN 0x20000000 0 0 0 0 0 # TODO
syscon msg MSG_WAITALL 0x0100 0x40 0x40 0x40 0x40 8 # bsd consensus
syscon msg MSG_MORE 0x8000 0 0 0 0 0 # send/sendto: manual TCP_CORK hbasically
syscon msg MSG_NOSIGNAL 0x4000 0x80000 0x020000 0x0400 0x0400 0 # send/sendto: don't SIGPIPE on EOF
syscon msg MSG_DONTWAIT 0x40 0x80 0x80 0x80 0x80 0 # send/sendto: manual non-blocking
syscon msg MSG_TRUNC 0x20 0x10 0x10 0x10 0x10 0x0100 # bsd consensus
syscon msg MSG_CTRUNC 8 0x20 0x20 0x20 0x20 0x0200 # bsd consensus
syscon msg MSG_ERRQUEUE 0x2000 0 0 0 0 0x1000 # bsd consensus
syscon msg MSG_NOERROR 0x1000 0x1000 0x1000 0x1000 0x1000 0 # unix consensus
syscon msg MSG_EOR 0x80 8 8 8 8 0 # bsd consensus
syscon msg MSG_CMSG_CLOEXEC 0x40000000 0 0x040000 0x0800 0x0800 0
syscon msg MSG_WAITFORONE 0x010000 0 0x080000 0 0x2000 0
syscon msg MSG_BATCH 0x040000 0 0 0 0 0
syscon msg MSG_CONFIRM 0x0800 0 0 0 0 0
syscon msg MSG_EXCEPT 0x2000 0 0 0 0 0
syscon msg MSG_FIN 0x0200 0x0100 0x0100 0 0 0
syscon msg MSG_EOF 0x0200 0x0100 0x0100 0 0 0
syscon msg MSG_INFO 12 0 0 0 0 0
syscon msg MSG_PARITY_ERROR 9 0 0 0 0 0
syscon msg MSG_PROXY 0x10 0 0 0 0 0
syscon msg MSG_RST 0x1000 0 0 0 0 0
syscon msg MSG_STAT 11 0 0 0 0 0
syscon msg MSG_SYN 0x0400 0 0 0 0 0
syscon msg MSG_BCAST 0 0 0 0x100 0x100 0
syscon msg MSG_MCAST 0 0 0 0x200 0x200 0
syscon msg MSG_NOTIFICATION 0x8000 0 0x2000 0 0x4000 0
# getpriority() / setpriority() magnums (a.k.a. nice)
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon prio PRIO_PROCESS 0 0 0 0 0 0 # consensus / poly nt
syscon prio PRIO_PGRP 1 1 1 1 1 1 # unix consensus / poly nt
syscon prio PRIO_USER 2 2 2 2 2 2 # unix consensus / poly nt
syscon prio PRIO_MIN -20 -20 -20 -20 -20 -20 # unix consensus / poly nt
syscon prio PRIO_MAX 20 20 20 20 20 20 # unix consensus / poly nt
syscon prio NZERO 20 20 20 20 20 20 # unix consensus / polyfilled nt
# getrusage() who
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon rusage RUSAGE_SELF 0 0 0 0 0 0 # unix consensus & faked nt
syscon rusage RUSAGE_THREAD 1 99 1 1 1 1 # faked nt & unavailable on xnu
syscon rusage RUSAGE_CHILDREN -1 -1 -1 -1 -1 99 # unix consensus & unavailable on nt
syscon rusage RUSAGE_BOTH -2 99 99 99 99 99 # woop
# fast userspace mutexes
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon futex FUTEX_WAIT 0 0 0 1 0 0
syscon futex FUTEX_WAKE 1 0 0 2 1 0
syscon futex FUTEX_REQUEUE 3 0 0 3 3 0
syscon futex FUTEX_PRIVATE_FLAG 128 0 0 128 128 0
# lio_listio() magnums
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon lio LIO_WRITE 127 2 1 127 1 127
syscon lio LIO_NOWAIT 127 1 0 127 0 127
syscon lio LIO_READ 127 1 2 127 2 127
syscon lio LIO_WAIT 127 2 1 127 1 127
syscon lio LIO_NOP 127 0 0 127 0 127
# posix scheduling
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon sched SCHED_OTHER 0 127 2 127 0 127 # standard round-robin time-sharing policy
syscon sched SCHED_FIFO 1 127 1 127 1 127 # [real-time] first-in, first-out policy
syscon sched SCHED_RR 2 127 3 127 2 127 # [real-time] round-robin policy
syscon sched SCHED_BATCH 3 127 2 127 0 127 # for "batch" style execution of processes; polyfilled as SCHED_OTHER on non-Linux
syscon sched SCHED_IDLE 5 127 2 127 0 127 # for running very low priority background jobs; polyfilled as SCHED_OTHER on non-Linux
syscon sched SCHED_DEADLINE 6 127 127 127 127 127 # can only be set by sched_setattr()
syscon sched SCHED_RESET_ON_FORK 0x40000000 0 0 0 0 0 # Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork(); no-op on non-Linux
# Teletypewriter Control, e.g.
#
# TCSETS → About 70,800 results (0.31 seconds)
# = TCSETNOW → About 47,700 results (0.31 seconds)
# ≈ TCSETA → About 12,600 results (0.32 seconds)
# = TIOCSETA → About 3,110 results (0.41 seconds)
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon termios TCGETS 0x5401 0x40487413 0x402c7413 0x402c7413 0x402c7413 0 # Gets console settings; tcgetattr(tty, argp) → ioctl(tty, TCGETS, struct termios *argp); polyfilled NT
syscon compat TIOCGETA 0x5401 0x40487413 0x402c7413 0x402c7413 0x402c7413 0 # Gets console settings; = tcgetattr(tty, struct termios *argp)
#syscon compat TCGETA 0x5405 0 0 0 0 0 # Gets console settings; ≈ ioctl(fd, TCGETA, struct termio *argp)
syscon termios TCSANOW 0 0 0 0 0 0 # Sets console settings; tcsetattr(fd, TCSANOW, argp); polyfilled NT
syscon termios TCSETS 0x5402 0x80487414 0x802c7414 0x802c7414 0x802c7414 0x5402 # Sets console settings; = ioctl(tty, TCSETS, const struct termios *argp); polyfilled NT
syscon compat TIOCSETA 0x5402 0x80487414 0x802c7414 0x802c7414 0x802c7414 0x5402 # Sets console settings; = ioctl(tty, TIOCSETA, const struct termios *argp); polyfilled NT
#syscon compat TCSETA 0x5402 0x80487414 0x802c7414 0x802c7414 0x802c7414 0x5402 # Sets console settings; ≈ ioctl(tty, TCSETA, const struct termio *argp); polyfilled NT
syscon termios TCSADRAIN 1 1 1 1 1 1 # Drains output & sets console settings; tcsetawttr(fd, TCSADRAIN, argp); polyfilled NT
syscon termios TCSETSW 0x5403 0x80487415 0x802c7415 0x802c7415 0x802c7415 0x5403 # Drains output & sets console settings; = ioctl(tty, TCSETSW, const struct termios *argp); polyfilled NT
syscon compat TIOCSETAW 0x5403 0x80487415 0x802c7415 0x802c7415 0x802c7415 0x5403 # Drains output & sets console settings; = ioctl(tty, TIOCSETAW, const struct termios *argp); polyfilled NT
#syscon compat TCSETAW 0x5403 0x80487415 0x802c7415 0x802c7415 0x802c7415 0x5403 # Drains output & sets console settings; ≈ ioctl(tty, TCSETAW, const struct termio *argp); polyfilled NT
syscon termios TCSAFLUSH 2 2 2 2 2 2 # Drops input & drains output & sets console settings; tcsetafttr(fd, TCSAFLUSH, argp); polyfilled NT
syscon termios TCSETSF 0x5404 0x80487416 0x802c7416 0x802c7416 0x802c7416 0x5404 # Drops input & drains output & sets console settings; = ioctl(tty, TCSETSF, const struct termios *argp); polyfilled NT
syscon compat TIOCSETAF 0x5404 0x80487416 0x802c7416 0x802c7416 0x802c7416 0x5402 # Drops input & drains output & sets console settings; = ioctl(tty, TIOCSETAF, const struct termios *argp); polyfilled NT
#syscon compat TCSETAF 0x5404 0x80487416 0x802c7416 0x802c7416 0x802c7416 0x5402 # Drops input & drains output & sets console settings; ≈ ioctl(tty, TCSETAF, const struct termio *argp); polyfilled NT
syscon termios TIOCGWINSZ 0x5413 1074295912 1074295912 1074295912 1074295912 0x5413 # ioctl(tty, TIOCGWINSZ, struct winsize *argp); polyfilled NT
syscon termios TIOCSWINSZ 0x5414 0x80087467 0x80087467 0x80087467 0x80087467 0x5414 # ioctl(tty, TIOCSWINSZ, const struct winsize *argp) (faked NT)
syscon termios TIOCOUTQ 0x5411 0x40047473 0x40047473 0x40047473 0x40047473 0 # get # bytes queued in TTY's output buffer ioctl(tty, TIOCSWINSZ, const struct winsize *argp)
syscon termios TIOCGPGRP 0x540f 0x40047477 0x40047477 0x40047477 0x40047477 0 # get pgrp of tty
syscon termios TIOCSPGRP 0x5410 0x80047476 0x80047476 0x80047476 0x80047476 0 # set pgrp of tty
syscon termios TIOCSBRK 0x5427 0x2000747b 0x2000747b 0x2000747b 0x2000747b 0 # set break bit
syscon termios TIOCCBRK 0x5428 0x2000747a 0x2000747a 0x2000747a 0x2000747a 0 # boop
syscon termios TIOCCONS 0x541d 0x80047462 0x80047462 0x80047462 0x80047462 0 # boop
syscon termios TIOCGETD 0x5424 0x4004741a 0x4004741a 0x4004741a 0x4004741a 0 # boop
syscon termios TIOCNOTTY 0x5422 0x20007471 0x20007471 0x20007471 0x20007471 0 # boop
syscon termios TIOCNXCL 0x540d 0x2000740e 0x2000740e 0x2000740e 0x2000740e 0 # boop
syscon termios TIOCSCTTY 0x540e 0x20007461 0x20007461 0x20007461 0x20007461 0 # boop
syscon termios TIOCSETD 0x5423 0x8004741b 0x8004741b 0x8004741b 0x8004741b 0 # boop
syscon termios TIOCSIG 0x40045436 0x2000745f 0x2004745f 0x8004745f 0x8004745f 0 # boop
syscon termios TIOCSTI 0x5412 0x80017472 0x80017472 0 0 0 # boop
syscon termios TIOCGSID 0x5429 0x40047463 0x40047463 0x40047463 0x40047463 0 # boop
syscon termios TABLDISC 0 0x3 0 0x3 0x3 0 # boop
syscon termios SLIPDISC 0 0x4 0x4 0x4 0x4 0 # boop
syscon termios PPPDISC 0 0x5 0x5 0x5 0x5 0 # boop
syscon termios TCSBRK 0x5409 0x2000745e 0x2000745e 0x2000745e 0x2000745e 0 # TIOCDRAIN on BSD
syscon termios TIOCDRAIN 0x5409 0x2000745e 0x2000745e 0x2000745e 0x2000745e 0 # TCSBRK on Linux
syscon termios TIOCSTAT 0 0x20007465 0x20007465 0x20007465 0x20007465 0 # boop
syscon termios TIOCSTART 0 0x2000746e 0x2000746e 0x2000746e 0x2000746e 0 # boop
syscon termios TIOCCDTR 0 0x20007478 0x20007478 0x20007478 0x20007478 0 # clear data terminal ready
syscon termios TIOCSDTR 0 0x20007479 0x20007479 0x20007479 0x20007479 0 # boop
syscon termios TIOCEXT 0 0x80047460 0x80047460 0x80047460 0x80047460 0 # boop
syscon termios TIOCGDRAINWAIT 0 0x40047456 0x40047456 0 0 0 # boop
syscon termios TIOCTIMESTAMP 0 0x40107459 0x40107459 0 0 0 # boop
syscon termios TIOCSDRAINWAIT 0 0x80047457 0x80047457 0 0 0 # boop
syscon termios TIOCREMOTE 0 0x80047469 0 0x80047469 0x80047469 0 # boop
syscon termios TTYDISC 0 0 0 0 0 0 # boop
syscon termios TIOCFLAG_SOFTCAR 0 0 0 0x1 0x1 0 # boop
syscon termios TIOCFLAG_PPS 0 0 0 0x10 0x10 0 # boop
syscon termios TIOCFLAG_CLOCAL 0 0 0 0x2 0x2 0 # boop
syscon termios TIOCCHKVERAUTH 0 0 0 0x2000741e 0x2000741e 0 # boop
syscon termios TIOCGFLAGS 0 0 0 0x4004745d 0x4004745d 0 # boop
syscon termios TIOCGTSTAMP 0 0 0 0x4010745b 0x4010745b 0 # boop
syscon termios STRIPDISC 0 0 0 0x6 0x6 0 # boop
syscon termios NMEADISC 0 0 0 0x7 0x7 0 # boop
syscon termios TIOCUCNTL_CBRK 0 0 0 0x7a 0x7a 0 # boop
syscon termios TIOCFLAG_MDMBUF 0 0 0 0x8 0x8 0 # boop
syscon termios TIOCSETVERAUTH 0 0 0 0x8004741c 0x8004741c 0 # boop
syscon termios TIOCSFLAGS 0 0 0 0x8004745c 0x8004745c 0 # boop
syscon termios TIOCSTSTAMP 0 0 0 0x8008745a 0x8008745a 0 # boop
syscon termios ENDRUNDISC 0 0 0 0x9 0x9 0 # boop
syscon termios TIOCPTMASTER 0 0 0x2000741c 0 0 0 # boop
syscon termios NETGRAPHDISC 0 0 0x6 0 0 0 # boop
syscon termios H4DISC 0 0 0x7 0 0 0 # boop
# Teletypewriter Control Modes
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon termios CS5 0b0000000000000000 0b000000000000000000 0b000000000000000000 0b0000000000000000 0b0000000000000000 0b0000000000000000 # termios.c_cflag; consensus
syscon termios CS6 0b0000000000010000 0b000000000100000000 0b000000000100000000 0b0000000100000000 0b0000000100000000 0b0000000000010000 # termios.c_cflag; 6-bit characters
syscon termios CS7 0b0000000000100000 0b000000001000000000 0b000000001000000000 0b0000001000000000 0b0000001000000000 0b0000000000100000 # termios.c_cflag; 7-bit characters
syscon termios CS8 0b0000000000110000 0b000000001100000000 0b000000001100000000 0b0000001100000000 0b0000001100000000 0b0000000000110000 # termios.c_cflag; 8-bit characters
syscon termios CSIZE 0b0000000000110000 0b000000001100000000 0b000000001100000000 0b0000001100000000 0b0000001100000000 0b0000000000110000 # termios.c_cflag; mask for CS𝑥 flags
syscon termios CSTOPB 0b0000000001000000 0b000000010000000000 0b000000010000000000 0b0000010000000000 0b0000010000000000 0b0000000001000000 # termios.c_cflag; bsd consensus
syscon termios CREAD 0b0000000010000000 0b000000100000000000 0b000000100000000000 0b0000100000000000 0b0000100000000000 0b0000000010000000 # termios.c_cflag; bsd consensus
syscon termios PARENB 0b0000000100000000 0b000001000000000000 0b000001000000000000 0b0001000000000000 0b0001000000000000 0b0000000100000000 # termios.c_cflag
syscon termios PARODD 0b0000001000000000 0b000010000000000000 0b000010000000000000 0b0010000000000000 0b0010000000000000 0b0000001000000000 # termios.c_cflag
syscon termios HUPCL 0b0000010000000000 0b000100000000000000 0b000100000000000000 0b0100000000000000 0b0100000000000000 0b0000010000000000 # termios.c_cflag; bsd consensus
syscon termios CLOCAL 0b0000100000000000 0b1000000000000000 0b1000000000000000 0b1000000000000000 0b1000000000000000 0b0000100000000000 # termios.c_cflag; consensus
# Teletypewriter Local Modes
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon termios ISIG 0b0000000000000001 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000000000001 # termios.c_lflag|=ISIG makes Ctrl-C, Ctrl-\, etc. generate signals
syscon termios ICANON 0b0000000000000010 0b0000000100000000 0b0000000100000000 0b0000000100000000 0b0000000100000000 0b0000000000000010 # termios.c_lflag&=~ICANON disables 1960's version of gnu readline (see also VMIN)
syscon termios XCASE 0b0000000000000100 0 0 16777216 0 0b0000000000000100 # termios.c_lflag
syscon termios ECHO 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 # termios.c_lflag&=~ECHO is for passwords and raw mode
syscon termios ECHOE 0b0000000000010000 0b0000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000010000 # termios.c_lflag
syscon termios ECHOK 0b0000000000100000 0b0000000000000100 0b0000000000000100 0b0000000000000100 0b0000000000000100 0b0000000000100000 # termios.c_lflag
syscon termios ECHONL 0b0000000001000000 0b0000000000010000 0b0000000000010000 0b0000000000010000 0b0000000000010000 0b0000000001000000 # termios.c_lflag
syscon termios NOFLSH 0b0000000010000000 2147483648 2147483648 2147483648 2147483648 0b0000000010000000 # termios.c_lflag|=NOFLSH means don't flush on INT/QUIT/SUSP
syscon termios TOSTOP 0b0000000100000000 4194304 4194304 4194304 4194304 0b0000000100000000 # termios.c_lflag|=TOSTOP raises SIGTTOU to process group if background job tries to write to controlling terminal
syscon termios ECHOCTL 0b0000001000000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000001000000000 # termios.c_lflag|=ECHOCTL prints ^𝑥 codes for monotonic motion
syscon termios ECHOPRT 0b0000010000000000 0b0000000000100000 0b0000000000100000 0b0000000000100000 0b0000000000100000 0b0000010000000000 # termios.c_lflag|=ECHOPRT includes the parity bit
syscon termios ECHOKE 0b0000100000000000 0b0000000000000001 0b0000000000000001 0b0000000000000001 0b0000000000000001 0b0000100000000000 # termios.c_lflag
syscon termios FLUSHO 0b0001000000000000 8388608 8388608 8388608 8388608 0b0001000000000000 # termios.c_lflag
syscon termios PENDIN 0b0100000000000000 536870912 536870912 536870912 536870912 0b0100000000000000 # termios.c_lflag
syscon termios IEXTEN 0b1000000000000000 0b0000010000000000 0b0000010000000000 0b0000010000000000 0b0000010000000000 0b1000000000000000 # termios.c_lflag&=~IEXTEN disables platform input processing magic
syscon termios EXTPROC 65536 0b0000100000000000 0b0000100000000000 0b0000100000000000 0b0000100000000000 65536 # termios.c_lflag
# Teletypewriter Input Modes
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon termios IGNBRK 0b0000000000000001 0b0000000000000001 0b0000000000000001 0b0000000000000001 0b0000000000000001 0b0000000000000001 # termios.c_iflag it's complicated, uart only? UNIXCONSENSUS
syscon termios BRKINT 0b0000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000000010 # termios.c_iflag it's complicated, uart only? UNIXCONSENSUS
syscon termios IGNPAR 0b0000000000000100 0b0000000000000100 0b0000000000000100 0b0000000000000100 0b0000000000000100 0b0000000000000100 # termios.c_iflag|=IGNPAR ignores parity and framing errors; see PARMRK UNIXCONSENSUS
syscon termios PARMRK 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 # termios.c_iflag|=PARMRK passes-through parity bit UNIXCONSENSUS
syscon termios INPCK 0b0000000000010000 0b0000000000010000 0b0000000000010000 0b0000000000010000 0b0000000000010000 0b0000000000010000 # termios.c_iflag|=INPCK enables parity checking UNIXCONSENSUS
syscon termios ISTRIP 0b0000000000100000 0b0000000000100000 0b0000000000100000 0b0000000000100000 0b0000000000100000 0b0000000000100000 # termios.c_iflag|=ISTRIP automates read(1)&0x7f UNIXCONSENSUS
syscon termios INLCR 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 # termios.c_iflag|=INLCR maps \n → \r input UNIXCONSENSUS
syscon termios IGNCR 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 # termios.c_iflag|=IGNCR maps \r → ∅ input UNIXCONSENSUS
syscon termios ICRNL 0b0000000100000000 0b0000000100000000 0b0000000100000000 0b0000000100000000 0b0000000100000000 0b0000000100000000 # termios.c_iflag|=ICRNL maps \r → \n input UNIXCONSENSUS
syscon termios IUCLC 0b0000001000000000 0 0 0b0001000000000000 0 0b0000001000000000 # termios.c_iflag|=IUCLC maps A-Z → a-z input
syscon termios IXON 0b0000010000000000 0b0000001000000000 0b0000001000000000 0b0000001000000000 0b0000001000000000 0b0000010000000000 # termios.c_iflag|=IXON enables flow rida
syscon termios IXANY 0b0000100000000000 0b0000100000000000 0b0000100000000000 0b0000100000000000 0b0000100000000000 0b0000100000000000 # termios.c_iflag|=IXANY typing will un-stuck teletype UNIXCONSENSUS
syscon termios IXOFF 0b0001000000000000 0b0000010000000000 0b0000010000000000 0b0000010000000000 0b0000010000000000 0b0001000000000000 # termios.c_iflag|=IXOFF disables annoying display freeze keys
syscon termios IMAXBEL 0b0010000000000000 0b0010000000000000 0b0010000000000000 0b0010000000000000 0b0010000000000000 0b0010000000000000 # termios.c_iflag|=IMAXBEL rings when queue full UNIXCONSENSUS
syscon termios IUTF8 0b0100000000000000 0b0100000000000000 0 0 0 0b0100000000000000 # termios.c_iflag|=IUTF8 helps w/ rubout on UTF-8 input
# Teletypewriter Output Modes
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon termios OPOST 0b0000000000000001 0b000000000000000001 0b000000000000000001 0b0000000000000001 0b0000000000000001 0b0000000000000001 # termios.c_oflag&=~OPOST disables output processing magic, e.g. MULTICS newlines
syscon termios OLCUC 0b0000000000000010 0 0 0b0000000000100000 0 0b0000000000000010 # termios.c_oflag|=OLCUC maps a-z → A-Z output (SHOUTING)
syscon termios ONLCR 0b0000000000000100 0b000000000000000010 0b000000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000000100 # termios.c_oflag|=ONLCR map \n → \r\n output (MULTICS newline) and requires OPOST
syscon termios OCRNL 0b0000000000001000 0b000000000000010000 0b000000000000010000 0b0000000000010000 0b0000000000010000 0b0000000000001000 # termios.c_oflag|=OCRNL maps \r → \n output
syscon termios ONOCR 0b0000000000010000 0b000000000000100000 0b000000000000100000 0b0000000001000000 0b0000000001000000 0b0000000000010000 # termios.c_oflag|=ONOCR maps \r → ∅ output iff column 0
syscon termios ONLRET 0b0000000000100000 0b000000000001000000 0b000000000001000000 0b0000000010000000 0b0000000010000000 0b0000000000100000 # termios.c_oflag|=ONLRET maps \r → ∅ output
syscon termios OFILL 0b0000000001000000 0b000000000010000000 0 0 0 0b0000000001000000 # termios.c_oflag
syscon termios OFDEL 0b0000000010000000 0b100000000000000000 0 0 0 0b0000000010000000 # termios.c_oflag
syscon termios NLDLY 0b0000000100000000 0b000000001100000000 0b000000001100000000 0 0 0b0000000100000000 # (termios.c_oflag & NLDLY) ∈ {NL0,NL1,NL2,NL3}
syscon termios NL0 0b0000000000000000 0b000000000000000000 0b000000000000000000 0 0b000000000000000000 0b0000000000000000 # (termios.c_oflag & NLDLY) == NL0
syscon termios NL1 0b0000000100000000 0b000000000100000000 0b000000000100000000 0 0b000000000100000000 0b0000000100000000 # (termios.c_oflag & NLDLY) == NL1
syscon termios NL2 0 0b000000001000000000 0b000000001000000000 0 0b000000001000000000 0 # (termios.c_oflag & NLDLY) == NL2
syscon termios NL3 0 0b000000001100000000 0b000000001100000000 0 0b000000001100000000 0 # (termios.c_oflag & NLDLY) == NL3
syscon termios CRDLY 0b0000011000000000 0b000011000000000000 0b000011000000000000 0 0 0b0000011000000000 # (termios.c_oflag & CRDLY) ∈ {CR0,CR1,CR2,CR3}
syscon termios CR0 0b0000000000000000 0b000000000000000000 0b000000000000000000 0 0b000000000000000000 0b0000000000000000 # (termios.c_oflag & CRDLY) == CR0
syscon termios CR1 0b0000001000000000 0b000001000000000000 0b000001000000000000 0 0b000001000000000000 0b0000001000000000 # (termios.c_oflag & CRDLY) == CR1
syscon termios CR2 0b0000010000000000 0b000010000000000000 0b000010000000000000 0 0b000000010000000000 0b0000010000000000 # (termios.c_oflag & CRDLY) == CR2
syscon termios CR3 0b0000011000000000 0b000011000000000000 0b000011000000000000 0 0b000000011000000000 0b0000011000000000 # (termios.c_oflag & CRDLY) == CR3
syscon termios TABDLY 0b0001100000000000 0b000000110000000100 0b000000000000000100 0 0 0b0001100000000000 # (termios.c_oflag & TABDLY) ∈ {TAB0,TAB1,TAB2,TAB3,XTABS}
syscon termios TAB0 0b0000000000000000 0b000000000000000000 0b000000000000000000 0 0b000000000000000000 0b0000000000000000 # (termios.c_oflag & TABDLY) == TAB0
syscon termios TAB1 0b0000100000000000 0b000000010000000000 0b000000010000000000 0 0b000000010000000000 0b0000100000000000 # (termios.c_oflag & TABDLY) == TAB1
syscon termios TAB2 0b0001000000000000 0b000000100000000000 0b000000100000000000 0 0b000000100000000000 0b0001000000000000 # (termios.c_oflag & TABDLY) == TAB2
syscon termios TAB3 0b0001100000000000 0b000000000000000100 0b000000000000000100 0 0b000000000000000100 0b0001100000000000 # (termios.c_oflag & TABDLY) == TAB3
syscon termios XTABS 0b0001100000000000 0b000000110000000000 0b000000110000000000 0 0b000000110000000000 0b0001100000000000 # (termios.c_oflag & TABDLY) == XTABS
syscon termios BSDLY 0b0010000000000000 0b001000000000000000 0b001000000000000000 0 0 0b0010000000000000 # termios.c_oflag
syscon termios BS0 0b0000000000000000 0b000000000000000000 0b000000000000000000 0 0 0b0000000000000000 # termios.c_oflag
syscon termios BS1 0b0010000000000000 0b001000000000000000 0b001000000000000000 0 0 0b0010000000000000 # termios.c_oflag
syscon termios VTDLY 0b0100000000000000 0b010000000000000000 0b010000000000000000 0 0 0b0100000000000000 # termios.c_oflag
syscon termios VT0 0b0000000000000000 0b000000000000000000 0b000000000000000000 0 0 0b0000000000000000 # termios.c_oflag
syscon termios VT1 0b0100000000000000 0b010000000000000000 0b010000000000000000 0 0 0b0100000000000000 # termios.c_oflag
syscon termios FFDLY 0b1000000000000000 0b000100000000000000 0b000100000000000000 0 0 0b1000000000000000 # termios.c_oflag
syscon termios FF0 0b0000000000000000 0b000000000000000000 0b000000000000000000 0 0 0b0000000000000000 # termios.c_oflag
syscon termios FF1 0b1000000000000000 0b000100000000000000 0b000100000000000000 0 0 0b1000000000000000 # termios.c_oflag
# Teletypewriter Special Control Character Assignments
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon termios VMIN 6+1 16 16 16 16 6 # termios.c_cc[VMIN]=𝑥 in non-canonical mode can be set to 0 for non-blocking reads, 1 for single character raw mode reads, or higher to buffer
syscon termios VTIME 5+1 17 17 17 17 5 # termios.c_cc[VTIME]=𝑥 sets non-canonical read timeout to 𝑥×𝟷𝟶𝟶ms which is needed when entering escape sequences manually with the escape key
syscon termios NCCS 20 20 20 20 20 20 # ARRAYLEN(termios.c_cc); we schlep c_line into c_cc on linux
syscon termios VINTR 0+1 8 8 8 8 0 # termios.c_cc[VINTR]=𝑥
syscon termios VQUIT 1+1 9 9 9 9 1 # termios.c_cc[VQUIT]=𝑥
syscon termios VERASE 2+1 3 3 3 3 2 # termios.c_cc[VERASE]=𝑥
syscon termios VKILL 3+1 5 5 5 5 3 # termios.c_cc[VKILL]=𝑥
syscon termios VEOF 4+1 0 0 0 0 4 # termios.c_cc[VEOF]=𝑥
syscon termios VSWTC 7+1 0 0 0 0 7 # termios.c_cc[VSWTC]=𝑥
syscon termios VSTART 8+1 12 12 12 12 8 # termios.c_cc[VSTART]=𝑥
syscon termios VSTOP 9+1 13 13 13 13 9 # termios.c_cc[VSTOP]=𝑥
syscon termios VSUSP 10+1 10 10 10 10 10 # termios.c_cc[VSUSP]=𝑥 defines suspend, i.e. Ctrl-Z (a.k.a. →, ^Z, SUB, 26, 032, 0x1A, ord('Z')^0b01000000); unix consensus
syscon termios VEOL 11+1 1 1 1 1 11 # termios.c_cc[VEOL]=𝑥
syscon termios VREPRINT 12+1 6 6 6 6 12 # termios.c_cc[VREPRINT]=𝑥
syscon termios VDISCARD 13+1 15 15 15 15 13 # termios.c_cc[VDISCARD]=𝑥
syscon termios VWERASE 14+1 4 4 4 4 14 # termios.c_cc[VWERASE]=𝑥
syscon termios VLNEXT 15+1 14 14 14 14 15 # termios.c_cc[VLNEXT]=𝑥
syscon termios VEOL2 16+1 2 2 2 2 16 # termios.c_cc[VEOL2]=𝑥
syscon termios TIOCSERGETLSR 0x5459 0 0 0 0 0 #
syscon termios TIOCSERGETMULTI 0x545a 0 0 0 0 0 #
syscon termios TIOCSERSETMULTI 0x545b 0 0 0 0 0 #
syscon termios TIOCSER_TEMT 1 0 0 0 0 0 #
syscon termios VERIFY 47 0 0 0 0 0
syscon termios CIBAUD 0x100f0000 0 0 0 0 0
syscon termios CMSPAR 0x40000000 0 0 0 0 0
syscon termios BUSY 4 0 0 0 0 0
syscon termios CBAUD 0x100f 0 0 0 0 0
syscon termios CBAUDEX 0x1000 0 0 0 0 0
syscon termios EXTA 14 0x4b00 0x4b00 0x4b00 0x4b00 0 # bsd consensus
syscon termios EXTB 15 0x9600 0x9600 0x9600 0x9600 0 # bsd consensus
syscon termios ERA 0x02002c 45 45 0 0 0
syscon termios EMPTY 0 0 0 0 0 0 # consensus
syscon termios TCFLSH 0x540b 0x80047410 0x80047410 0x80047410 0x80047410 0 # see tcflush; TIOCFLUSH on BSD
syscon termios TIOCFLUSH 0x540b 0x80047410 0x80047410 0x80047410 0x80047410 0 # see tcflush; TCFLSH on Linux
syscon termios TCIFLUSH 0 1 1 1 1 0 # see tcflush; bsd consensus; faked nt
syscon termios TCOFLUSH 1 2 2 2 2 1 # see tcflush; bsd consensus; faked nt
syscon termios TCIOFLUSH 2 3 3 3 3 2 # see tcflush; bsd consensus; faked nt
syscon termios TCXONC 0x540A 0 0 0 0 0 # see tcflow
syscon termios TIOCSTOP 0x540A 0x2000746f 0x2000746f 0x2000746f 0x2000746f 0 # see tcflow
syscon termios TIOCSTART 0x540A 0x2000746e 0x2000746e 0x2000746e 0x2000746e 0 # see tcflow
syscon termios TCOOFF 0 1 1 1 1 0 # see tcflow; bsd consensus
syscon termios TCOON 1 2 2 2 2 1 # see tcflow; bsd consensus
syscon termios TCIOFF 2 3 3 3 3 2 # see tcflow; bsd consensus
syscon termios TCION 3 4 4 4 4 3 # see tcflow; bsd consensus
syscon termios CSTART 17 17 17 17 17 0 # unix consensus
syscon termios CSTOP 19 19 19 19 19 0 # unix consensus
# Pseudoteletypewriter Control
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon pty TIOCGPTN 0x80045430 0 0x4004740f 0 0 0 # boop
syscon pty TIOCSPTLCK 0x40045431 0 0 0 0 0 # boop
syscon pty TIOCPKT 0x5420 0x80047470 0x80047470 0x80047470 0x80047470 -1 # boop
syscon pty TIOCPKT_DATA 0 0 0 0 0 0 # consensus
syscon pty TIOCPKT_FLUSHREAD 1 1 1 1 1 1 # unix consensus
syscon pty TIOCPKT_FLUSHWRITE 2 2 2 2 2 2 # unix consensus
syscon pty TIOCPKT_STOP 4 4 4 4 4 4 # unix consensus
syscon pty TIOCPKT_START 8 8 8 8 8 8 # unix consensus
syscon pty TIOCPKT_NOSTOP 16 16 16 16 16 16 # unix consensus
syscon pty TIOCPKT_DOSTOP 32 32 32 32 32 32 # unix consensus
syscon pty TIOCPKT_IOCTL 64 64 64 64 64 64 # unix consensus
syscon pty PTMGET 0 0 0 0x40287401 0x40287401 -1 # for /dev/ptm
# Modem Control
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon modem TIOCMGET 0x5415 0x4004746a 0x4004746a 0x4004746a 0x4004746a -1 # get status of modem bits; ioctl(fd, TIOCMGET, int *argp)
syscon modem TIOCMSET 0x5418 0x8004746d 0x8004746d 0x8004746d 0x8004746d -1 # set status of modem bits; ioctl(fd, TIOCMSET, const int *argp)
syscon modem TIOCMBIC 0x5417 0x8004746b 0x8004746b 0x8004746b 0x8004746b -1 # clear indicated modem bits; ioctl(fd, TIOCMBIC, int *argp)
syscon modem TIOCMBIS 0x5416 0x8004746c 0x8004746c 0x8004746c 0x8004746c -1 # set indicated modem bits; ioctl(fd, TIOCMBIS, int *argp)
syscon modem TIOCM_LE 0b0000000000000001 0b0000000000000001 0b0000000000000001 0b0000000000000001 0b0000000000000001 0b0000000000000001 # consensus
syscon modem TIOCM_DTR 0b0000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000000010 0b0000000000000010 # consensus
syscon modem TIOCM_RTS 0b0000000000000100 0b0000000000000100 0b0000000000000100 0b0000000000000100 0b0000000000000100 0b0000000000000100 # consensus
syscon modem TIOCM_ST 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 0b0000000000001000 # consensus
syscon modem TIOCM_SR 0b0000000000010000 0b0000000000010000 0b0000000000010000 0b0000000000010000 0b0000000000010000 0b0000000000010000 # consensus
syscon modem TIOCM_CTS 0b0000000000100000 0b0000000000100000 0b0000000000100000 0b0000000000100000 0b0000000000100000 0b0000000000100000 # consensus
syscon modem TIOCM_CAR 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 # consensus
syscon modem TIOCM_CD 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 0b0000000001000000 # boop
syscon modem TIOCM_RI 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 # boop
syscon modem TIOCM_RNG 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 0b0000000010000000 # boop
syscon modem TIOCM_DSR 0b0000000100000000 0b0000000100000000 0b0000000100000000 0b0000000100000000 0b0000000100000000 0b0000000100000000 # consensus
syscon modem TIOCM_DCD 0 0 0x40 0 0 -1 # wut
syscon modem TIOCMODG 0 0x40047403 0 0x4004746a 0x4004746a -1 # wut
syscon modem TIOCMODS 0 0x80047404 0 0x8004746d 0x8004746d -1 # wut
syscon modem TIOCMSDTRWAIT 0 0x8004745b 0x8004745b 0 0 -1 # wut
# ioctl(SIOCGIFFLAGS) Network Interface Flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon iff IFF_UP 1 1 1 1 1 1 # unix consensus
syscon iff IFF_BROADCAST 2 2 2 2 2 2 # valid broadcast address set; consensus
syscon iff IFF_DEBUG 4 4 4 4 4 4 # faked nt; consensus
syscon iff IFF_LOOPBACK 8 8 8 8 8 4 # is loopback device; consensus
syscon iff IFF_MULTICAST 0x1000 0x8000 0x8000 0x8000 0x8000 0x1000 # supports multicast; faked nt; bsd consensus
syscon iff IFF_ALLMULTI 0x0200 0x0200 0x0200 0x0200 0x0200 0x0200 # receive all multicast packets; faked nt; unix consensus
syscon iff IFF_NOARP 0x80 0x80 0x80 0x80 0x80 0x80 # faked nt as linux; unix consensus
syscon iff IFF_POINTOPOINT 0x10 0x10 0x10 0x10 0x10 0x10 # point-to-point; faked nt as linux; unix consensus
syscon iff IFF_PROMISC 0x100 0x100 0x100 0x100 0x100 0 # in packet capture mode; unix consensus
syscon iff IFF_RUNNING 0x40 0x40 0x40 0x40 0x40 0 # unix consensus
syscon iff IFF_NOTRAILERS 0x20 0x20 0 0 0 0
syscon iff IFF_AUTOMEDIA 0x4000 0 0 0 0 0
syscon iff IFF_DYNAMIC 0x8000 0 0 0 0 0
syscon iff IFF_MASTER 0x0400 0 0 0 0 0
syscon iff IFF_PORTSEL 0x2000 0 0 0 0 0
syscon iff IFF_SLAVE 0x0800 0 0 0 0 0
syscon sock SOCK_STREAM 1 1 1 1 1 1 # consensus
syscon sock SOCK_DGRAM 2 2 2 2 2 2 # consensus
syscon sock SOCK_RAW 3 3 3 3 3 3 # consensus
syscon sock SOCK_RDM 4 4 4 4 4 4 # consensus
syscon sock SOCK_SEQPACKET 5 5 5 5 5 5 # consensus
syscon sock SOCK_CLOEXEC 0x080000 0x080000 0x10000000 0x8000 0x10000000 0x00080000 # faked xnu & faked nt to be some as O_CLOEXEC
syscon sock SOCK_NONBLOCK 0x0800 0x0800 0x20000000 0x4000 0x20000000 0x00000800 # faked xnu & faked nt to be same as O_NONBLOC and socket() will ioctl(FIONBIO=1)
syscon sock SOCK_DCCP 6 0 0 0 0 0 # what is it?
syscon sock SOCK_PACKET 10 0 0 0 0 0 # what is it?
syscon shm SHM_R 0x0100 0x0100 0x0100 0x0100 0x0100 0 # unix consensus
syscon shm SHM_RDONLY 0x1000 0x1000 0x1000 0x1000 0x1000 0 # unix consensus
syscon shm SHM_RND 0x2000 0x2000 0x2000 0x2000 0x2000 0 # unix consensus
syscon shm SHM_W 0x80 0x80 0x80 0x80 0x80 0 # unix consensus
syscon shm SHM_LOCK 11 0 11 3 3 0
syscon shm SHM_UNLOCK 12 0 12 4 4 0
syscon shm SHM_INFO 14 0 14 0 0 0
syscon shm SHM_STAT 13 0 13 0 0 0
syscon shm SHM_DEST 0x0200 0 0 0 0 0
syscon shm SHM_EXEC 0x8000 0 0 0 0 0
syscon shm SHM_HUGETLB 0x0800 0 0 0 0 0
syscon shm SHM_LOCKED 0x0400 0 0 0 0 0
syscon shm SHM_NORESERVE 0x1000 0 0 0 0 0
syscon shm SHM_REMAP 0x4000 0 0 0 0 0
syscon lock LOCK_UNLOCK_CACHE 54 0 0 0 0 0 # wut
syscon misc IP6F_MORE_FRAG 0x0100 0x0100 0x0100 0x0100 0x0100 0x0100 # consensus
syscon misc IP6F_OFF_MASK 0xf8ff 0xf8ff 0xf8ff 0xf8ff 0xf8ff 0xf8ff # consensus
syscon misc IP6F_RESERVED_MASK 0x0600 0x0600 0x0600 0x0600 0x0600 0x0600 # consensus
syscon misc NO_SENSE 0 0 0 0 0 0 # consensus
syscon misc NO_ADDRESS 4 4 4 4 4 0x2afc # unix consensus
syscon misc L_SET 0 0 0 0 0 0 # consensus
syscon misc L_INCR 1 1 1 1 1 0 # unix consensus
syscon misc L_XTND 2 2 2 2 2 0 # unix consensus
syscon misc SHUT_RD 0 0 0 0 0 0 # consensus (SD_RECEIVE)
syscon misc SHUT_WR 1 1 1 1 1 1 # consensus (SD_SEND)
syscon misc SHUT_RDWR 2 2 2 2 2 2 # consensus (SD_BOTH)
syscon misc Q_QUOTAOFF 0x800003 0x0200 0x0200 0x0200 0x0200 0 # bsd consensus
syscon misc Q_QUOTAON 0x800002 0x0100 0x0100 0x0100 0x0100 0 # bsd consensus
syscon misc Q_SYNC 0x800001 0x0600 0x0600 0x0600 0x0600 0 # bsd consensus
syscon misc Q_GETQUOTA 0x800007 768 0x0700 768 768 0
syscon misc Q_SETQUOTA 0x800008 0x0400 0x0800 0x0400 0x0400 0
syscon misc Q_GETFMT 0x800004 0 0 0 0 0
syscon misc Q_GETINFO 0x800005 0 0 0 0 0
syscon misc Q_SETINFO 0x800006 0 0 0 0 0
syscon misc RPM_PCO_ADD 1 1 1 1 1 0 # unix consensus
syscon misc RPM_PCO_CHANGE 2 2 2 2 2 0 # unix consensus
syscon misc RPM_PCO_SETGLOBAL 3 3 3 3 3 0 # unix consensus
syscon misc FSETLOCKING_QUERY 0 0 0 0 0 0 # consensus
syscon misc FSETLOCKING_BYCALLER 2 0 0 0 0 0
syscon misc FSETLOCKING_INTERNAL 1 0 0 0 0 0
syscon misc MAX_DQ_TIME 0x093a80 0x093a80 0x093a80 0x093a80 0x093a80 0 # unix consensus
syscon misc MAX_IQ_TIME 0x093a80 0x093a80 0x093a80 0x093a80 0x093a80 0 # unix consensus
syscon misc MAX_HANDLE_SZ 0x80 0 0 0 0 0
syscon mlock MCL_CURRENT 1 1 1 1 1 0 # unix consensus
syscon mlock MCL_FUTURE 2 2 2 2 2 0 # unix consensus
syscon mlock MCL_ONFAULT 4 0 0 0 0 0
syscon misc MLD_LISTENER_QUERY 130 130 130 130 130 0 # unix consensus
syscon misc MLD_LISTENER_REPORT 131 131 131 131 131 0 # unix consensus
syscon misc MLD_LISTENER_REDUCTION 132 132 132 0 0 0
syscon misc TTYDEF_CFLAG 0x05a0 0x4b00 0x4b00 0x4b00 0x4b00 0 # bsd consensus
syscon misc TTYDEF_IFLAG 0x2d22 0x2b02 0x2b02 0x2b02 0x2b02 0 # bsd consensus
syscon misc TTYDEF_LFLAG 0x8a1b 0x05cb 0x05cb 0x05cb 0x05cb 0 # bsd consensus
syscon misc TTYDEF_SPEED 13 0x2580 0x2580 0x2580 0x2580 0 # bsd consensus
syscon misc TTYDEF_OFLAG 0x1805 3 3 7 7 0
syscon misc ACCT_BYTEORDER 0 0 0 0 0 0 # consensus
syscon misc ACCT_COMM 0x10 0 0 0 0 0
syscon misc COMMAND_COMPLETE 0 0 0 0 0 0 # consensus
syscon misc COMMAND_TERMINATED 17 0 0 0 0 0
syscon select FD_SETSIZE 0x0400 0x0400 0x0400 0x0400 0x0400 0x0400 # forced consensus (0x40 on NT)
syscon misc MATH_ERREXCEPT 2 2 2 2 2 0 # unix consensus
syscon misc MATH_ERRNO 1 1 1 1 1 0 # unix consensus
syscon misc MCAST_BLOCK_SOURCE 43 84 84 0 0 43
syscon misc MCAST_JOIN_GROUP 42 80 80 0 0 41
syscon misc MCAST_JOIN_SOURCE_GROUP 46 82 82 0 0 45
syscon misc MCAST_LEAVE_GROUP 45 81 81 0 0 42
syscon misc MCAST_LEAVE_SOURCE_GROUP 47 83 83 0 0 46
syscon misc MCAST_UNBLOCK_SOURCE 44 85 85 0 0 44
syscon misc MCAST_INCLUDE 1 1 1 0 0 0
syscon misc MCAST_EXCLUDE 0 2 2 0 0 0
syscon misc MCAST_MSFILTER 48 0 0 0 0 0
syscon misc AREGTYPE 0 0 0 0 0 0 # consensus
syscon misc CTIME 0 0 0 0 0 0 # consensus
syscon misc EFD_CLOEXEC 0x080000 0 0 0 0 0
syscon misc EFD_NONBLOCK 0x0800 0 0 0 0 0
syscon misc EFD_SEMAPHORE 1 0 0 0 0 0
syscon misc SYNC_FILE_RANGE_WAIT_AFTER 4 0 0 0 0 0
syscon misc SYNC_FILE_RANGE_WAIT_BEFORE 1 0 0 0 0 0
syscon misc SYNC_FILE_RANGE_WRITE 2 0 0 0 0 0
syscon misc TEST_UNIT_READY 0 0 0 0 0 0
syscon misc TFD_CLOEXEC 0x080000 0 0 0 0 0
syscon misc TFD_NONBLOCK 0x0800 0 0 0 0 0
syscon misc TFD_TIMER_ABSTIME 1 0 0 0 0 0
syscon misc USRQUOTA 0 0 0 0 0 0
syscon misc HOST_NAME_MAX 0x40 0 0 255 255 0
syscon misc UDP_ENCAP_ESPINUDP_NON_IKE 1 0 1 0 0 0
syscon misc UDP_NO_CHECK6_RX 102 0 0 0 0 0
syscon misc UDP_NO_CHECK6_TX 101 0 0 0 0 0
syscon misc ACK 4 4 4 4 4 0 # unix consensus
syscon misc CDISCARD 15 15 15 15 15 0 # unix consensus
syscon misc CEOT 4 4 4 4 4 0 # unix consensus
syscon misc CERASE 127 127 127 127 127 0 # unix consensus
syscon misc CHRTYPE 51 51 51 51 51 0 # unix consensus
syscon misc CKILL 21 21 21 21 21 0 # unix consensus
syscon misc CLNEXT 22 22 22 22 22 0 # unix consensus
syscon misc CMIN 1 1 1 1 1 0 # unix consensus
syscon misc COMPLETE 2 2 2 2 2 0 # unix consensus
syscon misc CONTINUE 3 3 3 3 3 0 # unix consensus
syscon misc CONTTYPE 55 55 55 55 55 0 # unix consensus
syscon misc COPY_ABORTED 10 0 0 0 0 0
syscon misc COPY_VERIFY 58 0 0 0 0 0
syscon misc CQUIT 28 28 28 28 28 0 # unix consensus
syscon misc CREPRINT 18 18 18 18 18 0 # unix consensus
syscon misc CRPRNT 18 18 18 18 18 0 # unix consensus
syscon misc DATA 3 3 3 3 3 0 # unix consensus
syscon misc DEV_BSIZE 0x0200 0x0200 0x0200 0x0200 0x0200 0 # unix consensus
syscon misc DIRTYPE 53 53 53 53 53 0 # unix consensus
syscon misc ELF_NGREG 27 0 0 0 0 0
syscon misc ELF_PRARGSZ 80 0 0 0 0 0
syscon misc EM_ALTERA_NIOS2 113 0 0 0 0 0
syscon misc EM_LATTICEMICO32 138 0 0 0 0 0
syscon misc EXPR_NEST_MAX 0x20 0x20 0x20 0x20 0x20 0 # unix consensus
# linux fallocate() flags
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon misc FALLOC_FL_KEEP_SIZE 0x01 -1 -1 -1 -1 -1 # bsd consensus
syscon misc FALLOC_FL_PUNCH_HOLE 0x02 -1 -1 -1 -1 -1 # bsd consensus
syscon misc FALLOC_FL_NO_HIDE_STALE 0x04 -1 -1 -1 -1 -1 # bsd consensus
syscon misc FALLOC_FL_COLLAPSE_RANGE 0x08 -1 -1 -1 -1 -1 # bsd consensus
syscon misc FALLOC_FL_ZERO_RANGE 0x10 -1 -1 -1 -1 0x000980C8 # bsd consensus & kNtFsctlSetZeroData
syscon misc FALLOC_FL_INSERT_RANGE 0x20 -1 -1 -1 -1 -1 # bsd consensus
syscon misc FALLOC_FL_UNSHARE_RANGE 0x40 -1 -1 -1 -1 -1 # bsd consensus
# System Call Numbers.
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology
syscon nr __NR_exit 0x003c 0x2000169 0x01af 0x012e 0x136 0xfff # __bsdthread_terminate() on XNU, thr_exit() on FreeBSD, __threxit() on OpenBSD, __lwp_exit() on NetBSD
syscon nr __NR_exit_group 0x00e7 0x2000001 0x0001 0x0001 0x001 0xfff
syscon nr __NR_read 0x0000 0x2000003 0x0003 0x0003 0x003 0xfff
syscon nr __NR_write 0x0001 0x2000004 0x0004 0x0004 0x004 0xfff
syscon nr __NR_open 0x0002 0x2000005 0x0005 0x0005 0x005 0xfff
syscon nr __NR_close 0x0003 0x2000006 0x0006 0x0006 0x006 0xfff
syscon nr __NR_stat 0x0004 0x2000152 0xfff 0x0026 0x1b7 0xfff
syscon nr __NR_fstat 0x0005 0x2000153 0x0227 0x0035 0x1b8 0xfff
syscon nr __NR_lstat 0x0006 0x2000154 0x0028 0x0028 0x1b9 0xfff
syscon nr __NR_poll 0x0007 0x20000e6 0x00d1 0x00fc 0x0d1 0xfff
syscon nr __NR_ppoll 0x010f 0xfff 0x0221 0x006d 0xfff 0xfff
syscon nr __NR_lseek 0x0008 0x20000c7 0x01de 0x00c7 0x0c7 0xfff
syscon nr __NR_mmap 0x0009 0x20000c5 0x01dd 0x00c5 0x0c5 0xfff
syscon nr __NR_msync 0x001a 0x2000041 0x0041 0x0100 0x115 0xfff
syscon nr __NR_mprotect 0x000a 0x200004a 0x004a 0x004a 0x04a 0xfff
syscon nr __NR_munmap 0x000b 0x2000049 0x0049 0x0049 0x049 0xfff
syscon nr __NR_sigaction 0x000d 0x200002e 0x01a0 0x002e 0x154 0xfff
syscon nr __NR_sigprocmask 0x000e 0x2000149 0x0154 0x0030 0x125 0xfff
syscon nr __NR_ioctl 0x0010 0x2000036 0x0036 0x0036 0x036 0xfff
syscon nr __NR_pread 0x0011 0x2000099 0x01db 0x00ad 0x0ad 0xfff
syscon nr __NR_pwrite 0x0012 0x200009a 0x01dc 0x00ae 0x0ae 0xfff
syscon nr __NR_readv 0x0013 0x2000078 0x0078 0x0078 0x078 0xfff
syscon nr __NR_writev 0x0014 0x2000079 0x0079 0x0079 0x079 0xfff
syscon nr __NR_access 0x0015 0x2000021 0x0021 0x0021 0x021 0xfff
syscon nr __NR_pipe 0x0016 0x200002a 0x021e 0x0107 0x02a 0xfff
syscon nr __NR_select 0x0017 0x200005d 0x005d 0x0047 0x1a1 0xfff
syscon nr __NR_pselect 0xfff 0x200018a 0x020a 0x006e 0x1b4 0xfff
syscon nr __NR_pselect6 0x010e 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sched_yield 0x0018 0x200005d 0x014b 0x012a 0x15e 0xfff # select() on XNU (previously swtch() but removed in 12.4)
syscon nr __NR_mremap 0x0019 0xfff 0xfff 0xfff 0x19b 0xfff
syscon nr __NR_mincore 0x001b 0x200004e 0x004e 0x004e 0x04e 0xfff
syscon nr __NR_madvise 0x001c 0x200004b 0x004b 0x004b 0x04b 0xfff
syscon nr __NR_shmget 0x001d 0x2000109 0x00e7 0x0121 0x0e7 0xfff
syscon nr __NR_shmat 0x001e 0x2000106 0x00e4 0x00e4 0x0e4 0xfff
syscon nr __NR_shmctl 0x001f 0x2000107 0x0200 0x0128 0x1bb 0xfff
syscon nr __NR_dup 0x0020 0x2000029 0x0029 0x0029 0x029 0xfff
syscon nr __NR_dup2 0x0021 0x200005a 0x005a 0x005a 0x05a 0xfff
syscon nr __NR_pause 0x0022 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_nanosleep 0x0023 0xfff 0x00f0 0x005b 0x1ae 0xfff
syscon nr __NR_getitimer 0x0024 0x2000056 0x0056 0x0046 0x1aa 0xfff
syscon nr __NR_setitimer 0x0026 0x2000053 0x0053 0x0045 0x1a9 0xfff
syscon nr __NR_alarm 0x0025 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_getpid 0x0027 0x2000014 0x0014 0x0014 0x014 0xfff
syscon nr __NR_sendfile 0x0028 0x2000151 0x0189 0xfff 0xfff 0xfff
syscon nr __NR_socket 0x0029 0x2000061 0x0061 0x0061 0x18a 0xfff
syscon nr __NR_connect 0x002a 0x2000062 0x0062 0x0062 0x062 0xfff
syscon nr __NR_accept 0x002b 0x200001e 0x0063 0x001e 0x01e 0xfff
syscon nr __NR_sendto 0x002c 0x2000085 0x0085 0x0085 0x085 0xfff
syscon nr __NR_recvfrom 0x002d 0x200001d 0x001d 0x001d 0x01d 0xfff
syscon nr __NR_sendmsg 0x002e 0x200001c 0x001c 0x001c 0x01c 0xfff
syscon nr __NR_recvmsg 0x002f 0x200001b 0x001b 0x001b 0x01b 0xfff
syscon nr __NR_shutdown 0x0030 0x2000086 0x0086 0x0086 0x086 0xfff
syscon nr __NR_bind 0x0031 0x2000068 0x0068 0x0068 0x068 0xfff
syscon nr __NR_listen 0x0032 0x200006a 0x006a 0x006a 0x06a 0xfff
syscon nr __NR_getsockname 0x0033 0x2000020 0x0020 0x0020 0x020 0xfff
syscon nr __NR_getpeername 0x0034 0x200001f 0x008d 0x001f 0x01f 0xfff
syscon nr __NR_socketpair 0x0035 0x2000087 0x0087 0x0087 0x087 0xfff
syscon nr __NR_setsockopt 0x0036 0x2000069 0x0069 0x0069 0x069 0xfff
syscon nr __NR_getsockopt 0x0037 0x2000076 0x0076 0x0076 0x076 0xfff
syscon nr __NR_fork 0x0039 0x2000002 0x0002 0x0002 0x002 0xfff
syscon nr __NR_vfork 0x003a 0x2000042 0x0042 0x0042 0x042 0xfff
syscon nr __NR_posix_spawn 0xfff 0x20000f4 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_execve 0x003b 0x200003b 0x003b 0x003b 0x03b 0xfff # DING DING DING DING DING
syscon nr __NR_wait4 0x003d 0x2000007 0x0007 0x000b 0x1c1 0xfff
syscon nr __NR_kill 0x003e 0x2000025 0x0025 0x007a 0x025 0xfff
syscon nr __NR_killpg 0xfff 0xfff 0x0092 0xfff 0xfff 0xfff
syscon nr __NR_clone 0x0038 0xfff 0xfff 0xfff 0x11f 0xfff
syscon nr __NR_tkill 0x00c8 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_futex 0x00ca 0xfff 0xfff 0x0053 0x0a6 0xfff
syscon nr __NR_set_robust_list 0x0111 0xfff 0xfff 0xfff 0x0a7 0xfff
syscon nr __NR_get_robust_list 0x0112 0xfff 0xfff 0xfff 0x0a8 0xfff
syscon nr __NR_uname 0x003f 0xfff 0x00a4 0xfff 0xfff 0xfff
syscon nr __NR_semget 0x0040 0x20000ff 0x00dd 0x00dd 0x0dd 0xfff
syscon nr __NR_semop 0x0041 0x2000100 0x00de 0x0122 0x0de 0xfff
syscon nr __NR_semctl 0x0042 0x20000fe 0x01fe 0x0127 0xfff 0xfff
syscon nr __NR_shmdt 0x0043 0x2000108 0x00e6 0x00e6 0x0e6 0xfff
syscon nr __NR_msgget 0x0044 0x2000103 0x00e1 0x00e1 0x0e1 0xfff
syscon nr __NR_msgsnd 0x0045 0x2000104 0x00e2 0x00e2 0x0e2 0xfff
syscon nr __NR_msgrcv 0x0046 0x2000105 0x00e3 0x00e3 0x0e3 0xfff
syscon nr __NR_msgctl 0x0047 0x2000102 0x01ff 0x0129 0x1bc 0xfff
syscon nr __NR_fcntl 0x0048 0x200005c 0x005c 0x005c 0x05c 0xfff
syscon nr __NR_flock 0x0049 0x2000083 0x0083 0x0083 0x083 0xfff
syscon nr __NR_fsync 0x004a 0x200005f 0x005f 0x005f 0x05f 0xfff
syscon nr __NR_fdatasync 0x004b 0x20000bb 0x0226 0x005f 0x0f1 0xfff
syscon nr __NR_truncate 0x004c 0x20000c8 0x01df 0x00c8 0x0c8 0xfff
syscon nr __NR_ftruncate 0x004d 0x20000c9 0x01e0 0x00c9 0x0c9 0xfff
syscon nr __NR_getcwd 0x004f 0xfff 0x0146 0x0130 0x128 0xfff
syscon nr __NR_chdir 0x0050 0x200000c 0x000c 0x000c 0x00c 0xfff
syscon nr __NR_fchdir 0x0051 0x200000d 0x000d 0x000d 0x00d 0xfff
syscon nr __NR_rename 0x0052 0x2000080 0x0080 0x0080 0x080 0xfff
syscon nr __NR_mkdir 0x0053 0x2000088 0x0088 0x0088 0x088 0xfff
syscon nr __NR_rmdir 0x0054 0x2000089 0x0089 0x0089 0x089 0xfff
syscon nr __NR_creat 0x0055 0xfff 0x0008 0xfff 0x008 0xfff
syscon nr __NR_link 0x0056 0x2000009 0x0009 0x0009 0x009 0xfff
syscon nr __NR_unlink 0x0057 0x200000a 0x000a 0x000a 0x00a 0xfff
syscon nr __NR_symlink 0x0058 0x2000039 0x0039 0x0039 0x039 0xfff
syscon nr __NR_readlink 0x0059 0x200003a 0x003a 0x003a 0x03a 0xfff
syscon nr __NR_chmod 0x005a 0x200000f 0x000f 0x000f 0x00f 0xfff
syscon nr __NR_fchmod 0x005b 0x200007c 0x007c 0x007c 0x07c 0xfff
syscon nr __NR_chown 0x005c 0x2000010 0x0010 0x0010 0x010 0xfff
syscon nr __NR_fchown 0x005d 0x200007b 0x007b 0x007b 0x07b 0xfff
syscon nr __NR_lchown 0x005e 0x200016c 0x00fe 0x00fe 0x113 0xfff
syscon nr __NR_umask 0x005f 0x200003c 0x003c 0x003c 0x03c 0xfff
syscon nr __NR_gettimeofday 0x0060 0x2000074 0x0074 0x0043 0x1a2 0xfff
syscon nr __NR_getrlimit 0x0061 0x20000c2 0x00c2 0x00c2 0x0c2 0xfff
syscon nr __NR_getrusage 0x0062 0x2000075 0x0075 0x0013 0x1bd 0xfff
syscon nr __NR_sysinfo 0x0063 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_times 0x0064 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_ptrace 0x0065 0x200001a 0x001a 0x001a 0x01a 0xfff
syscon nr __NR_syslog 0x0067 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_getuid 0x0066 0x2000018 0x0018 0x0018 0x018 0xfff
syscon nr __NR_getgid 0x0068 0x200002f 0x002f 0x002f 0x02f 0xfff
syscon nr __NR_getppid 0x006e 0x2000027 0x0027 0x0027 0xfff 0xfff
syscon nr __NR_getpgrp 0x006f 0x2000051 0x0051 0x0051 0x051 0xfff
syscon nr __NR_setsid 0x0070 0x2000093 0x0093 0x0093 0x093 0xfff
syscon nr __NR_getsid 0x007c 0x2000136 0x0136 0x00ff 0x11e 0xfff
syscon nr __NR_getpgid 0x0079 0x2000097 0x00cf 0x00cf 0x0cf 0xfff
syscon nr __NR_setpgid 0x006d 0x2000052 0x0052 0x0052 0x052 0xfff
syscon nr __NR_geteuid 0x006b 0x2000019 0x0019 0x0019 0xfff 0xfff
syscon nr __NR_getegid 0x006c 0x200002b 0x002b 0x002b 0xfff 0xfff
syscon nr __NR_getgroups 0x0073 0x200004f 0x004f 0x004f 0x04f 0xfff
syscon nr __NR_setgroups 0x0074 0x2000050 0x0050 0x0050 0x050 0xfff
syscon nr __NR_setreuid 0x0071 0x200007e 0x007e 0x007e 0x07e 0xfff
syscon nr __NR_setregid 0x0072 0x200007f 0x007f 0x007f 0x07f 0xfff
syscon nr __NR_setuid 0x0069 0x2000017 0x0017 0x0017 0x017 0xfff
syscon nr __NR_setgid 0x006a 0x20000b5 0x00b5 0x00b5 0x0b5 0xfff
syscon nr __NR_setresuid 0x0075 0xfff 0x0137 0x011a 0xfff 0xfff
syscon nr __NR_setresgid 0x0077 0xfff 0x0138 0x011c 0xfff 0xfff
syscon nr __NR_getresuid 0x0076 0xfff 0x0168 0x0119 0xfff 0xfff
syscon nr __NR_getresgid 0x0078 0xfff 0x0169 0x011b 0xfff 0xfff
syscon nr __NR_sigpending 0x007f 0x2000034 0x0034 0x0034 0x124 0xfff
syscon nr __NR_sigsuspend 0x0082 0x200006f 0x0155 0x006f 0x126 0xfff
syscon nr __NR_sigaltstack 0x0083 0x2000035 0x0035 0x0120 0x119 0xfff
syscon nr __NR_mknod 0x0085 0x200000e 0x000e 0x000e 0x1c2 0xfff
syscon nr __NR_mknodat 0x0103 0xfff 0x22ff 0x0140 0x1cc 0xfff
syscon nr __NR_mkfifo 0xfff 0x2000084 0x0084 0x0084 0x084 0xfff
syscon nr __NR_mkfifoat 0xfff 0xfff 0x01f1 0x013f 0x1cb 0xfff
syscon nr __NR_statfs 0x0089 0x2000159 0x022b 0x003f 0xfff 0xfff
syscon nr __NR_fstatfs 0x008a 0x200015a 0x022c 0x0040 0xfff 0xfff
syscon nr __NR_getpriority 0x008c 0x2000064 0x0064 0x0064 0x064 0xfff
syscon nr __NR_setpriority 0x008d 0x2000060 0x0060 0x0060 0x060 0xfff
syscon nr __NR_mlock 0x0095 0x20000cb 0x00cb 0x00cb 0x0cb 0xfff
syscon nr __NR_munlock 0x0096 0x20000cc 0x00cc 0x00cc 0x0cc 0xfff
syscon nr __NR_mlockall 0x0097 0x2000144 0x0144 0x010f 0x0f2 0xfff
syscon nr __NR_munlockall 0x0098 0x2000145 0x0145 0x0110 0x0f3 0xfff
syscon nr __NR_setrlimit 0x00a0 0x20000c3 0x00c3 0x00c3 0x0c3 0xfff
syscon nr __NR_chroot 0x00a1 0x200003d 0x003d 0x003d 0x03d 0xfff
syscon nr __NR_sync 0x00a2 0x2000024 0x0024 0x0024 0x024 0xfff
syscon nr __NR_acct 0x00a3 0x2000033 0x0033 0x0033 0x033 0xfff
syscon nr __NR_settimeofday 0x00a4 0x200007a 0x007a 0x0044 0x1a3 0xfff
syscon nr __NR_mount 0x00a5 0x20000a7 0x0015 0x0015 0x19a 0xfff
syscon nr __NR_reboot 0x00a9 0x2000037 0x0037 0x0037 0x0d0 0xfff
syscon nr __NR_quotactl 0x00b3 0x20000a5 0x0094 0x0094 0xfff 0xfff
syscon nr __NR_setfsuid 0x007a 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_setfsgid 0x007b 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_capget 0x007d 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_capset 0x007e 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sigtimedwait 0x0080 0xfff 0x0159 0xfff 0xfff 0xfff
syscon nr __NR_rt_sigqueueinfo 0x0081 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_personality 0x0087 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_ustat 0x0088 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sysfs 0x008b 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sched_setparam 0x008e 0xfff 0x0147 0xfff 0xfff 0xfff
syscon nr __NR_sched_getparam 0x008f 0xfff 0x0148 0xfff 0xfff 0xfff
syscon nr __NR_sched_setscheduler 0x0090 0xfff 0x0149 0xfff 0xfff 0xfff
syscon nr __NR_sched_getscheduler 0x0091 0xfff 0x014a 0xfff 0xfff 0xfff
syscon nr __NR_sched_get_priority_max 0x0092 0xfff 0x014c 0xfff 0xfff 0xfff
syscon nr __NR_sched_get_priority_min 0x0093 0xfff 0x014d 0xfff 0xfff 0xfff
syscon nr __NR_sched_rr_get_interval 0x0094 0xfff 0x014e 0xfff 0xfff 0xfff
syscon nr __NR_vhangup 0x0099 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_modify_ldt 0x009a 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_pivot_root 0x009b 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR__sysctl 0x009c 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_prctl 0x009d 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_arch_prctl 0x009e 0x3000003 0x00a5 0x149 0x13d 0xfff # sysarch on freebsd, _lwp_setprivate on netbsd, __set_tcb on openbsd, thread_fast_set_cthread_self on xnu
syscon nr __NR_adjtimex 0x009f 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_umount2 0x00a6 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_swapon 0x00a7 0x2000055 0x0055 0xfff 0xfff 0xfff
syscon nr __NR_swapoff 0x00a8 0xfff 0x01a8 0xfff 0xfff 0xfff
syscon nr __NR_sethostname 0x00aa 0xfff 0x0058 0xfff 0xfff 0xfff
syscon nr __NR_setdomainname 0x00ab 0xfff 0x00a3 0xfff 0xfff 0xfff
syscon nr __NR_iopl 0x00ac 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_ioperm 0x00ad 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_init_module 0x00af 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_delete_module 0x00b0 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_gettid 0x00ba 0x0100001b 432 299 311 0xfff # TODO(jart): thread_self_trap vs. gettid?
syscon nr __NR_readahead 0x00bb 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_setxattr 0x00bc 0x20000ec 0xfff 0xfff 0x177 0xfff
syscon nr __NR_fsetxattr 0x00be 0x20000ed 0xfff 0xfff 0x179 0xfff
syscon nr __NR_getxattr 0x00bf 0x20000ea 0xfff 0xfff 0x17a 0xfff
syscon nr __NR_fgetxattr 0x00c1 0x20000eb 0xfff 0xfff 0x17c 0xfff
syscon nr __NR_listxattr 0x00c2 0x20000f0 0xfff 0xfff 0x17d 0xfff
syscon nr __NR_flistxattr 0x00c4 0x20000f1 0xfff 0xfff 0x17f 0xfff
syscon nr __NR_removexattr 0x00c5 0x20000ee 0xfff 0xfff 0x180 0xfff
syscon nr __NR_fremovexattr 0x00c7 0x20000ef 0xfff 0xfff 0x182 0xfff
syscon nr __NR_lsetxattr 0x00bd 0xfff 0xfff 0xfff 0x178 0xfff
syscon nr __NR_lgetxattr 0x00c0 0xfff 0xfff 0xfff 0x17b 0xfff
syscon nr __NR_llistxattr 0x00c3 0xfff 0xfff 0xfff 0x17e 0xfff
syscon nr __NR_lremovexattr 0x00c6 0xfff 0xfff 0xfff 0x181 0xfff
syscon nr __NR_sched_setaffinity 0x00cb 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sched_getaffinity 0x00cc 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_cpuset_getaffinity 0xfff 0xfff 0x01e7 0xfff 0xfff 0xfff
syscon nr __NR_cpuset_setaffinity 0xfff 0xfff 0x01e8 0xfff 0xfff 0xfff
syscon nr __NR_io_setup 0x00ce 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_io_destroy 0x00cf 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_io_getevents 0x00d0 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_io_submit 0x00d1 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_io_cancel 0x00d2 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_lookup_dcookie 0x00d4 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_epoll_create 0x00d5 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_epoll_wait 0x00e8 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_epoll_ctl 0x00e9 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_getdents 0x00d9 0xfff 0x0110 0x0063 0x186 0xfff
syscon nr __NR_set_tid_address 0x00da 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_restart_syscall 0x00db 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_semtimedop 0x00dc 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_fadvise 0x00dd 0xfff 0x0213 0xfff 0xfff 0xfff
syscon nr __NR_timer_create 0x00de 0xfff 0xfff 0xfff 0x0eb 0xfff
syscon nr __NR_timer_settime 0x00df 0xfff 0xfff 0xfff 0x1be 0xfff
syscon nr __NR_timer_gettime 0x00e0 0xfff 0xfff 0xfff 0x1bf 0xfff
syscon nr __NR_timer_getoverrun 0x00e1 0xfff 0xfff 0xfff 0x0ef 0xfff
syscon nr __NR_timer_delete 0x00e2 0xfff 0xfff 0xfff 0x0ec 0xfff
syscon nr __NR_clock_settime 0x00e3 0xfff 0x00e9 0x0058 0x1ac 0xfff
syscon nr __NR_clock_gettime 0x00e4 0xfff 0x00e8 0x0057 0x1ab 0xfff
syscon nr __NR_clock_getres 0x00e5 0xfff 0x00ea 0x0059 0x1ad 0xfff
syscon nr __NR_clock_nanosleep 0x00e6 0xfff 0x00f4 0xfff 0x1dd 0xfff
syscon nr __NR_tgkill 0x00ea 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_mbind 0x00ed 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_set_mempolicy 0x00ee 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_get_mempolicy 0x00ef 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_mq_open 0x00f0 0xfff 0xfff 0xfff 0x101 0xfff
syscon nr __NR_mq_unlink 0x00f1 0xfff 0xfff 0xfff 0x103 0xfff
syscon nr __NR_mq_timedsend 0x00f2 0xfff 0xfff 0xfff 0x1b0 0xfff
syscon nr __NR_mq_timedreceive 0x00f3 0xfff 0xfff 0xfff 0x1b1 0xfff
syscon nr __NR_mq_notify 0x00f4 0xfff 0xfff 0xfff 0x106 0xfff
syscon nr __NR_mq_getsetattr 0x00f5 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_kexec_load 0x00f6 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_waitid 0x00f7 0x20000ad 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_add_key 0x00f8 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_request_key 0x00f9 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_keyctl 0x00fa 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_ioprio_set 0x00fb 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_ioprio_get 0x00fc 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_inotify_init 0x00fd 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_inotify_add_watch 0x00fe 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_inotify_rm_watch 0x00ff 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_openat 0x0101 0x20001cf 0x01f3 0x0141 0x1d4 0xfff
syscon nr __NR_mkdirat 0x0102 0x20001db 0x01f0 0x013e 0x1cd 0xfff
syscon nr __NR_fchownat 0x0104 0x20001d4 0x01eb 0x013b 0x1d0 0xfff
syscon nr __NR_utime 0x0084 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_utimes 0x00eb 0x200008a 0x008a 0x004c 0x1a4 0xfff
syscon nr __NR_futimesat 0x0105 0xfff 0x01ee 0xfff 0xfff 0xfff
syscon nr __NR_futimes 0xfff 0x200008b 0x00ce 0x004d 0x1a7 0xfff
syscon nr __NR_futimens 0xfff 0xfff 0x0222 0x0055 0x1d8 0xfff
syscon nr __NR_fstatat 0x0106 0x20001d6 0x0228 0x002a 0x1d2 0xfff
syscon nr __NR_unlinkat 0x0107 0x20001d8 0x01f7 0x0145 0x1d7 0xfff
syscon nr __NR_renameat 0x0108 0x20001d1 0x01f5 0x0143 0x1ca 0xfff
syscon nr __NR_linkat 0x0109 0x20001d7 0x01ef 0x013d 0x1c9 0xfff
syscon nr __NR_symlinkat 0x010a 0x20001da 0x01f6 0x0144 0x1d6 0xfff
syscon nr __NR_readlinkat 0x010b 0x20001d9 0x01f4 0x0142 0x1d5 0xfff
syscon nr __NR_fchmodat 0x010c 0x20001d3 0x01ea 0x013a 0x1cf 0xfff
syscon nr __NR_faccessat 0x010d 0x20001d2 0x01e9 0x0139 0x1ce 0xfff
syscon nr __NR_unshare 0x0110 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_splice 0x0113 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_tee 0x0114 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sync_file_range 0x0115 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_vmsplice 0x0116 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_migrate_pages 0x0100 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_move_pages 0x0117 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_preadv 0x0127 0xfff 0x0121 0x010b 0x121 0xfff
syscon nr __NR_pwritev 0x0128 0xfff 0x0122 0x010c 0x122 0xfff
syscon nr __NR_utimensat 0x0118 0xfff 0x0223 0x0054 0x1d3 0xfff
syscon nr __NR_fallocate 0x011d 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_posix_fallocate 0xfff 0xfff 0x0212 0xfff 0x1df 0xfff
syscon nr __NR_accept4 0x0120 0xfff 0x021d 0x005d 0xfff 0xfff
syscon nr __NR_dup3 0x0124 0xfff 0xfff 0x0066 0x1c6 0xfff
syscon nr __NR_pipe2 0x0125 0xfff 0x021e 0x0065 0x1c5 0xfff
syscon nr __NR_epoll_pwait 0x0119 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_epoll_create1 0x0123 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_perf_event_open 0x012a 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_inotify_init1 0x0126 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_rt_tgsigqueueinfo 0x0129 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_signalfd 0x011a 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_signalfd4 0x0121 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_eventfd 0x011c 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_eventfd2 0x0122 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_timerfd_create 0x011b 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_timerfd_settime 0x011e 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_timerfd_gettime 0x011f 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_recvmmsg 0x012b 0xfff 0xfff 0xfff 0x1db 0xfff
syscon nr __NR_fanotify_init 0x012c 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_fanotify_mark 0x012d 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_prlimit 0x012e 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_name_to_handle_at 0x012f 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_open_by_handle_at 0x0130 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_clock_adjtime 0x0131 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_syncfs 0x0132 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sendmmsg 0x0133 0xfff 0xfff 0xfff 0x1dc 0xfff
syscon nr __NR_setns 0x0134 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_getcpu 0x0135 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_process_vm_readv 0x0136 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_process_vm_writev 0x0137 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_kcmp 0x0138 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_finit_module 0x0139 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sched_setattr 0x013a 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_sched_getattr 0x013b 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_renameat2 0x013c 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_seccomp 0x013d 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_getrandom 0x013e 0x20001f4 0x0233 0x0007 0x05b 0xfff
syscon nr __NR_memfd_create 0x013f 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_kexec_file_load 0x0140 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_bpf 0x0141 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_execveat 0x0142 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_userfaultfd 0x0143 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_membarrier 0x0144 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_mlock2 0x0145 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_copy_file_range 0x0146 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_preadv2 0x0147 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_pwritev2 0x0148 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_pkey_mprotect 0x0149 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_pkey_alloc 0x014a 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_pkey_free 0x014b 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_statx 0x014c 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_io_pgetevents 0x014d 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_rseq 0x014e 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_pidfd_send_signal 0x01a8 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_io_uring_setup 0x01a9 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_io_uring_enter 0x01aa 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_io_uring_register 0x01ab 0xfff 0xfff 0xfff 0xfff 0xfff
syscon nr __NR_pledge 0xfff 0xfff 0xfff 0x006c 0xfff 0xfff
syscon nr __NR_msyscall 0xfff 0xfff 0xfff 0x0025 0xfff 0xfff
syscon nr __NR_ktrace 0xfff 0xfff 0x002d 0x002d 0x02d 0xfff
# unilateral undocumented errnos
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon junkerr ECHRNG 44 0 0 0 0 0
syscon junkerr EL2NSYNC 45 0 0 0 0 0
syscon junkerr EL3HLT 46 0 0 0 0 0
syscon junkerr EL3RST 47 0 0 0 0 0
syscon junkerr ELNRNG 48 0 0 0 0 0
syscon junkerr EUNATCH 49 0 0 0 0 0
syscon junkerr ENOCSI 50 0 0 0 0 0
syscon junkerr EL2HLT 51 0 0 0 0 0
syscon junkerr EBADE 52 0 0 0 0 0
syscon junkerr EBADR 53 0 0 0 0 0
syscon junkerr EXFULL 54 0 0 0 0 0
syscon junkerr ENOANO 55 0 0 0 0 0
syscon junkerr EBADRQC 56 0 0 0 0 0
syscon junkerr EBADSLT 57 0 0 0 0 0
syscon junkerr ENOPKG 65 0 0 0 0 0
syscon junkerr EADV 68 0 0 0 0 0
syscon junkerr ESRMNT 69 0 0 0 0 0
syscon junkerr ECOMM 70 0 0 0 0 0
syscon junkerr EDOTDOT 73 0 0 0 0 0
syscon junkerr ENOTUNIQ 76 0 0 0 0 0
syscon junkerr EREMCHG 78 0 0 0 0 0
syscon junkerr ELIBACC 79 0 0 0 0 0
syscon junkerr ELIBBAD 80 0 0 0 0 0
syscon junkerr ELIBSCN 81 0 0 0 0 0
syscon junkerr ELIBMAX 82 0 0 0 0 0
syscon junkerr ELIBEXEC 83 0 0 0 0 0
syscon junkerr ESTRPIPE 86 0 0 0 0 0
syscon junkerr EUCLEAN 117 0 0 0 0 0
syscon junkerr ENOTNAM 118 0 0 0 0 0
syscon junkerr ENAVAIL 119 0 0 0 0 0
syscon junkerr EISNAM 120 0 0 0 0 0
syscon junkerr EREMOTEIO 121 0 0 0 0 0
syscon junkerr ENOKEY 126 0 0 0 0 0
syscon junkerr EKEYEXPIRED 127 0 0 0 0 0
syscon junkerr EKEYREVOKED 128 0 0 0 0 0
syscon junkerr EKEYREJECTED 129 0 0 0 0 0
syscon junkerr ERFKILL 132 0 0 0 0 0
syscon junkerr EHWPOISON 133 0 0 0 0 0
# arpanet fork combating human-induced exhaustion of our ipv4 address space
#
# group name GNU/Systemd XNU's Not UNIX! FreeBSD OpenBSD NetBSD The New Technology Commentary
syscon ipv6 IPV6_PMTUDISC_DONT 0 0 0 0 0 0 # consensus
syscon ipv6 IPV6_RTHDR_LOOSE 0 0 0 0 0 0 # consensus
syscon ipv6 IPV6_RTHDR_TYPE_0 0 0 0 0 0 0 # consensus
syscon ipv6 IPV6_CHECKSUM 7 26 26 26 26 26 # bsd consensus
syscon ipv6 IPV6_JOIN_GROUP 20 12 12 12 12 12 # bsd consensus
syscon ipv6 IPV6_LEAVE_GROUP 21 13 13 13 13 13 # bsd consensus
syscon ipv6 IPV6_MULTICAST_HOPS 18 10 10 10 10 10 # bsd consensus
syscon ipv6 IPV6_MULTICAST_IF 17 9 9 9 9 9 # bsd consensus
syscon ipv6 IPV6_MULTICAST_LOOP 19 11 11 11 11 11 # bsd consensus
syscon ipv6 IPV6_UNICAST_HOPS 0x10 4 4 4 4 4 # bsd consensus
syscon ipv6 IPV6_V6ONLY 26 27 27 27 27 27 # bsd consensus
syscon ipv6 IPV6_RECVTCLASS 66 35 57 57 57 40
syscon ipv6 IPV6_TCLASS 67 36 61 61 61 39
syscon ipv6 IPV6_DONTFRAG 62 0 62 62 62 14
syscon ipv6 IPV6_HOPLIMIT 52 0 47 47 47 21
syscon ipv6 IPV6_HOPOPTS 54 0 49 49 49 1
syscon ipv6 IPV6_PKTINFO 50 0 46 46 46 19
syscon ipv6 IPV6_RECVRTHDR 56 0 38 38 38 38
syscon ipv6 IPV6_RTHDR 57 0 51 51 51 0x20
syscon ipv6 IPV6_DSTOPTS 59 0 50 50 50 0
syscon ipv6 IPV6_IPSEC_POLICY 34 28 28 0 0 0
syscon ipv6 IPV6_NEXTHOP 9 0 48 48 48 0
syscon ipv6 IPV6_PATHMTU 61 0 44 44 44 0
syscon ipv6 IPV6_RECVDSTOPTS 58 0 40 40 40 0
syscon ipv6 IPV6_RECVHOPLIMIT 51 0 37 37 37 0
syscon ipv6 IPV6_RECVHOPOPTS 53 0 39 39 39 0
syscon ipv6 IPV6_RECVPATHMTU 60 0 43 43 43 0
syscon ipv6 IPV6_RECVPKTINFO 49 0 36 36 36 0
syscon ipv6 IPV6_RTHDRDSTOPTS 55 0 35 35 35 0
syscon ipv6 IPV6_RTHDR_STRICT 1 1 1 0 0 0
syscon ipv6 IPV6_ADD_MEMBERSHIP 20 0 0 0 0 12 # bsd consensus
syscon ipv6 IPV6_DROP_MEMBERSHIP 21 0 0 0 0 13 # bsd consensus
syscon ipv6 IPV6_HDRINCL 36 0 0 0 0 2 # bsd consensus
syscon ipv6 IPV6_MTU 24 0 0 0 0 72 # bsd consensus
syscon ipv6 IPV6_MTU_DISCOVER 23 0 0 0 0 71 # bsd consensus
syscon ipv6 IPV6_RECVERR 25 0 0 0 0 75 # bsd consensus
syscon ipv6 IPV6_2292DSTOPTS 4 23 0 0 0 0
syscon ipv6 IPV6_2292HOPLIMIT 8 20 0 0 0 0
syscon ipv6 IPV6_2292HOPOPTS 3 22 0 0 0 0
syscon ipv6 IPV6_2292PKTINFO 2 19 0 0 0 0
syscon ipv6 IPV6_2292PKTOPTIONS 6 25 0 0 0 0
syscon ipv6 IPV6_2292RTHDR 5 24 0 0 0 0
syscon ipv6 IPV6_AUTOFLOWLABEL 0 0 59 59 59 0
syscon ipv6 IPV6_ADDRFORM 1 0 0 0 0 0
syscon ipv6 IPV6_AUTHHDR 10 0 0 0 0 0
syscon ipv6 IPV6_JOIN_ANYCAST 27 0 0 0 0 0
syscon ipv6 IPV6_LEAVE_ANYCAST 28 0 0 0 0 0
syscon ipv6 IPV6_PMTUDISC_DO 2 0 0 0 0 0
syscon ipv6 IPV6_PMTUDISC_INTERFACE 4 0 0 0 0 0
syscon ipv6 IPV6_PMTUDISC_OMIT 5 0 0 0 0 0
syscon ipv6 IPV6_PMTUDISC_PROBE 3 0 0 0 0 0
syscon ipv6 IPV6_PMTUDISC_WANT 1 0 0 0 0 0
syscon ipv6 IPV6_ROUTER_ALERT 22 0 0 0 0 0
syscon ipv6 IPV6_RXDSTOPTS 59 0 0 0 0 0
syscon ipv6 IPV6_RXHOPOPTS 54 0 0 0 0 0
syscon ipv6 IPV6_XFRM_POLICY 35 0 0 0 0 0
syscon ipv6 IPV6_MINHOPCOUNT 0 0 0 65 65 0
syscon ipv6 IPV6_ORIGDSTADDR 0 0 72 0 0 0
syscon ipv6 IPV6_RECVORIGDSTADDR 0 0 72 0 0 0
syscon ipv6 INET6_ADDRSTRLEN 46 46 46 46 46 65 # unix consensus
syscon icmp6 ICMP6_DST_UNREACH_NOROUTE 0 0 0 0 0 0 # consensus
syscon icmp6 ICMP6_PARAMPROB_HEADER 0 0 0 0 0 0 # consensus
syscon icmp6 ICMP6_TIME_EXCEED_TRANSIT 0 0 0 0 0 0 # consensus
syscon icmp6 ICMP6_DST_UNREACH_ADMIN 1 1 1 1 1 1 # consensus
syscon icmp6 ICMP6_PARAMPROB_NEXTHEADER 1 1 1 1 1 1 # consensus
syscon icmp6 ICMP6_TIME_EXCEED_REASSEMBLY 1 1 1 1 1 1 # consensus
syscon icmp6 ICMP6_DST_UNREACH 1 1 1 1 1 0 # unix consensus
syscon icmp6 ICMP6_FILTER 1 18 18 18 18 0 # bsd consensus
syscon icmp6 ICMP6_DST_UNREACH_BEYONDSCOPE 2 2 2 2 2 2 # consensus
syscon icmp6 ICMP6_PARAMPROB_OPTION 2 2 2 2 2 2 # consensus
syscon icmp6 ICMP6_PACKET_TOO_BIG 2 2 2 2 2 0 # unix consensus
syscon icmp6 ICMP6_DST_UNREACH_ADDR 3 3 3 3 3 3 # consensus
syscon icmp6 ICMP6_TIME_EXCEEDED 3 3 3 3 3 0 # unix consensus
syscon icmp6 ICMP6_DST_UNREACH_NOPORT 4 4 4 4 4 4 # consensus
syscon icmp6 ICMP6_PARAM_PROB 4 4 4 4 4 0 # unix consensus
syscon icmp6 ICMP6_RR_FLAGS_PREVDONE 8 8 8 8 8 0 # unix consensus
syscon icmp6 ICMP6_RR_FLAGS_SPECSITE 0x10 0x10 0x10 0x10 0x10 0 # unix consensus
syscon icmp6 ICMP6_RR_PCOUSE_RAFLAGS_AUTO 0x10 0x40 0x40 0x40 0x40 0 # bsd consensus
syscon icmp6 ICMP6_RR_FLAGS_FORCEAPPLY 0x20 0x20 0x20 0x20 0x20 0 # unix consensus
syscon icmp6 ICMP6_RR_PCOUSE_RAFLAGS_ONLINK 0x20 0x80 0x80 0x80 0x80 0 # bsd consensus
syscon icmp6 ICMP6_RR_FLAGS_REQRESULT 0x40 0x40 0x40 0x40 0x40 0 # unix consensus
syscon icmp6 ICMP6_RR_PCOUSE_FLAGS_DECRPLTIME 0x40 0x40 0x40 0x40 0x40 0 # unix consensus
syscon icmp6 ICMP6_INFOMSG_MASK 0x80 0x80 0x80 0x80 0x80 0x80 # consensus
syscon icmp6 ICMP6_ECHO_REQUEST 0x80 0x80 0x80 0x80 0x80 0 # unix consensus
syscon icmp6 ICMP6_RR_FLAGS_TEST 0x80 0x80 0x80 0x80 0x80 0 # unix consensus
syscon icmp6 ICMP6_RR_PCOUSE_FLAGS_DECRVLTIME 0x80 0x80 0x80 0x80 0x80 0 # unix consensus
syscon icmp6 ICMP6_ECHO_REPLY 129 129 129 129 129 0 # unix consensus
syscon icmp6 ICMP6_ROUTER_RENUMBERING 138 138 138 138 138 0 # unix consensus
syscon icmp6 ICMP6_RR_RESULT_FLAGS_FORBIDDEN 0x0100 0x0100 0x0100 0x0100 0x0100 0 # unix consensus
syscon icmp6 ICMP6_RR_RESULT_FLAGS_OOB 0x0200 0x0200 0x0200 0x0200 0x0200 0 # unix consensus
syscon misc FIFOTYPE 54 54 54 54 54 0 # unix consensus
syscon misc GRPQUOTA 1 1 1 1 1 0 # unix consensus
syscon misc IF_NAMESIZE 0x10 0x10 0x10 0x10 0x10 0 # unix consensus
syscon misc INTERMEDIATE_C_GOOD 10 0 0 0 0 0
syscon misc INTERMEDIATE_GOOD 8 0 0 0 0 0
syscon misc IOV_MAX 0x0400 0x0400 0x0400 0x0400 0x0400 16 # unix consensus & MSG_MAXIOVLEN
syscon misc LINE_MAX 0x0800 0x0800 0x0800 0x0800 0x0800 0 # unix consensus
syscon misc LINKED_CMD_COMPLETE 10 0 0 0 0 0
syscon misc LINKED_FLG_CMD_COMPLETE 11 0 0 0 0 0
syscon misc LNKTYPE 49 49 49 49 49 0 # unix consensus
syscon misc MAXNAMLEN 255 255 255 255 255 0 # unix consensus
syscon misc MAXQUOTAS 2 2 2 2 2 0 # unix consensus
syscon misc MEDIUM_ERROR 3 0 0 0 0 0
syscon misc MEDIUM_SCAN 56 0 0 0 0 0
syscon misc NBBY 8 8 8 8 8 0 # unix consensus
syscon misc NR_DQHASH 43 0 0 0 0 0
syscon misc NR_DQUOTS 0x0100 0 0 0 0 0
syscon misc PERSISTENT_RESERVE_IN 94 0 0 0 0 0
syscon misc PERSISTENT_RESERVE_OUT 95 0 0 0 0 0
syscon misc PRELIM 1 1 1 1 1 0 # unix consensus
syscon misc REGTYPE 48 48 48 48 48 0 # unix consensus
syscon misc RES_PRF_CLASS 4 4 4 4 4 0 # unix consensus
syscon misc RHF_GUARANTEE_START_INIT 0x80 0 0 0 0 0
syscon misc RHF_NO_LIBRARY_REPLACEMENT 4 0 0 0 0 0
syscon misc RRQ 1 1 1 1 1 0 # unix consensus
syscon misc RTF_NOFORWARD 0x1000 0 0 0 0 0
syscon misc RTF_NOPMTUDISC 0x4000 0 0 0 0 0
syscon misc SARMAG 8 8 8 8 8 0 # unix consensus
syscon misc SEGSIZE 0x0200 0x0200 0x0200 0x0200 0x0200 0 # unix consensus
syscon misc SEND_DIAGNOSTIC 29 0 0 0 0 0
syscon misc SEND_VOLUME_TAG 182 0 0 0 0 0
syscon misc SET_LIMITS 51 0 0 0 0 0
syscon misc SET_WINDOW 36 0 0 0 0 0
syscon misc SFD_CLOEXEC 0x080000 0 0 0 0 0
syscon misc SFD_NONBLOCK 0x0800 0 0 0 0 0
syscon misc SUBCMDMASK 255 255 255 255 255 0 # unix consensus
syscon misc SUBCMDSHIFT 8 8 8 8 8 0 # unix consensus
syscon misc SYMTYPE 50 50 50 50 50 0 # unix consensus
syscon misc TGEXEC 8 8 8 8 8 0 # unix consensus
syscon misc TGREAD 0x20 0x20 0x20 0x20 0x20 0 # unix consensus
syscon misc TGWRITE 0x10 0x10 0x10 0x10 0x10 0 # unix consensus
syscon misc TMAGLEN 6 6 6 6 6 0 # unix consensus
syscon misc TOEXEC 1 1 1 1 1 0 # unix consensus
syscon misc TOREAD 4 4 4 4 4 0 # unix consensus
syscon misc TOWRITE 2 2 2 2 2 0 # unix consensus
syscon misc TRANSIENT 4 4 4 4 4 0 # unix consensus
syscon misc TSGID 0x0400 0x0400 0x0400 0x0400 0x0400 0 # unix consensus
syscon misc TSUID 0x0800 0x0800 0x0800 0x0800 0x0800 0 # unix consensus
syscon misc TSVTX 0x0200 0x0200 0x0200 0x0200 0x0200 0 # unix consensus
syscon misc TUEXEC 0x40 0x40 0x40 0x40 0x40 0 # unix consensus
syscon misc TUREAD 0x0100 0x0100 0x0100 0x0100 0x0100 0 # unix consensus
syscon misc TUWRITE 0x80 0x80 0x80 0x80 0x80 0 # unix consensus
syscon misc TVERSLEN 2 2 2 2 2 0 # unix consensus
syscon misc WORD_BIT 0x20 0x20 0x20 0x20 0x20 0 # unix consensus
syscon misc WRQ 2 2 2 2 2 0 # unix consensus
syscon misc SIGEV_THREAD 2 3 2 0 2 0
syscon misc SIGEV_SIGNAL 0 1 1 0 1 0
syscon misc SIGEV_NONE 1 0 0 0 0 0
syscon misc BC_BASE_MAX 99 99 99 0x7fffffff 0x7fffffff 0
syscon misc BC_DIM_MAX 0x0800 0x0800 0x0800 0xffff 0xffff 0
syscon misc BC_SCALE_MAX 99 99 99 0x7fffffff 0x7fffffff 0
syscon misc BC_STRING_MAX 0x03e8 0x03e8 0x03e8 0x7fffffff 0x7fffffff 0
syscon misc ABORTED_COMMAND 11 0 0 0 0 0
syscon misc ACORE 0 8 8 8 8 0 # bsd consensus
syscon misc AFORK 0 1 1 1 1 0 # bsd consensus
syscon misc AIO_ALLDONE 2 1 3 0 0 0
syscon misc AIO_NOTCANCELED 1 4 2 0 0 0
syscon misc AIO_CANCELED 0 2 1 0 0 0
syscon baud B0 0 0 0 0 0 0 # consensus
syscon baud B50 1 50 50 50 50 0 # bsd consensus
syscon baud B75 2 75 75 75 75 0 # bsd consensus
syscon baud B110 3 110 110 110 110 0 # bsd consensus
syscon baud B134 4 134 134 134 134 0 # bsd consensus
syscon baud B150 5 150 150 150 150 0 # bsd consensus
syscon baud B200 6 200 200 200 200 0 # bsd consensus
syscon baud B300 7 300 300 300 300 0 # bsd consensus
syscon baud B600 8 600 600 600 600 0 # bsd consensus
syscon baud B1200 9 0x04b0 0x04b0 0x04b0 0x04b0 0 # bsd consensus
syscon baud B1800 10 0x0708 0x0708 0x0708 0x0708 0 # bsd consensus
syscon baud B2400 11 0x0960 0x0960 0x0960 0x0960 0 # bsd consensus
syscon baud B4800 12 0x12c0 0x12c0 0x12c0 0x12c0 0 # bsd consensus
syscon baud B9600 13 0x2580 0x2580 0x2580 0x2580 0 # bsd consensus
syscon baud B19200 14 0x4b00 0x4b00 0x4b00 0x4b00 0 # bsd consensus
syscon baud B38400 15 0x9600 0x9600 0x9600 0x9600 0 # bsd consensus
syscon baud B57600 0x1001 0xe100 0xe100 0xe100 0xe100 0 # bsd consensus
syscon baud B115200 0x1002 0x01c200 0x01c200 0x01c200 0x01c200 0 # bsd consensus
syscon baud B230400 0x1003 0x038400 0x038400 0x038400 0x038400 0 # bsd consensus
syscon baud B500000 0x1005 0 0 0 0 0
syscon baud B576000 0x1006 0 0 0 0 0
syscon baud B1000000 0x1008 0 0 0 0 0
syscon baud B1152000 0x1009 0 0 0 0 0
syscon baud B1500000 0x100a 0 0 0 0 0
syscon baud B2000000 0x100b 0 0 0 0 0
syscon baud B2500000 0x100c 0 0 0 0 0
syscon baud B3000000 0x100d 0 0 0 0 0
syscon baud B3500000 0x100e 0 0 0 0 0
syscon baud B4000000 0x100f 0 0 0 0 0
syscon misc WEOF 0xffffffff -1 -1 -1 -1 -1 # bsd consensus (win fake)
syscon misc _LINUX_QUOTA_VERSION 2 0 0 0 0 0
syscon misc _SEM_SEMUN_UNDEFINED 1 0 0 0 0 0
syscon misc D_FMT 0x020029 2 2 1 1 0
syscon misc D_T_FMT 0x020028 1 1 0 0 0
syscon misc LOGIN_PROCESS 6 6 6 0 0 0
syscon misc LOGIN_NAME_MAX 0x0100 0 0 0x20 0x20 0
syscon misc T_FMT 0x02002a 3 3 2 2 0
syscon misc T_FMT_AMPM 0x02002b 4 4 3 3 0
syscon misc UL_GETFSIZE 1 1 1 0 0 0
syscon misc UL_SETFSIZE 2 2 2 0 0 0
syscon misc XATTR_CREATE 1 2 0 0 0 0
syscon misc XATTR_REPLACE 2 4 0 0 0 0
# https://youtu.be/GUQUD3IMbb4?t=85