xref: /aosp_15_r20/external/musl/compat/time32/gettimeofday_time32.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include "time32.h"
2*c9945492SAndroid Build Coastguard Worker #include <sys/time.h>
3*c9945492SAndroid Build Coastguard Worker #include <errno.h>
4*c9945492SAndroid Build Coastguard Worker #include <stdint.h>
5*c9945492SAndroid Build Coastguard Worker 
__gettimeofday_time32(struct timeval32 * tv32,void * tz)6*c9945492SAndroid Build Coastguard Worker int __gettimeofday_time32(struct timeval32 *tv32, void *tz)
7*c9945492SAndroid Build Coastguard Worker {
8*c9945492SAndroid Build Coastguard Worker 	struct timeval tv;
9*c9945492SAndroid Build Coastguard Worker 	if (!tv32) return 0;
10*c9945492SAndroid Build Coastguard Worker 	int r = gettimeofday(&tv, 0);
11*c9945492SAndroid Build Coastguard Worker 	if (r) return r;
12*c9945492SAndroid Build Coastguard Worker 	if (tv.tv_sec < INT32_MIN || tv.tv_sec > INT32_MAX) {
13*c9945492SAndroid Build Coastguard Worker 		errno = EOVERFLOW;
14*c9945492SAndroid Build Coastguard Worker 		return -1;
15*c9945492SAndroid Build Coastguard Worker 	}
16*c9945492SAndroid Build Coastguard Worker 	tv32->tv_sec = tv.tv_sec;
17*c9945492SAndroid Build Coastguard Worker 	tv32->tv_usec = tv.tv_usec;
18*c9945492SAndroid Build Coastguard Worker 	return 0;
19*c9945492SAndroid Build Coastguard Worker }
20