diff --git a/Userland/Libraries/LibCore/System.cpp b/Userland/Libraries/LibCore/System.cpp index 46766b0c90..d360c4d4f5 100644 --- a/Userland/Libraries/LibCore/System.cpp +++ b/Userland/Libraries/LibCore/System.cpp @@ -20,6 +20,10 @@ #include #include +#ifdef __serenity__ +# include +#endif + #define HANDLE_SYSCALL_RETURN_VALUE(syscall_name, rc, success_value) \ if ((rc) < 0) { \ return Error::from_syscall(syscall_name, rc); \ @@ -125,6 +129,12 @@ ErrorOr ptrace(int request, pid_t tid, void* address, void* data) return Error::from_syscall("ptrace"sv, -errno); return rc; } + +ErrorOr disown(pid_t pid) +{ + int rc = ::disown(pid); + HANDLE_SYSCALL_RETURN_VALUE("disown", rc, {}); +} #endif #ifndef AK_OS_BSD_GENERIC diff --git a/Userland/Libraries/LibCore/System.h b/Userland/Libraries/LibCore/System.h index c13a938d55..60ffea982b 100644 --- a/Userland/Libraries/LibCore/System.h +++ b/Userland/Libraries/LibCore/System.h @@ -41,6 +41,7 @@ ErrorOr ptrace_peekbuf(pid_t tid, void const* tracee_addr, Bytes destinati ErrorOr setgroups(Span); ErrorOr mount(int source_fd, StringView target, StringView fs_type, int flags); ErrorOr ptrace(int request, pid_t tid, void* address, void* data); +ErrorOr disown(pid_t pid); #endif #ifndef AK_OS_BSD_GENERIC