xref: /illumos-gate/usr/src/lib/libc/i386/sys/__clock_gettime.c (revision 2428aad8462660fad2b105777063fea6f4192308)
1*2428aad8SPatrick Mooney /*
2*2428aad8SPatrick Mooney  * This file and its contents are supplied under the terms of the
3*2428aad8SPatrick Mooney  * Common Development and Distribution License ("CDDL"), version 1.0.
4*2428aad8SPatrick Mooney  * You may only use this file in accordance with the terms of version
5*2428aad8SPatrick Mooney  * 1.0 of the CDDL.
6*2428aad8SPatrick Mooney  *
7*2428aad8SPatrick Mooney  * A full copy of the text of the CDDL should have accompanied this
8*2428aad8SPatrick Mooney  * source.  A copy of the CDDL is also available via the Internet at
9*2428aad8SPatrick Mooney  * http://www.illumos.org/license/CDDL.
10*2428aad8SPatrick Mooney  */
11*2428aad8SPatrick Mooney 
12*2428aad8SPatrick Mooney /*
13*2428aad8SPatrick Mooney  * Copyright 2016 Joyent, Inc.
14*2428aad8SPatrick Mooney  */
15*2428aad8SPatrick Mooney 
16*2428aad8SPatrick Mooney 
17*2428aad8SPatrick Mooney 
18*2428aad8SPatrick Mooney #include "thr_uberdata.h"
19*2428aad8SPatrick Mooney #include <cp_defs.h>
20*2428aad8SPatrick Mooney 
21*2428aad8SPatrick Mooney extern int __clock_gettime_sys(clockid_t, timespec_t *);
22*2428aad8SPatrick Mooney 
23*2428aad8SPatrick Mooney int
__clock_gettime(clockid_t clock_id,timespec_t * tp)24*2428aad8SPatrick Mooney __clock_gettime(clockid_t clock_id, timespec_t *tp)
25*2428aad8SPatrick Mooney {
26*2428aad8SPatrick Mooney 	comm_page_t *cp = (comm_page_t *)__uberdata.ub_comm_page;
27*2428aad8SPatrick Mooney 
28*2428aad8SPatrick Mooney 	if (cp != NULL && __cp_can_gettime(cp) != 0) {
29*2428aad8SPatrick Mooney 		switch (clock_id) {
30*2428aad8SPatrick Mooney 		case __CLOCK_REALTIME0:
31*2428aad8SPatrick Mooney 		case CLOCK_REALTIME:
32*2428aad8SPatrick Mooney 			return (__cp_clock_gettime_realtime(cp, tp));
33*2428aad8SPatrick Mooney 
34*2428aad8SPatrick Mooney 		case CLOCK_MONOTONIC:
35*2428aad8SPatrick Mooney 			return (__cp_clock_gettime_monotonic(cp, tp));
36*2428aad8SPatrick Mooney 
37*2428aad8SPatrick Mooney 		default:
38*2428aad8SPatrick Mooney 			/* Fallback */
39*2428aad8SPatrick Mooney 			break;
40*2428aad8SPatrick Mooney 		}
41*2428aad8SPatrick Mooney 	}
42*2428aad8SPatrick Mooney 	return (__clock_gettime_sys(clock_id, tp));
43*2428aad8SPatrick Mooney }
44