diff --git a/Libraries/LibC/unistd.cpp b/Libraries/LibC/unistd.cpp index f6a5fad173..971606b2f8 100644 --- a/Libraries/LibC/unistd.cpp +++ b/Libraries/LibC/unistd.cpp @@ -652,4 +652,16 @@ int chroot(const char* path) int rc = syscall(SC_chroot, path, strlen(path)); __RETURN_WITH_ERRNO(rc, rc, -1); } + +int pledge(const char* promises, const char* execpromises) +{ + Syscall::SC_pledge_params params { + { promises, promises ? strlen(promises) : 0 }, + { execpromises, execpromises ? strlen(execpromises) : 0 } + }; + int rc = syscall(SC_pledge, ¶ms); + __RETURN_WITH_ERRNO(rc, rc, -1); } + +} + diff --git a/Libraries/LibC/unistd.h b/Libraries/LibC/unistd.h index 1fd5b870b5..1ca0095a94 100644 --- a/Libraries/LibC/unistd.h +++ b/Libraries/LibC/unistd.h @@ -113,6 +113,7 @@ int halt(); int reboot(); int mount(const char* source, const char* target, const char* fs_type, int flags); int umount(const char* mountpoint); +int pledge(const char* promises, const char* execpromises); enum { _PC_NAME_MAX,