xref: /aosp_15_r20/external/musl/compat/time32/clock_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 
__clock_nanosleep_time32(clockid_t clk,int flags,const struct timespec32 * req32,struct timespec32 * rem32)5*c9945492SAndroid Build Coastguard Worker int __clock_nanosleep_time32(clockid_t clk, int flags, 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 = clock_nanosleep(clk, flags, (&(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==EINTR && rem32 && !(flags & TIMER_ABSTIME)) {
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