浏览代码

LibSystem: Add ErrorOr<T> wrapper for sigaction() :^)

Andreas Kling 3 年之前
父节点
当前提交
3d34216b9a
共有 2 个文件被更改,包括 8 次插入0 次删除
  1. 6 0
      Userland/Libraries/LibSystem/Wrappers.cpp
  2. 2 0
      Userland/Libraries/LibSystem/Wrappers.h

+ 6 - 0
Userland/Libraries/LibSystem/Wrappers.cpp

@@ -35,4 +35,10 @@ ErrorOr<void> unveil(StringView path, StringView permissions)
     HANDLE_SYSCALL_RETURN_VALUE("unveil"sv, rc);
 }
 
+ErrorOr<void> sigaction(int signal, struct sigaction const* action, struct sigaction* old_action)
+{
+    int rc = syscall(SC_sigaction, signal, action, old_action);
+    HANDLE_SYSCALL_RETURN_VALUE("sigaction"sv, rc);
+}
+
 }

+ 2 - 0
Userland/Libraries/LibSystem/Wrappers.h

@@ -7,10 +7,12 @@
 #pragma once
 
 #include <AK/Error.h>
+#include <signal.h>
 
 namespace System {
 
 ErrorOr<void> pledge(StringView promises, StringView execpromises);
 ErrorOr<void> unveil(StringView path, StringView permissions);
+ErrorOr<void> sigaction(int signal, struct sigaction const* action, struct sigaction* old_action);
 
 }