package core:sys/unix

Warning: This was generated for -target:linux_arm64 and might not represet every target this package supports.

⌘K
Ctrl+K
or
/

    Index

    Constants (448)
    Variables (0)

    This section is empty.

    Procedures (117)
    Procedure Groups (0)

    This section is empty.

    Types

    Perf_Capabilities ¶

    Perf_Capabilities :: struct #raw_union {
    	capabilities: u64,
    	flags:        Perf_Event_Flags,
    }

    Perf_Event_Attr ¶

    Perf_Event_Attr :: struct #packed {
    	type:               u32,
    	size:               u32,
    	config:             u64,
    	sample:             Perf_Sample,
    	sample_type:        u64,
    	read_format:        u64,
    	flags:              Perf_Flags,
    	wakeup:             Perf_Wakeup,
    	breakpoint_type:    u32,
    	field1:             Perf_Field1,
    	field2:             Perf_Field2,
    	branch_sample_type: u64,
    	sample_regs_user:   u64,
    	sample_stack_user:  u32,
    	clock_id:           i32,
    	sample_regs_intr:   u64,
    	aux_watermark:      u32,
    	sample_max_stack:   u16,
    	_padding:           u16,
    }

    Perf_Event_Flag ¶

    Perf_Event_Flag :: enum u64 {
    	Bit0               = 0, 
    	Bit0_Is_Deprecated = 1, 
    	User_Rdpmc         = 2, 
    	User_Time          = 3, 
    	User_Time_Zero     = 4, 
    	User_Time_Short    = 5, 
    }

    Perf_Event_Flags ¶

    Perf_Event_Flags :: distinct bit_set[Perf_Event_Flag; u64]

    Perf_Event_mmap_Page ¶

    Perf_Event_mmap_Page :: struct #packed {
    	version:        u32,
    	compat_version: u32,
    	lock:           u32,
    	index:          u32,
    	offset:         i64,
    	time_enabled:   u64,
    	time_running:   u64,
    	cap:            Perf_Capabilities,
    	pmc_width:      u16,
    	time_shift:     u16,
    	time_mult:      u32,
    	time_offset:    u64,
    	time_zero:      u64,
    	size:           u32,
    	reserved1:      u32,
    	time_cycles:    u64,
    	time_mask:      u64,
    	reserved2:      [928]u8,
    	data_head:      u64,
    	data_tail:      u64,
    	data_offset:    u64,
    	data_size:      u64,
    	aux_head:       u64,
    	aux_tail:       u64,
    	aux_offset:     u64,
    	aux_size:       u64,
    }

    Perf_Field1 ¶

    Perf_Field1 :: struct #raw_union {
    	breakpoint_addr: u64,
    	kprobe_func:     u64,
    	uprobe_path:     u64,
    	config1:         u64,
    }

    Perf_Field2 ¶

    Perf_Field2 :: struct #raw_union {
    	breakpoint_len: u64,
    	kprobe_addr:    u64,
    	uprobe_offset:  u64,
    	config2:        u64,
    }

    Perf_Flag ¶

    Perf_Flag :: enum u64 {
    	Disabled                 = 0, 
    	Inherit                  = 1, 
    	Pinned                   = 2, 
    	Exclusive                = 3, 
    	Exclude_User             = 4, 
    	Exclude_Kernel           = 5, 
    	Exclude_HV               = 6, 
    	Exclude_Idle             = 7, 
    	mmap                     = 8, 
    	Comm                     = 9, 
    	Freq                     = 10, 
    	Inherit_Stat             = 11, 
    	Enable_On_Exec           = 12, 
    	Task                     = 13, 
    	Watermark                = 14, 
    	Precise_IP_0             = 15, 
    	Precise_IP_1             = 16, 
    	mmap_Data                = 17, 
    	Sample_Id_All            = 18, 
    	Exclude_Host             = 19, 
    	Exclude_Guest            = 20, 
    	Exclude_Callchain_Kernel = 21, 
    	Exclude_Callchain_User   = 22, 
    	mmap2                    = 23, 
    	Comm_Exec                = 24, 
    	Use_Clockid              = 25, 
    	Context_Switch           = 26, 
    	Write_Backward           = 27, 
    	Namespaces               = 28, 
    	KSymbol                  = 29, 
    	BPF_Event                = 30, 
    	Aux_Output               = 31, 
    	CGroup                   = 32, 
    	Text_Poke                = 33, 
    	Build_Id                 = 34, 
    	Inherit_Thread           = 35, 
    	Remove_On_Exec           = 36, 
    	Sigtrap                  = 37, 
    }

    Perf_Flags ¶

    Perf_Flags :: distinct bit_set[Perf_Flag; u64]

    Perf_Hardware_Id ¶

    Perf_Hardware_Id :: enum u64 {
    	CPU_Cycles              = 0, 
    	Instructions            = 1, 
    	Cache_References        = 2, 
    	Cache_Misses            = 3, 
    	Branch_Instructions     = 4, 
    	Branch_Misses           = 5, 
    	Bus_Cycles              = 6, 
    	Stalled_Cycles_Frontend = 7, 
    	Stalled_Cycles_Backend  = 8, 
    	Ref_CPU_Cycles          = 9, 
    }

    Perf_Sample ¶

    Perf_Sample :: struct #raw_union {
    	period:    u64,
    	frequency: u64,
    }
     

    perf event data

    Perf_Type_Id ¶

    Perf_Type_Id :: enum u32 {
    	Hardware   = 0, 
    	Software   = 1, 
    	Tracepoint = 2, 
    	HW_Cache   = 3, 
    	Raw        = 4, 
    	Breakpoint = 5, 
    }

    Perf_Wakeup ¶

    Perf_Wakeup :: struct #raw_union {
    	events:    u32,
    	watermark: u32,
    }

    pthread_barrier_t ¶

    pthread_barrier_t :: struct #align (16) {
    	_: [32]u8,
    }

    pthread_barrierattr_t ¶

    pthread_barrierattr_t :: struct #align (16) {
    	_: [4]u8,
    }

    pthread_rwlock_t ¶

    pthread_rwlock_t :: struct #align (16) {
    	_: [56]u8,
    }

    pthread_rwlockattr_t ¶

    pthread_rwlockattr_t :: struct #align (16) {
    	_: [8]u8,
    }

    pthread_t ¶

    pthread_t :: distinct u64
     

    TODO(tetra): For robustness, I'd like to mark this with align 16. I cannot currently do this. And at the time of writing there is a bug with putting it as the only field in a struct.

    Related Procedures With Parameters
    Related Procedures With Returns

    sched_param ¶

    sched_param :: struct {
    	sched_priority: i32,
    }
    Related Procedures With Parameters

    sem_t ¶

    sem_t :: struct #align (16) {
    	_: [32]u8,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    timespec ¶

    timespec :: struct {
    	tv_sec:  i64,
    	// seconds
    	tv_nsec: i64,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Constants

    AT_FDCWD ¶

    AT_FDCWD: uintptr : ~uintptr(99)
     

    syscall related constants

    AT_REMOVEDIR ¶

    AT_REMOVEDIR :: uintptr(0x200)
    AT_SYMLINK_FOLLOW :: uintptr(0x400)
    AT_SYMLINK_NOFOLLOW :: uintptr(0x100)

    CLOCK_BOOTTIME ¶

    CLOCK_BOOTTIME :: 7
     

    NOTE(tetra): Same as MONOTONIC, except also including time system was asleep.

    CLOCK_BOOTTIME_ALARM ¶

    CLOCK_BOOTTIME_ALARM :: 9

    CLOCK_CALENDAR ¶

    CLOCK_CALENDAR :: CLOCK_MONOTONIC

    CLOCK_MONOTONIC ¶

    CLOCK_MONOTONIC :: 1
     

    NOTE(tetra): May stand still while system is asleep.

    CLOCK_MONOTONIC_COARSE ¶

    CLOCK_MONOTONIC_COARSE :: 6

    CLOCK_MONOTONIC_RAW ¶

    CLOCK_MONOTONIC_RAW :: 4
     

    NOTE(tetra): "RAW" means: Not adjusted by NTP.

    CLOCK_PROCESS_CPUTIME_ID ¶

    CLOCK_PROCESS_CPUTIME_ID :: 2

    CLOCK_REALTIME ¶

    CLOCK_REALTIME :: 0
     

    NOTE(tetra): May jump in time, when user changes the system time.

    CLOCK_REALTIME_ALARM ¶

    CLOCK_REALTIME_ALARM :: 8

    CLOCK_REALTIME_COARSE ¶

    CLOCK_REALTIME_COARSE :: 5
     

    NOTE(tetra): "COARSE" clocks are apparently much faster, but not "fine-grained."

    CLOCK_SYSTEM ¶

    CLOCK_SYSTEM :: CLOCK_REALTIME
     

    TODO(tetra, 2019-11-05): The original implementation of this package for Darwin used this constants. I do not know if Darwin programmers are used to the existance of these constants or not, so I'm leaving aliases to them for now.

    CLOCK_THREAD_CPUTIME_ID ¶

    CLOCK_THREAD_CPUTIME_ID :: 3

    MADV_DODUMP ¶

    MADV_DODUMP :: 17

    MADV_DOFORK ¶

    MADV_DOFORK :: 11

    MADV_DONTDUMP ¶

    MADV_DONTDUMP :: 16

    MADV_DONTFORK ¶

    MADV_DONTFORK :: 10

    MADV_DONTNEED ¶

    MADV_DONTNEED :: 4

    MADV_FREE ¶

    MADV_FREE :: 8

    MADV_HUGEPAGE ¶

    MADV_HUGEPAGE :: 14

    MADV_HWPOISON ¶

    MADV_HWPOISON :: 100

    MADV_KEEPONFORK ¶

    MADV_KEEPONFORK :: 19

    MADV_MERGEABLE ¶

    MADV_MERGEABLE :: 12

    MADV_NOHUGEPAGE ¶

    MADV_NOHUGEPAGE :: 15

    MADV_NORMAL ¶

    MADV_NORMAL :: 0
     

    madvise flags

    MADV_RANDOM ¶

    MADV_RANDOM :: 1

    MADV_REMOVE ¶

    MADV_REMOVE :: 9

    MADV_SEQUENTIAL ¶

    MADV_SEQUENTIAL :: 2

    MADV_UNMERGEABLE ¶

    MADV_UNMERGEABLE :: 13

    MADV_WILLNEED ¶

    MADV_WILLNEED :: 3

    MADV_WIPEONFORK ¶

    MADV_WIPEONFORK :: 18

    MAP_ANONYMOUS ¶

    MAP_ANONYMOUS :: 0x20

    MAP_FIXED ¶

    MAP_FIXED :: 0x10

    MAP_PRIVATE ¶

    MAP_PRIVATE :: 0x2

    MAP_SHARED ¶

    MAP_SHARED :: 0x1

    MAP_SHARED_VALIDATE ¶

    MAP_SHARED_VALIDATE :: 0x3

    MREMAP_DONTUNMAP ¶

    MREMAP_DONTUNMAP :: 4

    MREMAP_FIXED ¶

    MREMAP_FIXED :: 2

    MREMAP_MAYMOVE ¶

    MREMAP_MAYMOVE :: 1
     

    mremap flags

    O_CLOEXEC ¶

    O_CLOEXEC :: 0o2000000
     

    pipe2 flags

    POLLERR ¶

    POLLERR :: 0x0008

    POLLFREE ¶

    POLLFREE :: 0x4000

    POLLHUP ¶

    POLLHUP :: 0x0010

    POLLIN ¶

    POLLIN :: 0x0001
     

    poll events

    POLLMSG ¶

    POLLMSG :: 0x0400

    POLLNVAL ¶

    POLLNVAL :: 0x0020

    POLLOUT ¶

    POLLOUT :: 0x0004

    POLLPRI ¶

    POLLPRI :: 0x0002

    POLLRDBAND ¶

    POLLRDBAND :: 0x0080

    POLLRDHUP ¶

    POLLRDHUP :: 0x2000

    POLLRDNORM ¶

    POLLRDNORM :: 0x0040

    POLLREMOVE ¶

    POLLREMOVE :: 0x1000

    POLLWRBAND ¶

    POLLWRBAND :: 0x0200

    POLLWRNORM ¶

    POLLWRNORM :: 0x0100

    POLL_BUSY_LOOP ¶

    POLL_BUSY_LOOP :: 0x8000

    PROT_EXEC ¶

    PROT_EXEC :: 0x4

    PROT_GROWSDOWN ¶

    PROT_GROWSDOWN :: 0x01000000

    PROT_GROWSUP ¶

    PROT_GROWSUP :: 0x02000000

    PROT_NONE ¶

    PROT_NONE :: 0x0
     

    mmap flags

    PROT_READ ¶

    PROT_READ :: 0x1

    PROT_WRITE ¶

    PROT_WRITE :: 0x2

    PTHREAD_ATTR_T_SIZE ¶

    PTHREAD_ATTR_T_SIZE :: 56

    PTHREAD_BARRIERATTR_T_SIZE ¶

    PTHREAD_BARRIERATTR_T_SIZE :: 4

    PTHREAD_BARRIER_T_SIZE ¶

    PTHREAD_BARRIER_T_SIZE :: 32

    PTHREAD_CANCEL_ASYNCHRONOUS ¶

    PTHREAD_CANCEL_ASYNCHRONOUS :: 1

    PTHREAD_CANCEL_DEFERRED ¶

    PTHREAD_CANCEL_DEFERRED :: 0

    PTHREAD_CANCEL_DISABLE ¶

    PTHREAD_CANCEL_DISABLE :: 1

    PTHREAD_CANCEL_ENABLE ¶

    PTHREAD_CANCEL_ENABLE :: 0

    PTHREAD_CONDATTR_T_SIZE ¶

    PTHREAD_CONDATTR_T_SIZE :: 4

    PTHREAD_COND_T_SIZE ¶

    PTHREAD_COND_T_SIZE :: 48

    PTHREAD_CREATE_DETACHED ¶

    PTHREAD_CREATE_DETACHED :: 1

    PTHREAD_CREATE_JOINABLE ¶

    PTHREAD_CREATE_JOINABLE :: 0
     

    TODO(tetra, 2019-11-01): Maybe make enum c.ints for these?

    PTHREAD_EXPLICIT_SCHED ¶

    PTHREAD_EXPLICIT_SCHED :: 1

    PTHREAD_INHERIT_SCHED ¶

    PTHREAD_INHERIT_SCHED :: 0

    PTHREAD_MUTEXATTR_T_SIZE ¶

    PTHREAD_MUTEXATTR_T_SIZE :: 4

    PTHREAD_MUTEX_ERRORCHECK ¶

    PTHREAD_MUTEX_ERRORCHECK :: 2

    PTHREAD_MUTEX_NORMAL ¶

    PTHREAD_MUTEX_NORMAL :: 0

    PTHREAD_MUTEX_RECURSIVE ¶

    PTHREAD_MUTEX_RECURSIVE :: 1

    PTHREAD_MUTEX_T_SIZE ¶

    PTHREAD_MUTEX_T_SIZE :: 40

    PTHREAD_PROCESS_PRIVATE ¶

    PTHREAD_PROCESS_PRIVATE :: 0

    PTHREAD_PROCESS_SHARED ¶

    PTHREAD_PROCESS_SHARED :: 1

    PTHREAD_RWLOCKATTR_T_SIZE ¶

    PTHREAD_RWLOCKATTR_T_SIZE :: 8

    PTHREAD_RWLOCK_T_SIZE ¶

    PTHREAD_RWLOCK_T_SIZE :: 56

    SCHED_FIFO ¶

    SCHED_FIFO :: 1

    SCHED_OTHER ¶

    SCHED_OTHER :: 0

    SCHED_RR ¶

    SCHED_RR :: 2
     

    Round robin.

    SEM_T_SIZE ¶

    SEM_T_SIZE :: 32

    SYS__sysctl ¶

    SYS__sysctl: uintptr : 156

    SYS_accept ¶

    SYS_accept: uintptr : 43

    SYS_accept4 ¶

    SYS_accept4: uintptr : 288

    SYS_access ¶

    SYS_access: uintptr : 21

    SYS_acct ¶

    SYS_acct: uintptr : 163

    SYS_add_key ¶

    SYS_add_key: uintptr : 248

    SYS_adjtimex ¶

    SYS_adjtimex: uintptr : 159

    SYS_afs_syscall ¶

    SYS_afs_syscall: uintptr : 183

    SYS_alarm ¶

    SYS_alarm: uintptr : 37

    SYS_arch_prctl ¶

    SYS_arch_prctl: uintptr : 158

    SYS_bind ¶

    SYS_bind: uintptr : 49

    SYS_bpf ¶

    SYS_bpf: uintptr : 321

    SYS_brk ¶

    SYS_brk: uintptr : 12

    SYS_capget ¶

    SYS_capget: uintptr : 125

    SYS_capset ¶

    SYS_capset: uintptr : 126

    SYS_chdir ¶

    SYS_chdir: uintptr : 80

    SYS_chmod ¶

    SYS_chmod: uintptr : 90

    SYS_chown ¶

    SYS_chown: uintptr : 92

    SYS_chroot ¶

    SYS_chroot: uintptr : 161

    SYS_clock_adjtime ¶

    SYS_clock_adjtime: uintptr : 305

    SYS_clock_getres ¶

    SYS_clock_getres: uintptr : 229

    SYS_clock_gettime ¶

    SYS_clock_gettime: uintptr : 228

    SYS_clock_nanosleep ¶

    SYS_clock_nanosleep: uintptr : 230

    SYS_clock_settime ¶

    SYS_clock_settime: uintptr : 227

    SYS_clone ¶

    SYS_clone: uintptr : 56

    SYS_clone3 ¶

    SYS_clone3: uintptr : 435

    SYS_close ¶

    SYS_close: uintptr : 3

    SYS_close_range ¶

    SYS_close_range: uintptr : 436

    SYS_connect ¶

    SYS_connect: uintptr : 42

    SYS_copy_file_range ¶

    SYS_copy_file_range: uintptr : 326

    SYS_creat ¶

    SYS_creat: uintptr : 85

    SYS_create_module ¶

    SYS_create_module: uintptr : 174

    SYS_delete_module ¶

    SYS_delete_module: uintptr : 176

    SYS_dup ¶

    SYS_dup: uintptr : 32

    SYS_dup2 ¶

    SYS_dup2: uintptr : 33

    SYS_dup3 ¶

    SYS_dup3: uintptr : 292

    SYS_epoll_create ¶

    SYS_epoll_create: uintptr : 213

    SYS_epoll_create1 ¶

    SYS_epoll_create1: uintptr : 291

    SYS_epoll_ctl ¶

    SYS_epoll_ctl: uintptr : 233

    SYS_epoll_ctl_old ¶

    SYS_epoll_ctl_old: uintptr : 214

    SYS_epoll_pwait ¶

    SYS_epoll_pwait: uintptr : 281

    SYS_epoll_pwait2 ¶

    SYS_epoll_pwait2: uintptr : 441

    SYS_epoll_wait ¶

    SYS_epoll_wait: uintptr : 232

    SYS_epoll_wait_old ¶

    SYS_epoll_wait_old: uintptr : 215

    SYS_eventfd ¶

    SYS_eventfd: uintptr : 284

    SYS_eventfd2 ¶

    SYS_eventfd2: uintptr : 290

    SYS_execve ¶

    SYS_execve: uintptr : 59

    SYS_execveat ¶

    SYS_execveat: uintptr : 322

    SYS_exit ¶

    SYS_exit: uintptr : 60

    SYS_exit_group ¶

    SYS_exit_group: uintptr : 231

    SYS_faccessat ¶

    SYS_faccessat: uintptr : 269

    SYS_faccessat2 ¶

    SYS_faccessat2: uintptr : 439

    SYS_fadvise64 ¶

    SYS_fadvise64: uintptr : 221

    SYS_fallocate ¶

    SYS_fallocate: uintptr : 285

    SYS_fanotify_init ¶

    SYS_fanotify_init: uintptr : 300

    SYS_fanotify_mark ¶

    SYS_fanotify_mark: uintptr : 301

    SYS_fchdir ¶

    SYS_fchdir: uintptr : 81

    SYS_fchmod ¶

    SYS_fchmod: uintptr : 91

    SYS_fchmodat ¶

    SYS_fchmodat: uintptr : 268

    SYS_fchown ¶

    SYS_fchown: uintptr : 93

    SYS_fchownat ¶

    SYS_fchownat: uintptr : 260

    SYS_fcntl ¶

    SYS_fcntl: uintptr : 72

    SYS_fdatasync ¶

    SYS_fdatasync: uintptr : 75

    SYS_fgetxattr ¶

    SYS_fgetxattr: uintptr : 193

    SYS_finit_module ¶

    SYS_finit_module: uintptr : 313

    SYS_flistxattr ¶

    SYS_flistxattr: uintptr : 196

    SYS_flock ¶

    SYS_flock: uintptr : 73

    SYS_fork ¶

    SYS_fork: uintptr : 57

    SYS_fremovexattr ¶

    SYS_fremovexattr: uintptr : 199

    SYS_fsconfig ¶

    SYS_fsconfig: uintptr : 431

    SYS_fsetxattr ¶

    SYS_fsetxattr: uintptr : 190

    SYS_fsmount ¶

    SYS_fsmount: uintptr : 432

    SYS_fsopen ¶

    SYS_fsopen: uintptr : 430

    SYS_fspick ¶

    SYS_fspick: uintptr : 433

    SYS_fstat ¶

    SYS_fstat: uintptr : 5

    SYS_fstatat ¶

    SYS_fstatat: uintptr : 262

    SYS_fstatfs ¶

    SYS_fstatfs: uintptr : 138

    SYS_fsync ¶

    SYS_fsync: uintptr : 74

    SYS_ftruncate ¶

    SYS_ftruncate: uintptr : 77

    SYS_futex ¶

    SYS_futex: uintptr : 202

    SYS_futimesat ¶

    SYS_futimesat: uintptr : 261

    SYS_get_kernel_syms ¶

    SYS_get_kernel_syms: uintptr : 177

    SYS_get_mempolicy ¶

    SYS_get_mempolicy: uintptr : 239

    SYS_get_robust_list ¶

    SYS_get_robust_list: uintptr : 274

    SYS_get_thread_area ¶

    SYS_get_thread_area: uintptr : 211

    SYS_getcpu ¶

    SYS_getcpu: uintptr : 309

    SYS_getcwd ¶

    SYS_getcwd: uintptr : 79

    SYS_getdents ¶

    SYS_getdents: uintptr : 78

    SYS_getdents64 ¶

    SYS_getdents64: uintptr : 217

    SYS_getegid ¶

    SYS_getegid: uintptr : 108

    SYS_geteuid ¶

    SYS_geteuid: uintptr : 107

    SYS_getgid ¶

    SYS_getgid: uintptr : 104

    SYS_getgroups ¶

    SYS_getgroups: uintptr : 115

    SYS_getitimer ¶

    SYS_getitimer: uintptr : 36

    SYS_getpeername ¶

    SYS_getpeername: uintptr : 52

    SYS_getpgid ¶

    SYS_getpgid: uintptr : 121

    SYS_getpgrp ¶

    SYS_getpgrp: uintptr : 111

    SYS_getpid ¶

    SYS_getpid: uintptr : 39

    SYS_getpmsg ¶

    SYS_getpmsg: uintptr : 181

    SYS_getppid ¶

    SYS_getppid: uintptr : 110

    SYS_getpriority ¶

    SYS_getpriority: uintptr : 140

    SYS_getrandom ¶

    SYS_getrandom: uintptr : 318

    SYS_getresgid ¶

    SYS_getresgid: uintptr : 120

    SYS_getresuid ¶

    SYS_getresuid: uintptr : 118

    SYS_getrlimit ¶

    SYS_getrlimit: uintptr : 97

    SYS_getrusage ¶

    SYS_getrusage: uintptr : 98

    SYS_getsid ¶

    SYS_getsid: uintptr : 124

    SYS_getsockname ¶

    SYS_getsockname: uintptr : 51

    SYS_getsockopt ¶

    SYS_getsockopt: uintptr : 55

    SYS_gettid ¶

    SYS_gettid: uintptr : 186

    SYS_gettimeofday ¶

    SYS_gettimeofday: uintptr : 96

    SYS_getuid ¶

    SYS_getuid: uintptr : 102

    SYS_getxattr ¶

    SYS_getxattr: uintptr : 191

    SYS_init_module ¶

    SYS_init_module: uintptr : 175

    SYS_inotify_add_watch ¶

    SYS_inotify_add_watch: uintptr : 254

    SYS_inotify_init ¶

    SYS_inotify_init: uintptr : 253

    SYS_inotify_init1 ¶

    SYS_inotify_init1: uintptr : 294

    SYS_inotify_rm_watch ¶

    SYS_inotify_rm_watch: uintptr : 255

    SYS_io_cancel ¶

    SYS_io_cancel: uintptr : 210

    SYS_io_destroy ¶

    SYS_io_destroy: uintptr : 207

    SYS_io_getevents ¶

    SYS_io_getevents: uintptr : 208

    SYS_io_pgetevents ¶

    SYS_io_pgetevents: uintptr : 333

    SYS_io_setup ¶

    SYS_io_setup: uintptr : 206

    SYS_io_submit ¶

    SYS_io_submit: uintptr : 209

    SYS_io_uring_enter ¶

    SYS_io_uring_enter: uintptr : 426

    SYS_io_uring_register ¶

    SYS_io_uring_register: uintptr : 427

    SYS_io_uring_setup ¶

    SYS_io_uring_setup: uintptr : 425

    SYS_ioctl ¶

    SYS_ioctl: uintptr : 16

    SYS_ioperm ¶

    SYS_ioperm: uintptr : 173

    SYS_iopl ¶

    SYS_iopl: uintptr : 172

    SYS_ioprio_get ¶

    SYS_ioprio_get: uintptr : 252

    SYS_ioprio_set ¶

    SYS_ioprio_set: uintptr : 251

    SYS_kcmp ¶

    SYS_kcmp: uintptr : 312

    SYS_kexec_file_load ¶

    SYS_kexec_file_load: uintptr : 320

    SYS_kexec_load ¶

    SYS_kexec_load: uintptr : 246

    SYS_keyctl ¶

    SYS_keyctl: uintptr : 250

    SYS_kill ¶

    SYS_kill: uintptr : 62

    SYS_landlock_add_rule ¶

    SYS_landlock_add_rule: uintptr : 445

    SYS_landlock_create_ruleset ¶

    SYS_landlock_create_ruleset: uintptr : 444

    SYS_landlock_restrict_self ¶

    SYS_landlock_restrict_self: uintptr : 446

    SYS_lchown ¶

    SYS_lchown: uintptr : 94

    SYS_lgetxattr ¶

    SYS_lgetxattr: uintptr : 192
    SYS_link: uintptr : 86

    SYS_linkat ¶

    SYS_linkat: uintptr : 265

    SYS_listen ¶

    SYS_listen: uintptr : 50

    SYS_listxattr ¶

    SYS_listxattr: uintptr : 194

    SYS_llistxattr ¶

    SYS_llistxattr: uintptr : 195

    SYS_lookup_dcookie ¶

    SYS_lookup_dcookie: uintptr : 212

    SYS_lremovexattr ¶

    SYS_lremovexattr: uintptr : 198

    SYS_lseek ¶

    SYS_lseek: uintptr : 8

    SYS_lsetxattr ¶

    SYS_lsetxattr: uintptr : 189

    SYS_lstat ¶

    SYS_lstat: uintptr : 6

    SYS_madvise ¶

    SYS_madvise: uintptr : 28

    SYS_mbind ¶

    SYS_mbind: uintptr : 237

    SYS_membarrier ¶

    SYS_membarrier: uintptr : 324

    SYS_memfd_create ¶

    SYS_memfd_create: uintptr : 319

    SYS_memfd_secret ¶

    SYS_memfd_secret: uintptr : 447

    SYS_migrate_pages ¶

    SYS_migrate_pages: uintptr : 256

    SYS_mincore ¶

    SYS_mincore: uintptr : 27

    SYS_mkdir ¶

    SYS_mkdir: uintptr : 83

    SYS_mkdirat ¶

    SYS_mkdirat: uintptr : 258

    SYS_mknod ¶

    SYS_mknod: uintptr : 133

    SYS_mknodat ¶

    SYS_mknodat: uintptr : 259

    SYS_mlock ¶

    SYS_mlock: uintptr : 149

    SYS_mlock2 ¶

    SYS_mlock2: uintptr : 325

    SYS_mlockall ¶

    SYS_mlockall: uintptr : 151

    SYS_mmap ¶

    SYS_mmap: uintptr : 9

    SYS_modify_ldt ¶

    SYS_modify_ldt: uintptr : 154

    SYS_mount ¶

    SYS_mount: uintptr : 165

    SYS_mount_setattr ¶

    SYS_mount_setattr: uintptr : 442

    SYS_move_mount ¶

    SYS_move_mount: uintptr : 429

    SYS_move_pages ¶

    SYS_move_pages: uintptr : 279

    SYS_mprotect ¶

    SYS_mprotect: uintptr : 10

    SYS_mq_getsetattr ¶

    SYS_mq_getsetattr: uintptr : 245

    SYS_mq_notify ¶

    SYS_mq_notify: uintptr : 244

    SYS_mq_open ¶

    SYS_mq_open: uintptr : 240

    SYS_mq_timedreceive ¶

    SYS_mq_timedreceive: uintptr : 243

    SYS_mq_timedsend ¶

    SYS_mq_timedsend: uintptr : 242
    SYS_mq_unlink: uintptr : 241

    SYS_mremap ¶

    SYS_mremap: uintptr : 25

    SYS_msgctl ¶

    SYS_msgctl: uintptr : 71

    SYS_msgget ¶

    SYS_msgget: uintptr : 68

    SYS_msgrcv ¶

    SYS_msgrcv: uintptr : 70

    SYS_msgsnd ¶

    SYS_msgsnd: uintptr : 69

    SYS_msync ¶

    SYS_msync: uintptr : 26

    SYS_munlock ¶

    SYS_munlock: uintptr : 150

    SYS_munlockall ¶

    SYS_munlockall: uintptr : 152

    SYS_munmap ¶

    SYS_munmap: uintptr : 11

    SYS_name_to_handle_at ¶

    SYS_name_to_handle_at: uintptr : 303

    SYS_nanosleep ¶

    SYS_nanosleep: uintptr : 35

    SYS_nfsservctl ¶

    SYS_nfsservctl: uintptr : 180

    SYS_open ¶

    SYS_open: uintptr : 2

    SYS_open_by_handle_at ¶

    SYS_open_by_handle_at: uintptr : 304

    SYS_open_tree ¶

    SYS_open_tree: uintptr : 428

    SYS_openat ¶

    SYS_openat: uintptr : 257

    SYS_openat2 ¶

    SYS_openat2: uintptr : 437

    SYS_pause ¶

    SYS_pause: uintptr : 34

    SYS_perf_event_open ¶

    SYS_perf_event_open: uintptr : 298

    SYS_personality ¶

    SYS_personality: uintptr : 135

    SYS_pidfd_getfd ¶

    SYS_pidfd_getfd: uintptr : 438

    SYS_pidfd_open ¶

    SYS_pidfd_open: uintptr : 434

    SYS_pidfd_send_signal ¶

    SYS_pidfd_send_signal: uintptr : 424

    SYS_pipe ¶

    SYS_pipe: uintptr : 22

    SYS_pipe2 ¶

    SYS_pipe2: uintptr : 293

    SYS_pivot_root ¶

    SYS_pivot_root: uintptr : 155

    SYS_pkey_alloc ¶

    SYS_pkey_alloc: uintptr : 330

    SYS_pkey_free ¶

    SYS_pkey_free: uintptr : 331

    SYS_pkey_mprotect ¶

    SYS_pkey_mprotect: uintptr : 329

    SYS_poll ¶

    SYS_poll: uintptr : 7

    SYS_ppoll ¶

    SYS_ppoll: uintptr : 271

    SYS_prctl ¶

    SYS_prctl: uintptr : 157

    SYS_pread64 ¶

    SYS_pread64: uintptr : 17

    SYS_preadv ¶

    SYS_preadv: uintptr : 295

    SYS_preadv2 ¶

    SYS_preadv2: uintptr : 327

    SYS_prlimit64 ¶

    SYS_prlimit64: uintptr : 302

    SYS_process_madvise ¶

    SYS_process_madvise: uintptr : 440

    SYS_process_vm_readv ¶

    SYS_process_vm_readv: uintptr : 310

    SYS_process_vm_writev ¶

    SYS_process_vm_writev: uintptr : 311

    SYS_pselect6 ¶

    SYS_pselect6: uintptr : 270

    SYS_ptrace ¶

    SYS_ptrace: uintptr : 101

    SYS_putpmsg ¶

    SYS_putpmsg: uintptr : 182

    SYS_pwrite64 ¶

    SYS_pwrite64: uintptr : 18

    SYS_pwritev ¶

    SYS_pwritev: uintptr : 296

    SYS_pwritev2 ¶

    SYS_pwritev2: uintptr : 328

    SYS_query_module ¶

    SYS_query_module: uintptr : 178

    SYS_quotactl ¶

    SYS_quotactl: uintptr : 179

    SYS_read ¶

    SYS_read: uintptr : 0

    SYS_readahead ¶

    SYS_readahead: uintptr : 187
    SYS_readlink: uintptr : 89

    SYS_readlinkat ¶

    SYS_readlinkat: uintptr : 267

    SYS_readv ¶

    SYS_readv: uintptr : 19

    SYS_reboot ¶

    SYS_reboot: uintptr : 169

    SYS_recvfrom ¶

    SYS_recvfrom: uintptr : 45

    SYS_recvmmsg ¶

    SYS_recvmmsg: uintptr : 299

    SYS_recvmsg ¶

    SYS_recvmsg: uintptr : 47

    SYS_remap_file_pages ¶

    SYS_remap_file_pages: uintptr : 216

    SYS_removexattr ¶

    SYS_removexattr: uintptr : 197

    SYS_rename ¶

    SYS_rename: uintptr : 82

    SYS_renameat ¶

    SYS_renameat: uintptr : 264

    SYS_renameat2 ¶

    SYS_renameat2: uintptr : 316

    SYS_request_key ¶

    SYS_request_key: uintptr : 249

    SYS_restart_syscall ¶

    SYS_restart_syscall: uintptr : 219

    SYS_rmdir ¶

    SYS_rmdir: uintptr : 84

    SYS_rseq ¶

    SYS_rseq: uintptr : 334

    SYS_rt_sigaction ¶

    SYS_rt_sigaction: uintptr : 13

    SYS_rt_sigpending ¶

    SYS_rt_sigpending: uintptr : 127

    SYS_rt_sigprocmask ¶

    SYS_rt_sigprocmask: uintptr : 14

    SYS_rt_sigqueueinfo ¶

    SYS_rt_sigqueueinfo: uintptr : 129

    SYS_rt_sigreturn ¶

    SYS_rt_sigreturn: uintptr : 15

    SYS_rt_sigsuspend ¶

    SYS_rt_sigsuspend: uintptr : 130

    SYS_rt_sigtimedwait ¶

    SYS_rt_sigtimedwait: uintptr : 128

    SYS_rt_tgsigqueueinfo ¶

    SYS_rt_tgsigqueueinfo: uintptr : 297

    SYS_sched_get_priority_max ¶

    SYS_sched_get_priority_max: uintptr : 146

    SYS_sched_get_priority_min ¶

    SYS_sched_get_priority_min: uintptr : 147

    SYS_sched_getaffinity ¶

    SYS_sched_getaffinity: uintptr : 204

    SYS_sched_getattr ¶

    SYS_sched_getattr: uintptr : 315

    SYS_sched_getparam ¶

    SYS_sched_getparam: uintptr : 143

    SYS_sched_getscheduler ¶

    SYS_sched_getscheduler: uintptr : 145

    SYS_sched_rr_get_interval ¶

    SYS_sched_rr_get_interval: uintptr : 148

    SYS_sched_setaffinity ¶

    SYS_sched_setaffinity: uintptr : 203

    SYS_sched_setattr ¶

    SYS_sched_setattr: uintptr : 314

    SYS_sched_setparam ¶

    SYS_sched_setparam: uintptr : 142

    SYS_sched_setscheduler ¶

    SYS_sched_setscheduler: uintptr : 144

    SYS_sched_yield ¶

    SYS_sched_yield: uintptr : 24

    SYS_seccomp ¶

    SYS_seccomp: uintptr : 317

    SYS_security ¶

    SYS_security: uintptr : 185

    SYS_select ¶

    SYS_select: uintptr : 23

    SYS_semctl ¶

    SYS_semctl: uintptr : 66

    SYS_semget ¶

    SYS_semget: uintptr : 64

    SYS_semop ¶

    SYS_semop: uintptr : 65

    SYS_semtimedop ¶

    SYS_semtimedop: uintptr : 220

    SYS_sendfile ¶

    SYS_sendfile: uintptr : 40

    SYS_sendmmsg ¶

    SYS_sendmmsg: uintptr : 307

    SYS_sendmsg ¶

    SYS_sendmsg: uintptr : 46

    SYS_sendto ¶

    SYS_sendto: uintptr : 44

    SYS_set_mempolicy ¶

    SYS_set_mempolicy: uintptr : 238

    SYS_set_robust_list ¶

    SYS_set_robust_list: uintptr : 273

    SYS_set_thread_area ¶

    SYS_set_thread_area: uintptr : 205

    SYS_set_tid_address ¶

    SYS_set_tid_address: uintptr : 218

    SYS_setdomainname ¶

    SYS_setdomainname: uintptr : 171

    SYS_setfsgid ¶

    SYS_setfsgid: uintptr : 123

    SYS_setfsuid ¶

    SYS_setfsuid: uintptr : 122

    SYS_setgid ¶

    SYS_setgid: uintptr : 106

    SYS_setgroups ¶

    SYS_setgroups: uintptr : 116

    SYS_sethostname ¶

    SYS_sethostname: uintptr : 170

    SYS_setitimer ¶

    SYS_setitimer: uintptr : 38

    SYS_setns ¶

    SYS_setns: uintptr : 308

    SYS_setpgid ¶

    SYS_setpgid: uintptr : 109

    SYS_setpriority ¶

    SYS_setpriority: uintptr : 141

    SYS_setregid ¶

    SYS_setregid: uintptr : 114

    SYS_setresgid ¶

    SYS_setresgid: uintptr : 119

    SYS_setresuid ¶

    SYS_setresuid: uintptr : 117

    SYS_setreuid ¶

    SYS_setreuid: uintptr : 113

    SYS_setrlimit ¶

    SYS_setrlimit: uintptr : 160

    SYS_setsid ¶

    SYS_setsid: uintptr : 112

    SYS_setsockopt ¶

    SYS_setsockopt: uintptr : 54

    SYS_settimeofday ¶

    SYS_settimeofday: uintptr : 164

    SYS_setuid ¶

    SYS_setuid: uintptr : 105

    SYS_setxattr ¶

    SYS_setxattr: uintptr : 188

    SYS_shmat ¶

    SYS_shmat: uintptr : 30

    SYS_shmctl ¶

    SYS_shmctl: uintptr : 31

    SYS_shmdt ¶

    SYS_shmdt: uintptr : 67

    SYS_shmget ¶

    SYS_shmget: uintptr : 29

    SYS_shutdown ¶

    SYS_shutdown: uintptr : 48

    SYS_sigaltstack ¶

    SYS_sigaltstack: uintptr : 131

    SYS_signalfd ¶

    SYS_signalfd: uintptr : 282

    SYS_signalfd4 ¶

    SYS_signalfd4: uintptr : 289

    SYS_socket ¶

    SYS_socket: uintptr : 41

    SYS_socketpair ¶

    SYS_socketpair: uintptr : 53

    SYS_splice ¶

    SYS_splice: uintptr : 275

    SYS_stat ¶

    SYS_stat: uintptr : 4

    SYS_statfs ¶

    SYS_statfs: uintptr : 137

    SYS_statx ¶

    SYS_statx: uintptr : 332

    SYS_swapoff ¶

    SYS_swapoff: uintptr : 168

    SYS_swapon ¶

    SYS_swapon: uintptr : 167
    SYS_symlink: uintptr : 88

    SYS_symlinkat ¶

    SYS_symlinkat: uintptr : 266

    SYS_sync ¶

    SYS_sync: uintptr : 162

    SYS_sync_file_range ¶

    SYS_sync_file_range: uintptr : 277

    SYS_syncfs ¶

    SYS_syncfs: uintptr : 306

    SYS_sysfs ¶

    SYS_sysfs: uintptr : 139

    SYS_sysinfo ¶

    SYS_sysinfo: uintptr : 99

    SYS_syslog ¶

    SYS_syslog: uintptr : 103

    SYS_tee ¶

    SYS_tee: uintptr : 276

    SYS_tgkill ¶

    SYS_tgkill: uintptr : 234

    SYS_time ¶

    SYS_time: uintptr : 201

    SYS_timer_create ¶

    SYS_timer_create: uintptr : 222

    SYS_timer_delete ¶

    SYS_timer_delete: uintptr : 226

    SYS_timer_getoverrun ¶

    SYS_timer_getoverrun: uintptr : 225

    SYS_timer_gettime ¶

    SYS_timer_gettime: uintptr : 224

    SYS_timer_settime ¶

    SYS_timer_settime: uintptr : 223

    SYS_timerfd_create ¶

    SYS_timerfd_create: uintptr : 283

    SYS_timerfd_gettime ¶

    SYS_timerfd_gettime: uintptr : 287

    SYS_timerfd_settime ¶

    SYS_timerfd_settime: uintptr : 286

    SYS_times ¶

    SYS_times: uintptr : 100

    SYS_tkill ¶

    SYS_tkill: uintptr : 200

    SYS_truncate ¶

    SYS_truncate: uintptr : 76

    SYS_tuxcall ¶

    SYS_tuxcall: uintptr : 184

    SYS_umask ¶

    SYS_umask: uintptr : 95

    SYS_umount2 ¶

    SYS_umount2: uintptr : 166

    SYS_uname ¶

    SYS_uname: uintptr : 63
    SYS_unlink: uintptr : 87

    SYS_unlinkat ¶

    SYS_unlinkat: uintptr : 263

    SYS_unshare ¶

    SYS_unshare: uintptr : 272

    SYS_uselib ¶

    SYS_uselib: uintptr : 134

    SYS_userfaultfd ¶

    SYS_userfaultfd: uintptr : 323

    SYS_ustat ¶

    SYS_ustat: uintptr : 136

    SYS_utime ¶

    SYS_utime: uintptr : 132

    SYS_utimensat ¶

    SYS_utimensat: uintptr : 280

    SYS_utimes ¶

    SYS_utimes: uintptr : 235

    SYS_vfork ¶

    SYS_vfork: uintptr : 58

    SYS_vhangup ¶

    SYS_vhangup: uintptr : 153

    SYS_vmsplice ¶

    SYS_vmsplice: uintptr : 278

    SYS_vserver ¶

    SYS_vserver: uintptr : 236

    SYS_wait4 ¶

    SYS_wait4: uintptr : 61

    SYS_waitid ¶

    SYS_waitid: uintptr : 247

    SYS_write ¶

    SYS_write: uintptr : 1

    SYS_writev ¶

    SYS_writev: uintptr : 20

    Variables

    This section is empty.

    Procedures

    boot_time_in_nanoseconds ¶

    boot_time_in_nanoseconds :: proc "c" () -> i64 {…}

    clock_gettime ¶

    clock_gettime :: proc "c" (clock_id: u64, timespec: ^timespec) -> i32 ---

    get_errno ¶

    get_errno :: proc "contextless" (res: int) -> i32 {…}

    inline_nanosleep ¶

    inline_nanosleep :: proc "c" (nanoseconds: i64) -> (remaining: timespec, res: i32) {…}

    nanosleep ¶

    nanosleep :: proc "c" (requested, remaining: ^timespec) -> i32 ---

    pthread_attr_destroy ¶

    pthread_attr_destroy :: proc "c" (attrs: ^pthread_attr_t) -> i32 ---

    pthread_attr_getschedparam ¶

    pthread_attr_getschedparam :: proc "c" (attrs: ^pthread_attr_t, param: ^sched_param) -> i32 ---

    pthread_attr_getschedpolicy ¶

    pthread_attr_getschedpolicy :: proc "c" (t: ^pthread_attr_t, policy: ^i32) -> i32 ---

    pthread_attr_getstack ¶

    pthread_attr_getstack :: proc "c" (attrs: ^pthread_attr_t, stack_ptr: ^rawptr, stack_size: ^u64) -> i32 ---

    pthread_attr_init ¶

    pthread_attr_init :: proc "c" (attrs: ^pthread_attr_t) -> i32 ---
     

    NOTE: POSIX says this can fail with OOM.

    pthread_attr_setdetachstate ¶

    pthread_attr_setdetachstate :: proc "c" (attrs: ^pthread_attr_t, detach_state: i32) -> i32 ---
     

    states: PTHREAD_CREATE_DETACHED, PTHREAD_CREATE_JOINABLE

    pthread_attr_setinheritsched ¶

    pthread_attr_setinheritsched :: proc "c" (attrs: ^pthread_attr_t, sched: i32) -> i32 ---
     

    scheds: PTHREAD_INHERIT_SCHED, PTHREAD_EXPLICIT_SCHED

    pthread_attr_setschedparam ¶

    pthread_attr_setschedparam :: proc "c" (attrs: ^pthread_attr_t, param: ^sched_param) -> i32 ---

    pthread_attr_setschedpolicy ¶

    pthread_attr_setschedpolicy :: proc "c" (t: ^pthread_attr_t, policy: i32) -> i32 ---

    pthread_attr_setstack ¶

    pthread_attr_setstack :: proc "c" (attrs: ^pthread_attr_t, stack_ptr: rawptr, stack_size: u64) -> i32 ---
     

    NOTE(tetra, 2019-11-06): WARNING: Different systems have different alignment requirements. For maximum usefulness, use the OS's page size. ALSO VERY MAJOR WARNING: stack_ptr must be the LAST byte of the stack on systems where the stack grows downwards, which is the common case, so far as I know. On systems where it grows upwards, give the FIRST byte instead. ALSO SLIGHTLY LESS MAJOR WARNING: Using this procedure DISABLES automatically-provided guard pages. If you are using this procedure, YOU must set them up manually. If you forget to do this, you WILL get stack corruption bugs if you do not EXTREMELY know what you are doing!

    pthread_cancel ¶

    pthread_cancel :: proc "c" (thread: pthread_t) -> i32 ---

    pthread_cond_broadcast ¶

    pthread_cond_broadcast :: proc "c" (cond: ^pthread_cond_t) -> i32 ---
     

    same as signal, but wakes up _all_ threads that are waiting

    pthread_cond_destroy ¶

    pthread_cond_destroy :: proc "c" (cond: ^pthread_cond_t) -> i32 ---

    pthread_cond_init ¶

    pthread_cond_init :: proc "c" (cond: ^pthread_cond_t, attrs: ^pthread_condattr_t) -> i32 ---
     

    NOTE: POSIX says this can fail with OOM.

    pthread_cond_signal ¶

    pthread_cond_signal :: proc "c" (cond: ^pthread_cond_t) -> i32 ---

    pthread_cond_timedwait ¶

    pthread_cond_timedwait :: proc "c" (cond: ^pthread_cond_t, mutex: ^pthread_mutex_t, timeout: ^timespec) -> i32 ---

    pthread_cond_wait ¶

    pthread_cond_wait :: proc "c" (cond: ^pthread_cond_t, mutex: ^pthread_mutex_t) -> i32 ---
     

    assumes the mutex is pre-locked

    pthread_condattr_destroy ¶

    pthread_condattr_destroy :: proc "c" (attrs: ^pthread_condattr_t) -> i32 ---

    pthread_condattr_getpshared ¶

    pthread_condattr_getpshared :: proc "c" (attrs: ^pthread_condattr_t, result: ^i32) -> i32 ---

    pthread_condattr_init ¶

    pthread_condattr_init :: proc "c" (attrs: ^pthread_condattr_t) -> i32 ---

    pthread_condattr_setpshared ¶

    pthread_condattr_setpshared :: proc "c" (attrs: ^pthread_condattr_t, value: i32) -> i32 ---
     

    p-shared = "process-shared" - i.e: is this condition shared among multiple processes? values: PTHREAD_PROCESS_PRIVATE, PTHREAD_PROCESS_SHARED

    pthread_create ¶

    pthread_create :: proc "c" (t: ^pthread_t, attrs: ^pthread_attr_t, routine: proc "c" (data: rawptr) -> rawptr, arg: rawptr) -> i32 ---

    pthread_equal ¶

    pthread_equal :: proc "c" (a, b: pthread_t) -> b32 ---

    pthread_join ¶

    pthread_join :: proc "c" (t: pthread_t, retval: ^rawptr) -> i32 ---
     

    retval is a pointer to a location to put the return value of the thread proc.

    pthread_kill ¶

    pthread_kill :: proc "c" (t: pthread_t, sig: i32) -> i32 ---

    pthread_mutex_destroy ¶

    pthread_mutex_destroy :: proc "c" (mutex: ^pthread_mutex_t) -> i32 ---

    pthread_mutex_init ¶

    pthread_mutex_init :: proc "c" (mutex: ^pthread_mutex_t, attrs: ^pthread_mutexattr_t) -> i32 ---
     

    NOTE: POSIX says this can fail with OOM.

    pthread_mutex_lock ¶

    pthread_mutex_lock :: proc "c" (mutex: ^pthread_mutex_t) -> i32 ---

    pthread_mutex_timedlock ¶

    pthread_mutex_timedlock :: proc "c" (mutex: ^pthread_mutex_t, timeout: ^timespec) -> i32 ---

    pthread_mutex_trylock ¶

    pthread_mutex_trylock :: proc "c" (mutex: ^pthread_mutex_t) -> i32 ---

    pthread_mutex_unlock ¶

    pthread_mutex_unlock :: proc "c" (mutex: ^pthread_mutex_t) -> i32 ---

    pthread_mutexattr_destroy ¶

    pthread_mutexattr_destroy :: proc "c" (attrs: ^pthread_mutexattr_t) -> i32 ---

    pthread_mutexattr_getpshared ¶

    pthread_mutexattr_getpshared :: proc "c" (attrs: ^pthread_mutexattr_t, result: ^i32) -> i32 ---

    pthread_mutexattr_init ¶

    pthread_mutexattr_init :: proc "c" (attrs: ^pthread_mutexattr_t) -> i32 ---

    pthread_mutexattr_setpshared ¶

    pthread_mutexattr_setpshared :: proc "c" (attrs: ^pthread_mutexattr_t, value: i32) -> i32 ---
     

    p-shared = "process-shared" - i.e: is this mutex shared among multiple processes? values: PTHREAD_PROCESS_PRIVATE, PTHREAD_PROCESS_SHARED

    pthread_mutexattr_settype ¶

    pthread_mutexattr_settype :: proc "c" (attrs: ^pthread_mutexattr_t, type: i32) -> i32 ---

    pthread_self ¶

    pthread_self :: proc "c" () -> pthread_t ---

    pthread_setcancelstate ¶

    pthread_setcancelstate :: proc "c" (state: i32, old_state: ^i32) -> i32 ---

    pthread_setcanceltype ¶

    pthread_setcanceltype :: proc "c" (type: i32, old_type: ^i32) -> i32 ---

    pthread_sigmask ¶

    pthread_sigmask :: proc "c" (how: i32, set: rawptr, oldset: rawptr) -> i32 ---

    pthread_yield ¶

    pthread_yield :: proc "c" () -> i32 ---
     

    NOTE: unclear whether pthread_yield is well-supported on Linux systems, see https://linux.die.net/man/3/pthread_yield

    sched_get_priority_max ¶

    sched_get_priority_max :: proc "c" (policy: i32) -> i32 ---

    sched_get_priority_min ¶

    sched_get_priority_min :: proc "c" (policy: i32) -> i32 ---

    sched_yield ¶

    sched_yield :: proc "c" () -> i32 ---

    seconds_since_boot ¶

    seconds_since_boot :: proc "c" () -> f64 {…}

    sem_destroy ¶

    sem_destroy :: proc "c" (sem: ^sem_t) -> i32 ---

    sem_init ¶

    sem_init :: proc "c" (sem: ^sem_t, pshared: i32, initial_value: u32) -> i32 ---

    sem_open ¶

    sem_open :: proc "c" (name: cstring, flags: i32) -> ^sem_t ---
     

    create named semaphore. used in process-shared semaphores.

    sem_post ¶

    sem_post :: proc "c" (sem: ^sem_t) -> i32 ---

    sem_trywait ¶

    sem_trywait :: proc "c" (sem: ^sem_t) -> i32 ---

    sem_wait ¶

    sem_wait :: proc "c" (sem: ^sem_t) -> i32 ---

    sleep ¶

    sleep :: proc "c" (seconds: u32) -> i32 ---

    sys_accept ¶

    sys_accept :: proc "contextless" (sd: int, addr: rawptr, len: rawptr) -> int {…}

    sys_access ¶

    sys_access :: proc "contextless" (path: cstring, mask: int) -> int {…}

    sys_bind ¶

    sys_bind :: proc "contextless" (sd: int, addr: rawptr, len: i32) -> int {…}

    sys_chdir ¶

    sys_chdir :: proc "contextless" (path: cstring) -> int {…}

    sys_chmod ¶

    sys_chmod :: proc "contextless" (path: cstring, mode: uint) -> int {…}

    sys_chown ¶

    sys_chown :: proc "contextless" (path: cstring, user: int, group: int) -> int {…}

    sys_close ¶

    sys_close :: proc "contextless" (fd: int) -> int {…}

    sys_connect ¶

    sys_connect :: proc "contextless" (sd: int, addr: rawptr, len: i32) -> int {…}

    sys_dup2 ¶

    sys_dup2 :: proc "contextless" (oldfd: int, newfd: int) -> int {…}

    sys_fchdir ¶

    sys_fchdir :: proc "contextless" (fd: int) -> int {…}

    sys_fchmod ¶

    sys_fchmod :: proc "contextless" (fd: int, mode: uint) -> int {…}

    sys_fchown ¶

    sys_fchown :: proc "contextless" (fd: int, user: int, group: int) -> int {…}

    sys_fcntl ¶

    sys_fcntl :: proc "contextless" (fd: int, cmd: int, arg: int) -> int {…}

    sys_fork ¶

    sys_fork :: proc "contextless" () -> int {…}

    sys_fstat ¶

    sys_fstat :: proc "contextless" (fd: int, stat: rawptr) -> int {…}

    sys_fsync ¶

    sys_fsync :: proc "contextless" (fd: int) -> int {…}

    sys_ftruncate ¶

    sys_ftruncate :: proc "contextless" (fd: int, length: i64) -> int {…}

    sys_getcwd ¶

    sys_getcwd :: proc "contextless" (buf: rawptr, size: uint) -> int {…}

    sys_getdents64 ¶

    sys_getdents64 :: proc "contextless" (fd: int, dirent: rawptr, count: int) -> int {…}

    sys_getrandom ¶

    sys_getrandom :: proc "contextless" (buf: [^]u8, buflen: uint, flags: int) -> int {…}

    sys_gettid ¶

    sys_gettid :: proc "contextless" () -> int {…}

    sys_lchown ¶

    sys_lchown :: proc "contextless" (path: cstring, user: int, group: int) -> int {…}
    sys_link :: proc "contextless" (old_name: cstring, new_name: cstring) -> int {…}

    sys_listen ¶

    sys_listen :: proc "contextless" (sd: int, backlog: int) -> int {…}

    sys_lseek ¶

    sys_lseek :: proc "contextless" (fd: int, offset: i64, whence: int) -> i64 {…}

    sys_lstat ¶

    sys_lstat :: proc "contextless" (path: cstring, stat: rawptr) -> int {…}

    sys_madvise ¶

    sys_madvise :: proc "contextless" (addr: rawptr, length: uint, advice: int) -> int {…}

    sys_mkdir ¶

    sys_mkdir :: proc "contextless" (path: cstring, mode: uint) -> int {…}

    sys_mkdirat ¶

    sys_mkdirat :: proc "contextless" (dfd: int, path: cstring, mode: uint) -> int {…}

    sys_mknod ¶

    sys_mknod :: proc "contextless" (path: cstring, mode: uint, dev: int) -> int {…}

    sys_mknodat ¶

    sys_mknodat :: proc "contextless" (dfd: int, path: cstring, mode: uint, dev: int) -> int {…}

    sys_mmap ¶

    sys_mmap :: proc "contextless" (
    	addr:            rawptr, 
    	length:          uint, 
    	prot, flags, fd: int, 
    	offset:          uintptr, 
    ) -> int {…}

    sys_mprotect ¶

    sys_mprotect :: proc "contextless" (addr: rawptr, length: uint, prot: int) -> int {…}

    sys_mremap ¶

    sys_mremap :: proc "contextless" (addr: rawptr, old_length, new_length: uint, flags: int, new_addr: rawptr = nil) -> int {…}

    sys_munmap ¶

    sys_munmap :: proc "contextless" (addr: rawptr, length: uint) -> int {…}

    sys_open ¶

    sys_open :: proc "contextless" (path: cstring, flags: int, mode: uint = 0o000) -> int {…}

    sys_openat ¶

    sys_openat :: proc "contextless" (dfd: int, path: cstring, flags: int, mode: uint = 0o000) -> int {…}

    sys_perf_event_open ¶

    sys_perf_event_open :: proc "contextless" (event_attr: rawptr, pid: i32, cpu: i32, group_fd: i32, flags: u32) -> int {…}

    sys_personality ¶

    sys_personality :: proc(persona: u64) -> int {…}

    sys_pipe2 ¶

    sys_pipe2 :: proc "contextless" (fds: rawptr, flags: int) -> int {…}

    sys_poll ¶

    sys_poll :: proc "contextless" (fds: rawptr, nfds: uint, timeout: int) -> int {…}

    sys_ppoll ¶

    sys_ppoll :: proc "contextless" (fds: rawptr, nfds: uint, timeout: rawptr, sigmask: rawptr, sigsetsize: uint) -> int {…}

    sys_pread ¶

    sys_pread :: proc "contextless" (fd: int, buf: rawptr, size: uint, offset: i64) -> int {…}

    sys_pwrite ¶

    sys_pwrite :: proc "contextless" (fd: int, buf: rawptr, size: uint, offset: i64) -> int {…}

    sys_read ¶

    sys_read :: proc "contextless" (fd: int, buf: rawptr, size: uint) -> int {…}
    sys_readlink :: proc "contextless" (path: cstring, buf: rawptr, bufsiz: uint) -> int {…}

    sys_recvfrom ¶

    sys_recvfrom :: proc "contextless" (
    	sd:    int, 
    	buf:   rawptr, 
    	len:   uint, 
    	flags: int, 
    	addr:  rawptr, 
    	alen:  uintptr, 
    ) -> i64 {…}

    sys_rename ¶

    sys_rename :: proc "contextless" (old, new: cstring) -> int {…}

    sys_rmdir ¶

    sys_rmdir :: proc "contextless" (path: cstring) -> int {…}

    sys_sendto ¶

    sys_sendto :: proc "contextless" (
    	sd:    int, 
    	buf:   rawptr, 
    	len:   uint, 
    	flags: int, 
    	addr:  rawptr, 
    	alen:  i32, 
    ) -> i64 {…}

    sys_setsockopt ¶

    sys_setsockopt :: proc "contextless" (sd: int, level: int, optname: int, optval: rawptr, optlen: i32) -> int {…}

    sys_shutdown ¶

    sys_shutdown :: proc "contextless" (sd: int, how: int) -> int {…}

    sys_socket ¶

    sys_socket :: proc "contextless" (domain: int, type: int, protocol: int) -> int {…}

    sys_stat ¶

    sys_stat :: proc "contextless" (path: cstring, stat: rawptr) -> int {…}
    sys_symlink :: proc "contextless" (old_name: cstring, new_name: cstring) -> int {…}

    sys_truncate ¶

    sys_truncate :: proc "contextless" (path: cstring, length: i64) -> int {…}
    sys_unlink :: proc "contextless" (path: cstring) -> int {…}

    sys_unlinkat ¶

    sys_unlinkat :: proc "contextless" (dfd: int, path: cstring, flag: int = 0) -> int {…}

    sys_utimensat ¶

    sys_utimensat :: proc "contextless" (dfd: int, path: cstring, times: rawptr, flags: int) -> int {…}
     

    NOTE: Unsure about if this works directly on 32 bit archs. It may need 32 bit version of the time struct. As of Linux 5.1, there is a utimensat_time64 function. Maybe use this in the future?

    sys_write ¶

    sys_write :: proc "contextless" (fd: int, buf: rawptr, size: uint) -> int {…}

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2024-04 (vendor "odin") Windows_amd64 @ 2024-04-26 21:08:58.786431400 +0000 UTC