aboutsummaryrefslogtreecommitdiff
path: root/core/sys/linux
diff options
context:
space:
mode:
authorflysand7 <thebumboni@gmail.com>2024-04-15 22:16:03 +1100
committerflysand7 <thebumboni@gmail.com>2024-04-15 22:16:03 +1100
commit4bfa1ea76c93e6cb6ba234a39f8628f881a09c12 (patch)
tree31f566f6fd7c77325f3159aac7c8006bc8c75580 /core/sys/linux
parentd510d5e49f0164753e8764dcb735bf2477c50a07 (diff)
[sys/linux]: Fix syscall calls for open and fstat
Diffstat (limited to 'core/sys/linux')
-rw-r--r--core/sys/linux/sys.odin8
1 files changed, 4 insertions, 4 deletions
diff --git a/core/sys/linux/sys.odin b/core/sys/linux/sys.odin
index 869ce88e3..e94d3015b 100644
--- a/core/sys/linux/sys.odin
+++ b/core/sys/linux/sys.odin
@@ -40,10 +40,10 @@ write :: proc "contextless" (fd: Fd, buf: []u8) -> (int, Errno) {
*/
open :: proc "contextless" (name: cstring, flags: Open_Flags, mode: Mode = {}) -> (Fd, Errno) {
when ODIN_ARCH == .arm64 {
- ret := syscall(SYS_openat, AT_FDCWD, transmute(uintptr) name, transmute(u32) mode)
+ ret := syscall(SYS_openat, AT_FDCWD, transmute(uintptr) name, transmute(u32) flags, transmute(u32) mode)
return errno_unwrap(ret, Fd)
} else {
- ret := syscall(SYS_open, transmute(uintptr) name, transmute(u32) mode)
+ ret := syscall(SYS_open, transmute(uintptr) name, transmute(u32) flags, transmute(u32) mode)
return errno_unwrap(ret, Fd)
}
}
@@ -91,10 +91,10 @@ stat :: proc "contextless" (filename: cstring, stat: ^Stat) -> (Errno) {
*/
fstat :: proc "contextless" (fd: Fd, stat: ^Stat) -> (Errno) {
when size_of(int) == 8 {
- ret := syscall(SYS_fstat, stat)
+ ret := syscall(SYS_fstat, cast(i32) fd, stat)
return Errno(-ret)
} else {
- ret := syscall(SYS_fstat64, stat)
+ ret := syscall(SYS_fstat64, cast(i32) fd, stat)
return Errno(-ret)
}
}