xref: /aosp_15_r20/external/musl/src/linux/settimeofday.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #define _BSD_SOURCE
2*c9945492SAndroid Build Coastguard Worker #include <sys/time.h>
3*c9945492SAndroid Build Coastguard Worker #include <time.h>
4*c9945492SAndroid Build Coastguard Worker #include <errno.h>
5*c9945492SAndroid Build Coastguard Worker #include "syscall.h"
6*c9945492SAndroid Build Coastguard Worker 
settimeofday(const struct timeval * tv,const struct timezone * tz)7*c9945492SAndroid Build Coastguard Worker int settimeofday(const struct timeval *tv, const struct timezone *tz)
8*c9945492SAndroid Build Coastguard Worker {
9*c9945492SAndroid Build Coastguard Worker 	if (!tv) return 0;
10*c9945492SAndroid Build Coastguard Worker 	if (tv->tv_usec >= 1000000ULL) return __syscall_ret(-EINVAL);
11*c9945492SAndroid Build Coastguard Worker 	return clock_settime(CLOCK_REALTIME, &((struct timespec){
12*c9945492SAndroid Build Coastguard Worker 		.tv_sec = tv->tv_sec, .tv_nsec = tv->tv_usec * 1000}));
13*c9945492SAndroid Build Coastguard Worker }
14