DoxigAlpha

fork

Type definitions in this namespace

Types

#
LINUX_REBOOT
flags for the `reboot' system call.
FUTEX_OP
Futex v1 API command and flags for the `futex_op` parameter
FUTEX_WAKE_OP
Futex v1 FUTEX_WAKE_OP `val3` operation:
FUTEX_WAKE_OP_CMD
Futex v1 cmd for FUTEX_WAKE_OP `val3` command.
FUTEX_WAKE_OP_CMP
Futex v1 comparison op for FUTEX_WAKE_OP `val3` cmp
FUTEX2_SIZE
For futex v2 API, the size of the futex at the uaddr.
FUTEX2_FLAGS_WAITV
As of kernel 6.14 there are no defined flags to futex2_waitv.
FUTEX2_FLAGS_REQUEUE
As of kernel 6.14 there are no defined flags to futex2_requeue.
FUTEX2_FLAGS
Flags for futex v2 APIs (futex2_wait, futex2_wake, futex2_requeue, but
IPV6
IPv6 socket options
ETH
IEEE 802.3 Ethernet magic constants.
Sigaction
Kernel Sigaction wrapper for the actual ABI `k_sigaction`.
io_uring_sqe
IO submission data structure (Submission Queue Entry)
IORING_MSG_RING_COMMAND
IORING_OP_MSG_RING command types, stored in sqe->addr
io_sqring_offsets
Filled with the offset for mmap(2)
IOWQ_CATEGORIES
io_uring_restriction->opcode values
io_uring_files_update
deprecated, see struct io_uring_rsrc_update
IORING_RESTRICTION
io_uring_restriction->opcode values
io_uring_buf_reg
argument for IORING_(UN)REGISTER_PBUF_RING
io_uring_sync_cancel_reg
Argument for IORING_REGISTER_SYNC_CANCEL
io_uring_file_index_range
Argument for IORING_REGISTER_FILE_ALLOC_RANGE
Statx
Renamed to `Statx` to not conflict with the `statx` function.
tcp_fastopen_client_fail
why fastopen failed from client perspective
kernel_timespec
The timespec struct used by the kernel.
nlmsghdr
Netlink message header
futex2_waitone
For futex2_waitv and futex2_requeue.
wrapped
The syscalls, but with Zig error sets, going through libc if linking libc,

Functions in this namespace

Functions

#
vfork
This must be inline, and inline call the syscall function, because if the
futex
The futex v1 syscall, see also the newer the futex2_{wait,wakeup,requeue,waitv} syscalls.
futex_3arg
Three-argument variation of the v1 futex call.
futex_4arg
Four-argument variation on the v1 futex call.
futex2_waitv
Given an array of `futex2_waitone`, wait on each uaddr.
futex2_wait
Wait on a single futex.
futex2_wake
Wake (subset of) waiters on given futex.
futex2_requeue
Wake and/or requeue waiter(s) from one futex to another.
mseal
Can only be called on 64 bit systems.
clone5
See also `clone` (from the arch-specific include)
clone2
See also `clone` (from the arch-specific include)
llseek
Can only be called on 32 bit systems.
lseek
Can only be called on 64 bit systems.
sigrtmin
Zig's SIGRTMIN, but is a function for compatibility with glibc
sigrtmax
Zig's SIGRTMAX, but is a function for compatibility with glibc
sigemptyset
Zig's version of sigemptyset.
sigfillset
Zig's version of sigfillset.
cachestat
Query the page cache statistics of a file.

= syscall_bits.syscall0

Values

#
syscall0
= syscall_bits.syscall0
syscall1
= syscall_bits.syscall1
syscall2
= syscall_bits.syscall2
syscall3
= syscall_bits.syscall3
syscall4
= syscall_bits.syscall4
syscall5
= syscall_bits.syscall5
syscall6
= syscall_bits.syscall6
syscall7
= syscall_bits.syscall7
restore
= syscall_bits.restore
restore_rt
= syscall_bits.restore_rt
socketcall
= syscall_bits.socketcall
syscall_pipe
= syscall_bits.syscall_pipe
syscall_fork
= syscall_bits.syscall_fork
ARCH
= arch_bits.ARCH
Elf_Symndx
= arch_bits.Elf_Symndx
F
= arch_bits.F
Flock
= arch_bits.Flock
HWCAP
= arch_bits.HWCAP
REG
= arch_bits.REG
SC
= arch_bits.SC
Stat
= arch_bits.Stat
VDSO
= arch_bits.VDSO
blkcnt_t
= arch_bits.blkcnt_t
blksize_t
= arch_bits.blksize_t
dev_t
= arch_bits.dev_t
ino_t
= arch_bits.ino_t
mcontext_t
= arch_bits.mcontext_t
mode_t
= arch_bits.mode_t
nlink_t
= arch_bits.nlink_t
off_t
= arch_bits.off_t
time_t
= arch_bits.time_t
timeval
= arch_bits.timeval
timezone
= arch_bits.timezone
ucontext_t
= arch_bits.ucontext_t
user_desc
= arch_bits.user_desc
getcontext
= arch_bits.getcontext
elf_aux_maybe
Set by startup code, used by `getauxval`.
getauxval
= if (extern_getauxval) struct { comptime { const root = @import("root"); // Export this only when building an executable, otherwise it is overriding // the libc implementation if (builtin.output_mode == .Exe or @hasDecl(root, "main")) { @export(&getauxvalImpl, .{ .name = "getauxval", .linkage = .weak }); } } extern fn getauxval(index: usize) usize; }.getauxval else getauxvalImpl
NSIG
Defined as one greater than the largest defined signal number.
PATH_MAX
= 4096
IOV_MAX
= 1024
MAX_ADDR_LEN
Largest hardware address length
FUTEX2_WAITONE_MAX
Max numbers of elements in a `futex2_waitone` array.
F_OK
= 0
X_OK
= 1
W_OK
= 2
R_OK
= 4
CSIGNAL
= 0x000000ff
VFS_CAP_FLAGS_MASK
= ~@as(u32, VFS_CAP_REVISION_MASK)
VFS_CAP_REVISION_1
= 0x01000000
XATTR_CAPS_SZ_1
= @sizeOf(u32) * (1 + 2 * VFS_CAP_U32_1)
VFS_CAP_REVISION_2
= 0x02000000
XATTR_CAPS_SZ_2
= @sizeOf(u32) * (1 + 2 * VFS_CAP_U32_2)
XATTR_CAPS_SZ
= XATTR_CAPS_SZ_2
VFS_CAP_U32
= VFS_CAP_U32_2
VFS_CAP_REVISION
= VFS_CAP_REVISION_2
MINSIGSTKSZ
= switch (native_arch) { .arc, .arm, .armeb, .csky, .hexagon, .m68k, .mips, .mipsel, .mips64, .mips64el, .powerpc, .powerpcle, .riscv32, .riscv64, .s390x, .thumb, .thumbeb, .x86, .x86_64, .xtensa, => 2048, .loongarch64, .sparc, .sparc64, => 4096, .aarch64, .aarch64_be, => 5120, .powerpc64, .powerpc64le, => 8192, else => @compileError("MINSIGSTKSZ not defined for this architecture"), }
SIGSTKSZ
= switch (native_arch) { .arc, .arm, .armeb, .csky, .hexagon, .m68k, .mips, .mipsel, .mips64, .mips64el, .powerpc, .powerpcle, .riscv32, .riscv64, .s390x, .thumb, .thumbeb, .x86, .x86_64, .xtensa, => 8192, .aarch64, .aarch64_be, .loongarch64, .sparc, .sparc64, => 16384, .powerpc64, .powerpc64le, => 32768, else => @compileError("SIGSTKSZ not defined for this architecture"), }
IORING_SETUP_IOPOLL
io_context is polled
IORING_SETUP_SQPOLL
SQ poll thread
IORING_SETUP_SQ_AFF
sq_thread_cpu is valid
IORING_SETUP_CQSIZE
app defines CQ size
IORING_SETUP_CLAMP
clamp SQ/CQ ring sizes
IORING_SETUP_ATTACH_WQ
attach to existing wq
IORING_SETUP_R_DISABLED
start with ring disabled
IORING_SETUP_SUBMIT_ALL
continue submit on error
IORING_SETUP_COOP_TASKRUN
Cooperative task running.
IORING_SETUP_TASKRUN_FLAG
If COOP_TASKRUN is set, get notified if task work is available for
IORING_SETUP_SQE128
SQEs are 128 byte
IORING_SETUP_CQE32
CQEs are 32 byte
IORING_SETUP_SINGLE_ISSUER
Only one task is allowed to submit requests
IORING_SETUP_DEFER_TASKRUN
Defer running task work to get events.
IORING_SETUP_NO_MMAP
Application provides ring memory
IORING_SETUP_REGISTERED_FD_ONLY
Register the ring fd in itself for use with
IORING_SETUP_NO_SQARRAY
Removes indirection through the SQ index array.
IORING_FILE_INDEX_ALLOC
If sqe->file_index is set to this for opcodes that instantiate a new
IOSQE_FIXED_FILE
use fixed fileset
IOSQE_IO_DRAIN
issue after inflight IO
IOSQE_IO_LINK
links next sqe
IOSQE_IO_HARDLINK
like LINK, but stronger
IOSQE_ASYNC
always go async
IOSQE_BUFFER_SELECT
select buffer from buf_group
IOSQE_CQE_SKIP_SUCCESS
don't post CQE if request succeeded
IORING_URING_CMD_FIXED
use registered buffer; pass thig flag along with setting sqe->buf_index.
IORING_TIMEOUT_CLOCK_MASK
= IORING_TIMEOUT_BOOTTIME | IORING_TIMEOUT_REALTIME
IORING_TIMEOUT_UPDATE_MASK
= IORING_TIMEOUT_UPDATE | IORING_LINK_TIMEOUT_UPDATE
IORING_POLL_ADD_MULTI
Multishot poll.
IORING_POLL_UPDATE_EVENTS
Update existing poll request, matching sqe->addr as the old user_data field.
IORING_ASYNC_CANCEL_ALL
Cancel all requests that match the given key
IORING_ASYNC_CANCEL_FD
Key off 'fd' for cancelation rather than the request 'user_data'.
IORING_ASYNC_CANCEL_ANY
Match any request
IORING_ASYNC_CANCEL_FD_FIXED
'fd' passed in is a fixed descriptor.
IORING_RECVSEND_POLL_FIRST
If set, instead of first attempting to send or receive and arm poll if that yields an -EAGAIN result,
IORING_RECV_MULTISHOT
Multishot recv.
IORING_RECVSEND_FIXED_BUF
Use registered buffers, the index is stored in the buf_index field.
IORING_SEND_ZC_REPORT_USAGE
If set, SEND[MSG]_ZC should report the zerocopy usage in cqe.res for the IORING_CQE_F_NOTIF cqe.
IORING_RECVSEND_BUNDLE
If set, send or recv will grab as many buffers from the buffer group ID given and send them all.
IORING_NOTIF_USAGE_ZC_COPIED
CQE.RES FOR IORING_CQE_F_NOTIF if IORING_SEND_ZC_REPORT_USAGE was requested
IORING_ACCEPT_MULTISHOT
accept flags stored in sqe->iopri
IORING_MSG_RING_CQE_SKIP
Don't post a CQE to the target ring.
IORING_MSG_RING_FLAGS_PASS
Pass through the flags from sqe->file_index (splice_fd_in in the zig struct) to cqe->flags */
IORING_CQE_F_BUFFER
If set, the upper 16 bits are the buffer ID
IORING_CQE_F_MORE
If set, parent SQE will generate more CQE entries.
IORING_CQE_F_SOCK_NONEMPTY
If set, more data to read after socket recv
IORING_CQE_F_NOTIF
Set for notification CQEs.
IORING_CQE_F_BUF_MORE
If set, the buffer ID set in the completion will get more completions.
IORING_OFF_SQ_RING
Magic offsets for the application to mmap the data it needs
IORING_OFF_SQES
= 0x10000000
IORING_SQ_NEED_WAKEUP
needs io_uring_enter wakeup
IORING_SQ_CQ_OVERFLOW
kernel has cqes waiting beyond the cq ring
IORING_SQ_TASKRUN
task should enter the kernel
IORING_CQ_EVENTFD_DISABLED
disable eventfd notifications
IORING_RSRC_REGISTER_SPARSE
Register a fully sparse file space, rather than pass in an array of all -1 file descriptors.
IORING_REGISTER_FILES_SKIP
Skip updating fd indexes set to this value in the fd table */
STATX_TYPE
= 0x0001
STATX_MODE
= 0x0002
STATX_NLINK
= 0x0004
STATX_UID
= 0x0008
STATX_GID
= 0x0010
STATX_ATIME
= 0x0020
STATX_MTIME
= 0x0040
STATX_CTIME
= 0x0080
STATX_INO
= 0x0100
STATX_SIZE
= 0x0200
STATX_BLOCKS
= 0x0400
STATX_BTIME
= 0x0800
TCPI_OPT_TIMESTAMPS
for TCP_INFO socket option
TCPI_OPT_ECN
ECN was negotiated at TCP session init
TCPI_OPT_ECN_SEEN
we received at least one packet with ECT
TCPI_OPT_SYN_DATA
SYN-ACK acked data in SYN sent or rcvd
HUGETLB_FLAG_ENCODE_64KB
= 16 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_512KB
= 19 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_1MB
= 20 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_2MB
= 21 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_8MB
= 23 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_16MB
= 24 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_32MB
= 25 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_256MB
= 28 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_512MB
= 29 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_1GB
= 30 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_2GB
= 31 << HUGETLB_FLAG_ENCODE_SHIFT
HUGETLB_FLAG_ENCODE_16GB
= 34 << HUGETLB_FLAG_ENCODE_SHIFT
NCC
= if (is_ppc) 10 else 8
NCCS
= if (is_mips) 32 else if (is_ppc) 19 else if (is_sparc) 17 else 32
SIOCINQ
Linux-specific socket ioctls
SIOCOUTQ
Linux-specific socket ioctls
SIOCGSTAMP_NEW
= IOCTL.IOR(SOCK_IOC_TYPE, 0x06, i64[2])
SIOCGSTAMP_OLD
= IOCTL.IOR('s', 100, timeval)
SIOCGSTAMP
Get stamp (timeval)
SIOCGSTAMPNS_NEW
= IOCTL.IOR(SOCK_IOC_TYPE, 0x07, i64[2])
SIOCGSTAMPNS_OLD
= IOCTL.IOR('s', 101, kernel_timespec)
SIOCGSTAMPNS
Get stamp (timespec)
SIOCADDRT
Add routing table entry
SIOCDELRT
Delete routing table entry
SIOCRTMSG
Unused
SIOCGIFNAME
Get iface name
SIOCSIFLINK
Set iface channel
SIOCGIFCONF
Get iface list
SIOCGIFFLAGS
Get flags
SIOCSIFFLAGS
Set flags
SIOCGIFADDR
Get PA address
SIOCSIFADDR
Set PA address
SIOCGIFDSTADDR
Get remote PA address
SIOCSIFDSTADDR
Set remote PA address
SIOCGIFBRDADDR
Get broadcast PA address
SIOCSIFBRDADDR
Set broadcast PA address
SIOCGIFNETMASK
Get network PA mask
SIOCSIFNETMASK
Set network PA mask
SIOCGIFMETRIC
Get metric
SIOCSIFMETRIC
Set metric
SIOCGIFMEM
Get memory address (BSD)
SIOCSIFMEM
Set memory address (BSD)
SIOCGIFMTU
Get MTU size
SIOCSIFMTU
Set MTU size
SIOCSIFNAME
Set interface name
SIOCSIFHWADDR
Set hardware address
SIOCGIFENCAP
Get encapsulations
SIOCSIFENCAP
Set encapsulations
SIOCGIFHWADDR
Get hardware address
SIOCGIFSLAVE
Driver slaving support
SIOCSIFSLAVE
Driver slaving support
SIOCADDMULTI
Add to Multicast address lists
SIOCDELMULTI
Delete from Multicast address lists
SIOCGIFINDEX
name -> if_index mapping
SIOCSIFPFLAGS
Set extended flags set
SIOCGIFPFLAGS
Get extended flags set
SIOCDIFADDR
Delete PA address
SIOCSIFHWBROADCAST
Set hardware broadcast addr
SIOCGIFCOUNT
Get number of devices
SIOCGIFBR
Bridging support
SIOCSIFBR
Set bridging options
SIOCGIFTXQLEN
Get the tx queue length
SIOCSIFTXQLEN
Set the tx queue length
SIOCETHTOOL
Ethtool interface
SIOCGMIIPHY
Get address of MII PHY in use.
SIOCGMIIREG
Read MII PHY register.
SIOCSMIIREG
Write MII PHY register.
SIOCWANDEV
Get / Set netdev parameters
SIOCOUTQNSD
Output queue size (not sent only)
SIOCGSKNS
Get socket network namespace
SIOCDARP
Delete ARP table entry
SIOCGARP
Get ARP table entry
SIOCSARP
Set ARP table entry
SIOCDRARP
Delete RARP table entry
SIOCGRARP
Get RARP table entry
SIOCSRARP
Set RARP table entry
SIOCGIFMAP
Get device parameters
SIOCSIFMAP
Set device parameters
SIOCADDDLCI
Create new DLCI device
SIOCDELDLCI
Delete DLCI device
SIOCGIFVLAN
802.1Q VLAN support
SIOCSIFVLAN
Set 802.1Q VLAN options
SIOCBONDENSLAVE
Enslave a device to the bond
SIOCBONDRELEASE
Release a slave from the bond
SIOCBONDSETHWADDR
Set the hw addr of the bond
SIOCBONDSLAVEINFOQUERY
rtn info about slave state
SIOCBONDINFOQUERY
rtn info about bond state
SIOCBONDCHANGEACTIVE
Update to a new active slave
SIOCBRADDBR
Create new bridge device
SIOCBRDELBR
Remove bridge device
SIOCBRADDIF
Add interface to bridge
SIOCBRDELIF
Remove interface from bridge
SIOCSHWTSTAMP
Get hardware time stamp config
SIOCGHWTSTAMP
Set hardware time stamp config
SIOCDEVPRIVATE
Device private ioctl calls
SIOCPROTOPRIVATE
These 16 ioctl calls are protocol private
XSK_UNALIGNED_BUF_ADDR_MASK
= (1 << XSK_UNALIGNED_BUF_OFFSET_SHIFT) - 1
SECUREBITS_DEFAULT
= 0x00000000
SECBIT_NOROOT
= issecure_mask(SECURE_NOROOT)
SECBIT_NOROOT_LOCKED
= issecure_mask(SECURE_NOROOT_LOCKED)
SECBIT_NO_SETUID_FIXUP
= issecure_mask(SECURE_NO_SETUID_FIXUP)
SECBIT_NO_SETUID_FIXUP_LOCKED
= issecure_mask(SECURE_NO_SETUID_FIXUP_LOCKED)
SECBIT_KEEP_CAPS
= issecure_mask(SECURE_KEEP_CAPS)
SECBIT_KEEP_CAPS_LOCKED
= issecure_mask(SECURE_KEEP_CAPS_LOCKED)
SECBIT_NO_CAP_AMBIENT_RAISE
= issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE)
SECBIT_NO_CAP_AMBIENT_RAISE_LOCKED
= issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE_LOCKED)
SECURE_ALL_BITS
= issecure_mask(SECURE_NOROOT) | issecure_mask(SECURE_NO_SETUID_FIXUP) | issecure_mask(SECURE_KEEP_CAPS) | issecure_mask(SECURE_NO_CAP_AMBIENT_RAISE)
SECURE_ALL_LOCKS
= SECURE_ALL_BITS << 1
NLM_F_REQUEST
It is request message.
NLM_F_MULTI
Multipart message, terminated by NLMSG_DONE
NLM_F_ACK
Reply with ack, with zero or error code
NLM_F_ECHO
Echo this request
NLM_F_DUMP_INTR
Dump was inconsistent due to sequence change
NLM_F_DUMP_FILTERED
Dump was filtered as requested
NLM_F_ROOT
specify tree root
NLM_F_MATCH
return all matching
NLM_F_ATOMIC
atomic GET
NLM_F_DUMP
= NLM_F_ROOT | NLM_F_MATCH
NLM_F_REPLACE
Override existing
NLM_F_EXCL
Do not touch, if it exists
NLM_F_CREATE
Create, if it does not exist
NLM_F_APPEND
Add to end of list
NLM_F_NONREC
Do not delete recursively
NLM_F_CAPPED
request was capped
NLM_F_ACK_TLVS
extended ACK TVLs were included

Source

Implementation

#