/*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 20000 # mathematics argument out of domain of function; bsd consensus; made up on NT; returned by cos(3), fmod(3), log1p(3), sin(3), tan(3), tgamma(3) syscon errno ERANGE 34 34 34 34 34 6604 # result too large; bsd consensus; kNtErrorLogInvalidRange; 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 158 # no locks available; kNtErrorNotLocked; 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 4306 # kNtErrorEmpty; 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 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 534 # kNtErrorArithmeticOverflow; 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 582 # kNtErrorIllegalCharacter; 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 1460 # connection timed out; kNtErrorTimeout; bsd consensus; WSAETIMEDOUT; raised by connect(2), futex(2), keyctl(2), tcp(7) syscon errno ETIME 62 101 60 60 92 1460 # timer expired (POSIX.1 XSI STREAMS) 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 1223 # kNtErrorCancelled; raised by timerfd_create(2) syscon errno EOWNERDEAD 130 105 96 94 97 105 # kNtErrorSemOwnerDied; 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 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 sig SIGINFO 0 29 29 29 29 0 # bsd consensus syscon sig SIGRTMIN 32 0 65 0 33 32 syscon sig SIGRTMAX 64 0 126 0 63 64 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 0x00200000 0 0x00040000 0 0x04000000 0 # open only for executing (POSIX.1 hack for when file mode is 0111); see fexecve(); O_PATH on Linux 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]; hard-coded into flock-nt.c too 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]; hard-coded into flock-nt.c too # 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 -1 # bsd consensus syscon fcntl2 F_GETOWN 9 5 5 5 5 -1 # bsd consensus syscon fcntl2 F_FULLFSYNC -1 51 -1 -1 -1 -1 # syscon fcntl2 F_BARRIERFSYNC -1 85 -1 -1 -1 -1 # syscon fcntl2 F_NOCACHE -1 48 -1 -1 -1 -1 # syscon fcntl3 F_SETNOSIGPIPE -1 73 -1 -1 14 -1 # syscon fcntl3 F_GETNOSIGPIPE -1 74 -1 -1 13 -1 # syscon fcntl3 F_GETPATH -1 50 -1 -1 15 -1 # geth path associated with fd into buffer with PATH_MAX (1024) bytes 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 -1 -1 -1 -1 11 -1 # syscon fcntl F_NOTIFY 0x0402 -1 -1 -1 -1 -1 syscon fcntl F_SETPIPE_SZ 0x0407 -1 -1 -1 -1 -1 syscon fcntl F_GETPIPE_SZ 0x0408 -1 -1 -1 -1 -1 syscon fcntl FREAD 0 1 1 1 1 0 # wut is it syscon fcntl FWRITE 0 2 2 2 2 0 # wut is it # 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 fcntl F_SETLKW 7 9 13 9 9 7 # polyfilled nt syscon fcntl F_GETLK 5 7 11 7 7 5 # polyfilled nt syscon fcntl F_OFD_SETLK 37 90 -1 -1 -1 6 syscon fcntl F_OFD_SETLKW 38 91 -1 -1 -1 7 syscon fcntl F_OFD_GETLK 36 92 -1 -1 -1 5 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 compat F_SETLK64 6 8 12 8 8 6 # polyfilled nt syscon compat F_SETLKW64 7 9 13 9 9 7 syscon compat F_GETLK64 5 7 11 7 7 5 # polyfilled nt syscon fcntl F_SETSIG 10 -1 -1 -1 -1 -1 syscon fcntl F_GETSIG 11 -1 -1 -1 -1 -1 syscon fcntl F_SETOWN_EX 15 -1 -1 -1 -1 -1 syscon fcntl F_GETOWN_EX 0x10 -1 -1 -1 -1 -1 syscon fcntl F_SETLEASE 0x0400 -1 -1 -1 -1 -1 syscon fcntl F_GETLEASE 0x0401 -1 -1 -1 -1 -1 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 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 4 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 # start keepalives after this period syscon tcp TCP_KEEPINTVL 5 0x101 0x200 0 5 0 # interval between keepalives syscon tcp TCP_KEEPCNT 6 0x102 0x400 0 6 0 # number of keepalives before death 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 # disables optimization that lets kernel merge response data into ack packets 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 64 # _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 # 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 1 2 1 1 syscon futex FUTEX_REQUEUE 3 0 0 3 0 0 syscon futex FUTEX_PRIVATE_FLAG 128 0 128 128 0 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 # makes terminal controlling terminal of calling process (see login_tty) 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 TIOCPTYGRANT 0 0x20007454 0 0 0 0 # xnu grantpt() syscon termios TIOCPTYUNLK 0 0x20007452 0 0 0 0 # xnu unlockpt() syscon termios TIOCPTYGNAME 0 0x40807453 0 0 0 0 # xnu ptyname() syscon termios TIOCPTSNAME 0 0 0 0 0x48087448 0 # netbsd ptyname() syscon termios FIODGNAME 0 0 0x80106678 0 0 0 # freebsd ptsname_r() 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 0xfff 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