xref: /freebsd-src/lib/libc/gen/timespec_getres.c (revision 9b5d724cad10087e34165199e55f15f2df744ed5)
1*9b5d724cSDag-Erling Smørgrav /*-
2*9b5d724cSDag-Erling Smørgrav  * Copyright (c) 2023 Dag-Erling Smørgrav
3*9b5d724cSDag-Erling Smørgrav  *
4*9b5d724cSDag-Erling Smørgrav  * SPDX-License-Identifier: BSD-2-Clause
5*9b5d724cSDag-Erling Smørgrav  */
6*9b5d724cSDag-Erling Smørgrav 
7*9b5d724cSDag-Erling Smørgrav #include <time.h>
8*9b5d724cSDag-Erling Smørgrav 
9*9b5d724cSDag-Erling Smørgrav int
timespec_getres(struct timespec * ts,int base)10*9b5d724cSDag-Erling Smørgrav timespec_getres(struct timespec *ts, int base)
11*9b5d724cSDag-Erling Smørgrav {
12*9b5d724cSDag-Erling Smørgrav 
13*9b5d724cSDag-Erling Smørgrav 	switch (base) {
14*9b5d724cSDag-Erling Smørgrav 	case TIME_UTC:
15*9b5d724cSDag-Erling Smørgrav 		if (clock_getres(CLOCK_REALTIME, ts) == 0)
16*9b5d724cSDag-Erling Smørgrav 			return (base);
17*9b5d724cSDag-Erling Smørgrav 		break;
18*9b5d724cSDag-Erling Smørgrav 	case TIME_MONOTONIC:
19*9b5d724cSDag-Erling Smørgrav 		if (clock_getres(CLOCK_MONOTONIC, ts) == 0)
20*9b5d724cSDag-Erling Smørgrav 			return (base);
21*9b5d724cSDag-Erling Smørgrav 		break;
22*9b5d724cSDag-Erling Smørgrav 	}
23*9b5d724cSDag-Erling Smørgrav 	return (0);
24*9b5d724cSDag-Erling Smørgrav }
25