Remove returned bool from access and faccessat in sys/linux.

Switch to using AT_EMPTY_PATH to execve with file descriptors.
This commit is contained in:
jason
2024-08-04 00:59:40 -04:00
parent 2b89829b52
commit 2a7db08c20
3 changed files with 45 additions and 24 deletions
+7 -7
View File
@@ -279,13 +279,13 @@ writev :: proc "contextless" (fd: Fd, iov: []IO_Vec) -> (int, Errno) {
Available since Linux 1.0.
For ARM64 available since Linux 2.6.16.
*/
access :: proc "contextless" (name: cstring, mode: Mode = F_OK) -> (bool, Errno) {
access :: proc "contextless" (name: cstring, mode: Mode = F_OK) -> (Errno) {
when ODIN_ARCH == .arm64 {
ret := syscall(SYS_faccessat, AT_FDCWD, cast(rawptr) name, transmute(u32) mode)
return errno_unwrap(ret, bool)
return Errno(-ret)
} else {
ret := syscall(SYS_access, cast(rawptr) name, transmute(u32) mode)
return errno_unwrap(ret, bool)
return Errno(-ret)
}
}
@@ -2616,9 +2616,9 @@ fchmodat :: proc "contextless" (dirfd: Fd, name: cstring, mode: Mode, flags: FD_
Checks the user permissions for a file at specified dirfd.
Available since Linux 2.6.16.
*/
faccessat :: proc "contextless" (dirfd: Fd, name: cstring, mode: Mode = F_OK) -> (bool, Errno) {
faccessat :: proc "contextless" (dirfd: Fd, name: cstring, mode: Mode = F_OK) -> (Errno) {
ret := syscall(SYS_faccessat, dirfd, cast(rawptr) name, transmute(u32) mode)
return errno_unwrap(ret, bool)
return Errno(-ret)
}
/*
@@ -2916,9 +2916,9 @@ pidfd_getfd :: proc "contextless" (pidfd: Pid_FD, fd: Fd, flags: i32 = 0) -> (Fd
Checks the user permissions for a file at specified dirfd (with flags).
Available since Linux 5.8.
*/
faccessat2 :: proc "contextless" (dirfd: Fd, name: cstring, mode: Mode = F_OK, flags: FD_Flags = FD_Flags{}) -> (bool, Errno) {
faccessat2 :: proc "contextless" (dirfd: Fd, name: cstring, mode: Mode = F_OK, flags: FD_Flags = FD_Flags{}) -> (Errno) {
ret := syscall(SYS_faccessat2, dirfd, cast(rawptr) name, transmute(u32) mode, transmute(i32) flags)
return errno_unwrap(ret, bool)
return Errno(-ret)
}
// TODO(flysand): process_madvise