Kaynağa Gözat

LibCore: Add syscall wrapper for clock_settime()

Kenneth Myhra 3 yıl önce
ebeveyn
işleme
7b13f22f96

+ 12 - 0
Userland/Libraries/LibCore/System.cpp

@@ -360,4 +360,16 @@ ErrorOr<struct group> getgrnam(StringView name)
         return Error::from_string_literal("getgrnam: Unknown username"sv);
 }
 
+ErrorOr<void> clock_settime(clockid_t clock_id, struct timespec* ts)
+{
+#ifdef __serenity__
+    int rc = syscall(SC_clock_settime, clock_id, ts);
+    HANDLE_SYSCALL_RETURN_VALUE("clocksettime"sv, rc, {});
+#else
+    if (::clock_settime(clock_id, ts) < 0)
+        return Error::from_syscall("clocksettime"sv, -errno);
+    return {};
+#endif
+}
+
 }

+ 2 - 0
Userland/Libraries/LibCore/System.h

@@ -13,6 +13,7 @@
 #include <signal.h>
 #include <sys/stat.h>
 #include <termios.h>
+#include <time.h>
 
 namespace Core::System {
 
@@ -49,5 +50,6 @@ ErrorOr<void> chmod(StringView pathname, mode_t mode);
 ErrorOr<void> chown(StringView pathname, uid_t uid, gid_t gid);
 ErrorOr<struct passwd> getpwnam(StringView name);
 ErrorOr<struct group> getgrnam(StringView name);
+ErrorOr<void> clock_settime(clockid_t clock_id, struct timespec* ts);
 
 }