Skip to content

Commit 9712624

Browse files
bc-universelaytan
andauthored
Implement more Linux syscalls (#5705)
* Implement some more Linux syscalls * Fixed typo and removed stray comments * Correct types for some syscalls * Fix types and add variadic argument for prctl * flag fixes * when x86/amd64 only * more fixes --------- Co-authored-by: Laytan Laats <[email protected]>
1 parent 5e3648b commit 9712624

File tree

4 files changed

+372
-31
lines changed

4 files changed

+372
-31
lines changed

core/sys/linux/bits.odin

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2226,3 +2226,46 @@ IO_Uring_Submission_Queue_Flags_Bits :: enum {
22262226
CQ_OVERFLOW,
22272227
TASKRUN,
22282228
}
2229+
2230+
Mount_Flags_Bits :: enum {
2231+
RDONLY = log2(1),
2232+
NOSUID = log2(2),
2233+
NODEV = log2(4),
2234+
NOEXEC = log2(8),
2235+
SYNCHRONOUS = log2(16),
2236+
REMOUNT = log2(32),
2237+
MANDLOCK = log2(64),
2238+
DIRSYNC = log2(128),
2239+
NOATIME = log2(1024),
2240+
NODIRATIME = log2(2048),
2241+
BIND = log2(4096),
2242+
MOVE = log2(8192),
2243+
REC = log2(16384),
2244+
SILENT = log2(32768),
2245+
POSIXACL = log2(1<<16),
2246+
UNBINDABLE = log2(1<<17),
2247+
PRIVATE = log2(1<<18),
2248+
SLAVE = log2(1<<19),
2249+
SHARED = log2(1<<20),
2250+
RELATIME = log2(1<<21),
2251+
KERNMOUNT = log2(1<<22),
2252+
I_VERSION = log2(1<<23),
2253+
STRICTATIME = log2(1<<24),
2254+
LAZYTIME = log2(1<<25),
2255+
ACTIVE = log2(1<<30),
2256+
NOUSER = log2(1<<31),
2257+
NOSYMFOLLOW = log2(256),
2258+
}
2259+
2260+
Umount2_Flags_Bits :: enum {
2261+
MNT_FORCE = log2(0x00000001),
2262+
MNT_DETACH = log2(0x00000002),
2263+
MNT_EXPIRE = log2(0x00000004),
2264+
UMOUNT_NOFOLLOW = log2(0x00000008),
2265+
UMOUNT_UNUSED = log2(0x80000000),
2266+
}
2267+
2268+
Swap_Flags_Bits :: enum {
2269+
PREFER = log2(0x8000),
2270+
DISCARD = log2(0x10000),
2271+
}

core/sys/linux/constants.odin

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ PRIO_MIN :: -20
5454
SIGRTMIN :: Signal(32)
5555
SIGRTMAX :: Signal(64)
5656

57+
_NSIG :: 65
58+
5759
S_IFMT :: Mode{.IFREG, .IFDIR, .IFCHR, .IFIFO}
5860
S_IFSOCK :: Mode{.IFREG, .IFDIR}
5961
S_IFLNK :: Mode{.IFREG, .IFCHR}
@@ -405,3 +407,6 @@ IORING_OFF_SQES :: 0x10000000
405407
IORING_OFF_PBUF_RING :: 0x80000000
406408
IORING_OFF_PBUF_SHIFT :: 16
407409
IORING_OFF_MMAP_MASK :: 0xf8000000
410+
411+
SWAP_FLAG_PRIO_SHIFT :: u32(0)
412+
SWAP_FLAG_PRIO_MASK :: u32(0x7fff)

0 commit comments

Comments
 (0)