feat(systime): gettimeofday/itimer/utimes

This commit is contained in:
2026-09-05 22:43:39 -04:00
parent d495d3eb89
commit c67e890b17
8 changed files with 780 additions and 1 deletions
+34
View File
@@ -0,0 +1,34 @@
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <errno.h>
#include <sys/time.h>
#include "../internal/syscall.h"
#if VLIBC_LEVEL_GE(2)
/*
* settimeofday: set the kernel clock, via SYS_settimeofday.
*
* Requires privilege (the unprivileged caller gets EPERM from the kernel).
* The tz argument is honored only alongside tv; passing a timezone record
* while tv is NULL would ask the kernel to update its timezone state alone,
* a legacy use no caller needs, so it is refused up front with ENOTSUP (the
* Linux spelling of the value musl reports here; <errno.h> carries it as
* EOPNOTSUPP).
*/
int
settimeofday(const struct timeval *tv, const struct timezone *tz)
{
if (tz != NULL && tv == NULL)
{
errno = EOPNOTSUPP;
return -1;
}
return syscall_ret(__syscall2(SYS_settimeofday, (long)tv, (long)tz));
}
#endif /* VLIBC_LEVEL_GE(2) */