summaryrefslogtreecommitdiff
path: root/compat/time32/clock_gettime32.c
blob: 0cac7bbdf6dc1f2963e25ea0a592820eb3193ea6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "time32.h"
#include <time.h>
#include <errno.h>
#include <stdint.h>

int __clock_gettime32(clockid_t clk, struct timespec32 *ts32)
{
	struct timespec ts;
	int r = clock_gettime(clk, &ts);
	if (r) return r;
	if (ts.tv_sec < INT32_MIN || ts.tv_sec > INT32_MAX) {
		errno = EOVERFLOW;
		return -1;
	}
	ts32->tv_sec = ts.tv_sec;
	ts32->tv_nsec = ts.tv_nsec;
	return 0;
}