xref: /freebsd/lib/libc/gen/timespec_getres.c (revision 9b5d724c)
19b5d724cSDag-Erling Smørgrav /*-
29b5d724cSDag-Erling Smørgrav  * Copyright (c) 2023 Dag-Erling Smørgrav
39b5d724cSDag-Erling Smørgrav  *
49b5d724cSDag-Erling Smørgrav  * SPDX-License-Identifier: BSD-2-Clause
59b5d724cSDag-Erling Smørgrav  */
69b5d724cSDag-Erling Smørgrav 
79b5d724cSDag-Erling Smørgrav #include <time.h>
89b5d724cSDag-Erling Smørgrav 
99b5d724cSDag-Erling Smørgrav int
timespec_getres(struct timespec * ts,int base)109b5d724cSDag-Erling Smørgrav timespec_getres(struct timespec *ts, int base)
119b5d724cSDag-Erling Smørgrav {
129b5d724cSDag-Erling Smørgrav 
139b5d724cSDag-Erling Smørgrav 	switch (base) {
149b5d724cSDag-Erling Smørgrav 	case TIME_UTC:
159b5d724cSDag-Erling Smørgrav 		if (clock_getres(CLOCK_REALTIME, ts) == 0)
169b5d724cSDag-Erling Smørgrav 			return (base);
179b5d724cSDag-Erling Smørgrav 		break;
189b5d724cSDag-Erling Smørgrav 	case TIME_MONOTONIC:
199b5d724cSDag-Erling Smørgrav 		if (clock_getres(CLOCK_MONOTONIC, ts) == 0)
209b5d724cSDag-Erling Smørgrav 			return (base);
219b5d724cSDag-Erling Smørgrav 		break;
229b5d724cSDag-Erling Smørgrav 	}
239b5d724cSDag-Erling Smørgrav 	return (0);
249b5d724cSDag-Erling Smørgrav }
25