aboutsummaryrefslogtreecommitdiff
path: root/core/sys/linux
diff options
context:
space:
mode:
Diffstat (limited to 'core/sys/linux')
-rw-r--r--core/sys/linux/constants.odin2
-rw-r--r--core/sys/linux/sys.odin7
2 files changed, 5 insertions, 4 deletions
diff --git a/core/sys/linux/constants.odin b/core/sys/linux/constants.odin
index 51f7db68f..389ff1417 100644
--- a/core/sys/linux/constants.odin
+++ b/core/sys/linux/constants.odin
@@ -5,6 +5,8 @@ package linux
that relative paths are relative to current directory.
*/
AT_FDCWD :: Fd(-100)
+AT_EMPTY_PATH :: 0x1000
+AT_SYMLINK_NOFOLLOW :: 0x100
/*
Special value to put into timespec for utimensat() to set timestamp to the current time.
diff --git a/core/sys/linux/sys.odin b/core/sys/linux/sys.odin
index 63fb3b776..22fe2ab50 100644
--- a/core/sys/linux/sys.odin
+++ b/core/sys/linux/sys.odin
@@ -769,8 +769,7 @@ execve :: proc "contextless" (name: cstring, argv: [^]cstring, envp: [^]cstring)
ret := syscall(SYS_execve, cast(rawptr) name, cast(rawptr) argv, cast(rawptr) envp)
return Errno(-ret)
} else {
- ret := syscall(SYS_execveat, AT_FDCWD, cast(rawptr) name, cast(rawptr) argv, cast(rawptr) envp)
- return Errno(-ret)
+ return execveat(AT_FDCWD, name, argv, envp, 0)
}
}
@@ -2803,8 +2802,8 @@ getrandom :: proc "contextless" (buf: []u8, flags: Get_Random_Flags) -> (int, Er
Execute program relative to a directory file descriptor.
Available since Linux 3.19.
*/
-execveat :: proc "contextless" (dirfd: Fd, name: cstring, argv: [^]cstring, envp: [^]cstring) -> (Errno) {
- ret := syscall(SYS_execveat, dirfd, cast(rawptr) name, cast(rawptr) argv, cast(rawptr) envp)
+execveat :: proc "contextless" (dirfd: Fd, name: cstring, argv: [^]cstring, envp: [^]cstring, flags: i32) -> (Errno) {
+ ret := syscall(SYS_execveat, dirfd, cast(rawptr) name, cast(rawptr) argv, cast(rawptr) envp, flags)
return Errno(-ret)
}