xref: /aosp_15_r20/external/musl/src/time/timegm.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #define _GNU_SOURCE
2*c9945492SAndroid Build Coastguard Worker #include "time_impl.h"
3*c9945492SAndroid Build Coastguard Worker #include <errno.h>
4*c9945492SAndroid Build Coastguard Worker 
timegm(struct tm * tm)5*c9945492SAndroid Build Coastguard Worker time_t timegm(struct tm *tm)
6*c9945492SAndroid Build Coastguard Worker {
7*c9945492SAndroid Build Coastguard Worker 	struct tm new;
8*c9945492SAndroid Build Coastguard Worker 	long long t = __tm_to_secs(tm);
9*c9945492SAndroid Build Coastguard Worker 	if (__secs_to_tm(t, &new) < 0) {
10*c9945492SAndroid Build Coastguard Worker 		errno = EOVERFLOW;
11*c9945492SAndroid Build Coastguard Worker 		return -1;
12*c9945492SAndroid Build Coastguard Worker 	}
13*c9945492SAndroid Build Coastguard Worker 	*tm = new;
14*c9945492SAndroid Build Coastguard Worker 	tm->tm_isdst = 0;
15*c9945492SAndroid Build Coastguard Worker 	tm->__tm_gmtoff = 0;
16*c9945492SAndroid Build Coastguard Worker 	tm->__tm_zone = __utc;
17*c9945492SAndroid Build Coastguard Worker 	return t;
18*c9945492SAndroid Build Coastguard Worker }
19