From eaab17f8fb2c9dd084a16c337d61b0bf10a5d236 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Sun, 5 May 2024 14:16:21 +0200 Subject: [PATCH] sys/linux: fix open bits --- core/sys/linux/bits.odin | 49 ++++++++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 15 deletions(-) diff --git a/core/sys/linux/bits.odin b/core/sys/linux/bits.odin index 4db689643..cfae06013 100644 --- a/core/sys/linux/bits.odin +++ b/core/sys/linux/bits.odin @@ -153,23 +153,42 @@ Errno :: enum i32 { Open_Flags_Bits :: enum { WRONLY = 0, RDWR = 1, - CREAT = 8, - EXCL = 9, - NOCTTY = 10, - TRUNC = 11, - APPEND = 12, - NONBLOCK = 14, - DSYNC = 16, - ASYNC = 17, - DIRECT = 18, - LARGEFILE = 20, - DIRECTORY = 21, - NOFOLLOW = 22, - NOATIME = 24, - CLOEXEC = 25, - PATH = 28, + CREAT = 6, + EXCL = 7, + NOCTTY = 8, + TRUNC = 9, + APPEND = 10, + NONBLOCK = 11, + DSYNC = 12, + ASYNC = 13, + DIRECT = 14, + LARGEFILE = 15, + DIRECTORY = 16, + NOFOLLOW = 17, + NOATIME = 18, + CLOEXEC = 19, + PATH = 21, } +// https://github.com/torvalds/linux/blob/7367539ad4b0f8f9b396baf02110962333719a48/include/uapi/asm-generic/fcntl.h#L19 +#assert(1 << uint(Open_Flags_Bits.WRONLY) == 0o0000000_1) +#assert(1 << uint(Open_Flags_Bits.RDWR) == 0o0000000_2) +#assert(1 << uint(Open_Flags_Bits.CREAT) == 0o00000_100) +#assert(1 << uint(Open_Flags_Bits.EXCL) == 0o00000_200) +#assert(1 << uint(Open_Flags_Bits.NOCTTY) == 0o00000_400) +#assert(1 << uint(Open_Flags_Bits.TRUNC) == 0o0000_1000) +#assert(1 << uint(Open_Flags_Bits.APPEND) == 0o0000_2000) +#assert(1 << uint(Open_Flags_Bits.NONBLOCK) == 0o0000_4000) +#assert(1 << uint(Open_Flags_Bits.DSYNC) == 0o000_10000) +#assert(1 << uint(Open_Flags_Bits.ASYNC) == 0o000_20000) +#assert(1 << uint(Open_Flags_Bits.DIRECT) == 0o000_40000) +#assert(1 << uint(Open_Flags_Bits.LARGEFILE) == 0o00_100000) +#assert(1 << uint(Open_Flags_Bits.DIRECTORY) == 0o00_200000) +#assert(1 << uint(Open_Flags_Bits.NOFOLLOW) == 0o00_400000) +#assert(1 << uint(Open_Flags_Bits.NOATIME) == 0o0_1000000) +#assert(1 << uint(Open_Flags_Bits.CLOEXEC) == 0o0_2000000) +#assert(1 << uint(Open_Flags_Bits.PATH) == 0o_10000000) + /* Bits for FD_Flags bitset */