aboutsummaryrefslogtreecommitdiff
path: root/core/sys/linux
diff options
context:
space:
mode:
authorLaytan <laytanlaats@hotmail.com>2024-10-13 20:05:03 +0200
committerGitHub <noreply@github.com>2024-10-13 20:05:03 +0200
commit0157ff1541d1ba3c76eb54f694a1a20262ef4b97 (patch)
tree6fcdfd52a71663a4a08113a7fda583483d3f25b1 /core/sys/linux
parent591f827e5f5d5bef5953b84f77be1631e088a00a (diff)
parent5cd1784d4186e2c2f562c815a7929b52b48e69c5 (diff)
Merge pull request #4118 from andradei/posix-linux
Linux POSIX support
Diffstat (limited to 'core/sys/linux')
-rw-r--r--core/sys/linux/bits.odin97
1 files changed, 37 insertions, 60 deletions
diff --git a/core/sys/linux/bits.odin b/core/sys/linux/bits.odin
index 8a4a6dd7a..9f2c7a5d8 100644
--- a/core/sys/linux/bits.odin
+++ b/core/sys/linux/bits.odin
@@ -152,66 +152,43 @@ Errno :: enum i32 {
RDONLY flag is not present, because it has the value of 0, i.e. it is the
default, unless WRONLY or RDWR is specified.
*/
-when ODIN_ARCH != .arm64 && ODIN_ARCH != .arm32 {
- Open_Flags_Bits :: enum {
- WRONLY = 0,
- RDWR = 1,
- 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)
-
-} else {
- Open_Flags_Bits :: enum {
- WRONLY = 0,
- RDWR = 1,
- CREAT = 6,
- EXCL = 7,
- NOCTTY = 8,
- TRUNC = 9,
- APPEND = 10,
- NONBLOCK = 11,
- DSYNC = 12,
- ASYNC = 13,
- DIRECTORY = 14,
- NOFOLLOW = 15,
- DIRECT = 16,
- LARGEFILE = 17,
- NOATIME = 18,
- CLOEXEC = 19,
- PATH = 21,
- }
-}
+Open_Flags_Bits :: enum {
+ WRONLY = 0,
+ RDWR = 1,
+ 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