summaryrefslogtreecommitdiff
path: root/Kernel/API
diff options
context:
space:
mode:
authorsin-ack <sin-ack@users.noreply.github.com>2022-10-01 12:24:56 +0000
committerAndrew Kaster <andrewdkaster@gmail.com>2022-12-11 19:55:37 -0700
commit2a502fe2326778ba7f5bded6b5e45476865b0ab1 (patch)
treeb594a069d4b46d52643fc31397713de6f33cbfe2 /Kernel/API
parentfa692e13f944a5808ddc9c50e4e8015487c3ae0c (diff)
downloadserenity-2a502fe2326778ba7f5bded6b5e45476865b0ab1.zip
Kernel+LibC+LibCore+UserspaceEmulator: Implement `faccessat(2)`
Co-Authored-By: Daniel Bertalan <dani@danielbertalan.dev>
Diffstat (limited to 'Kernel/API')
-rw-r--r--Kernel/API/POSIX/fcntl.h1
-rw-r--r--Kernel/API/Syscall.h9
2 files changed, 9 insertions, 1 deletions
diff --git a/Kernel/API/POSIX/fcntl.h b/Kernel/API/POSIX/fcntl.h
index 9b6fb615ce..1aa225a789 100644
--- a/Kernel/API/POSIX/fcntl.h
+++ b/Kernel/API/POSIX/fcntl.h
@@ -48,6 +48,7 @@ extern "C" {
#define AT_FDCWD -100
#define AT_SYMLINK_NOFOLLOW 0x100
#define AT_REMOVEDIR 0x200
+#define AT_EACCESS 0x400
struct flock {
short l_type;
diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h
index d31e79afe1..06b38e491d 100644
--- a/Kernel/API/Syscall.h
+++ b/Kernel/API/Syscall.h
@@ -41,7 +41,6 @@ enum class NeedsBigProcessLock {
//
#define ENUMERATE_SYSCALLS(S) \
S(accept4, NeedsBigProcessLock::No) \
- S(access, NeedsBigProcessLock::Yes) \
S(adjtime, NeedsBigProcessLock::No) \
S(alarm, NeedsBigProcessLock::Yes) \
S(allocate_tls, NeedsBigProcessLock::Yes) \
@@ -68,6 +67,7 @@ enum class NeedsBigProcessLock {
S(execve, NeedsBigProcessLock::Yes) \
S(exit, NeedsBigProcessLock::Yes) \
S(exit_thread, NeedsBigProcessLock::Yes) \
+ S(faccessat, NeedsBigProcessLock::Yes) \
S(fchdir, NeedsBigProcessLock::No) \
S(fchmod, NeedsBigProcessLock::No) \
S(fchown, NeedsBigProcessLock::No) \
@@ -508,6 +508,13 @@ struct SC_scheduler_parameters_params {
struct sched_param parameters;
};
+struct SC_faccessat_params {
+ int dirfd;
+ StringArgument pathname;
+ int mode;
+ int flags;
+};
+
void initialize();
int sync();