xref: /aosp_15_r20/external/musl/compat/time32/nanosleep_time32.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include "time32.h"
2*c9945492SAndroid Build Coastguard Worker #include <time.h>
3*c9945492SAndroid Build Coastguard Worker #include <errno.h>
4*c9945492SAndroid Build Coastguard Worker 
__nanosleep_time32(const struct timespec32 * req32,struct timespec32 * rem32)5*c9945492SAndroid Build Coastguard Worker int __nanosleep_time32(const struct timespec32 *req32, struct timespec32 *rem32)
6*c9945492SAndroid Build Coastguard Worker {
7*c9945492SAndroid Build Coastguard Worker 	struct timespec rem;
8*c9945492SAndroid Build Coastguard Worker 	int ret = nanosleep((&(struct timespec){
9*c9945492SAndroid Build Coastguard Worker 		.tv_sec = req32->tv_sec, .tv_nsec = req32->tv_nsec}), &rem);
10*c9945492SAndroid Build Coastguard Worker 	if (ret<0 && errno==EINTR && rem32) {
11*c9945492SAndroid Build Coastguard Worker 		rem32->tv_sec = rem.tv_sec;
12*c9945492SAndroid Build Coastguard Worker 		rem32->tv_nsec = rem.tv_nsec;
13*c9945492SAndroid Build Coastguard Worker 	}
14*c9945492SAndroid Build Coastguard Worker 	return ret;
15*c9945492SAndroid Build Coastguard Worker }
16