#define _GNU_SOURCE | |
#include <sys/time.h> | |
#include <sys/stat.h> | |
#include <errno.h> | |
#include "syscall.h" | |
#include "libc.h" | |
int __futimesat(int dirfd, | |
const char* pathname, | |
const struct timeval times[2]) { | |
struct timespec ts[2]; | |
if (times) { | |
int i; | |
for (i = 0; i < 2; i++) { | |
if (times[i].tv_usec >= 1000000ULL) | |
return __syscall_ret(-EINVAL); | |
ts[i].tv_sec = times[i].tv_sec; | |
ts[i].tv_nsec = times[i].tv_usec * 1000; | |
} | |
} | |
return utimensat(dirfd, pathname, times ? ts : 0, 0); | |
} | |
weak_alias(__futimesat, futimesat); |