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