summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibCore
diff options
context:
space:
mode:
authorMaciej <sppmacd@pm.me>2021-12-29 16:22:22 +0100
committerAndreas Kling <kling@serenityos.org>2022-01-21 13:44:36 +0100
commitccb83744342956f8900395fd3aca99a8a003da95 (patch)
tree06b0b717093694b1021131603a793a7ae47fa596 /Userland/Libraries/LibCore
parent0badfd7b3239b9ffac0e910a0d463ae6c9f9bd80 (diff)
downloadserenity-ccb83744342956f8900395fd3aca99a8a003da95.zip
LibCore: Add Core::System wrapper for disown()
Diffstat (limited to 'Userland/Libraries/LibCore')
-rw-r--r--Userland/Libraries/LibCore/System.cpp10
-rw-r--r--Userland/Libraries/LibCore/System.h1
2 files changed, 11 insertions, 0 deletions
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 <termios.h>
#include <unistd.h>
+#ifdef __serenity__
+# include <serenity.h>
+#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<long> ptrace(int request, pid_t tid, void* address, void* data)
return Error::from_syscall("ptrace"sv, -errno);
return rc;
}
+
+ErrorOr<void> 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<void> ptrace_peekbuf(pid_t tid, void const* tracee_addr, Bytes destinati
ErrorOr<void> setgroups(Span<gid_t const>);
ErrorOr<void> mount(int source_fd, StringView target, StringView fs_type, int flags);
ErrorOr<long> ptrace(int request, pid_t tid, void* address, void* data);
+ErrorOr<void> disown(pid_t pid);
#endif
#ifndef AK_OS_BSD_GENERIC