diff options
Diffstat (limited to 'usr/src/lib/libfakekernel/common/clock.c')
-rw-r--r-- | usr/src/lib/libfakekernel/common/clock.c | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/usr/src/lib/libfakekernel/common/clock.c b/usr/src/lib/libfakekernel/common/clock.c new file mode 100644 index 0000000000..dde86bdcfd --- /dev/null +++ b/usr/src/lib/libfakekernel/common/clock.c @@ -0,0 +1,92 @@ +/* + * This file and its contents are supplied under the terms of the + * Common Development and Distribution License ("CDDL"), version 1.0. + * You may only use this file in accordance with the terms of version + * 1.0 of the CDDL. + * + * A full copy of the text of the CDDL should have accompanied this + * source. A copy of the CDDL is also available via the Internet at + * http://www.illumos.org/license/CDDL. + */ + +/* + * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + */ + + +#include <sys/types.h> +#include <sys/time.h> +#include <sys/thread.h> +#include <sys/proc.h> + +#include <sys/poll.h> + +#include <time.h> + +int hz = 1000; +int tick_per_msec = 0; +int msec_per_tick = 1; +int usec_per_tick = 1000; +int nsec_per_tick = 1000000; +time_t boot_time = 0; + +#pragma init(_boot_time_init) +static int +_boot_time_init(void) +{ + boot_time = time(NULL); + return (0); +} + +clock_t +ddi_get_lbolt(void) +{ + hrtime_t hrt; + + hrt = gethrtime(); + return (hrt / nsec_per_tick); +} + +int64_t +ddi_get_lbolt64(void) +{ + hrtime_t hrt; + + hrt = gethrtime(); + return (hrt / nsec_per_tick); +} + +void +clock2ts(clock_t clk, timespec_t *ts) +{ + ts->tv_sec = clk / hz; + ts->tv_nsec = (clk % hz) * (NANOSEC / hz); +} + +hrtime_t +gethrtime_unscaled(void) +{ + return (gethrtime()); +} + +void +gethrestime(timespec_t *ts) +{ + hrtime_t hrt; + + hrt = gethrtime(); + ts->tv_sec = hrt / NANOSEC; + ts->tv_nsec = hrt % NANOSEC; +} + +time_t +gethrestime_sec(void) +{ + return (time(NULL)); +} + +/* ARGSUSED */ +void +scalehrtime(hrtime_t *t) +{ +} |