diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2024-04-15 12:28:59 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-15 12:28:59 +0100 |
| commit | c7ac28f6a14fc7463bafa6da76831967cc27abe2 (patch) | |
| tree | 4584daad30f13e4270ae92db7036e96a1dac936e /core/sys/linux | |
| parent | 758ace844c6c39acb32adaead87c56caf337de82 (diff) | |
| parent | 4bfa1ea76c93e6cb6ba234a39f8628f881a09c12 (diff) | |
Merge pull request #3434 from flysand7/sys-linux-fixes
[sys/linux]: Fix syscall calls for open and fstat
Diffstat (limited to 'core/sys/linux')
| -rw-r--r-- | core/sys/linux/sys.odin | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/core/sys/linux/sys.odin b/core/sys/linux/sys.odin index 54a34fbea..63fb3b776 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) } } |