xref: /aosp_15_r20/external/musl/compat/time32/adjtime32.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #define _GNU_SOURCE
2*c9945492SAndroid Build Coastguard Worker #include "time32.h"
3*c9945492SAndroid Build Coastguard Worker #include <time.h>
4*c9945492SAndroid Build Coastguard Worker #include <sys/time.h>
5*c9945492SAndroid Build Coastguard Worker #include <sys/timex.h>
6*c9945492SAndroid Build Coastguard Worker 
__adjtime32(const struct timeval32 * in32,struct timeval32 * out32)7*c9945492SAndroid Build Coastguard Worker int __adjtime32(const struct timeval32 *in32, struct timeval32 *out32)
8*c9945492SAndroid Build Coastguard Worker {
9*c9945492SAndroid Build Coastguard Worker 	struct timeval out;
10*c9945492SAndroid Build Coastguard Worker 	int r = adjtime((&(struct timeval){
11*c9945492SAndroid Build Coastguard Worker 		.tv_sec = in32->tv_sec,
12*c9945492SAndroid Build Coastguard Worker 		.tv_usec = in32->tv_usec}), &out);
13*c9945492SAndroid Build Coastguard Worker 	if (r) return r;
14*c9945492SAndroid Build Coastguard Worker 	/* We can't range-check the result because success was already
15*c9945492SAndroid Build Coastguard Worker 	 * committed by the above call. */
16*c9945492SAndroid Build Coastguard Worker 	if (out32) {
17*c9945492SAndroid Build Coastguard Worker 		out32->tv_sec = out.tv_sec;
18*c9945492SAndroid Build Coastguard Worker 		out32->tv_usec = out.tv_usec;
19*c9945492SAndroid Build Coastguard Worker 	}
20*c9945492SAndroid Build Coastguard Worker 	return r;
21*c9945492SAndroid Build Coastguard Worker }
22