+microtime(
+ struct timeval *tvp)
+{
+ clock_get_calendar_microtime(&tvp->tv_sec, &tvp->tv_usec);
+}
+
+void
+microuptime(
+ struct timeval *tvp)
+{
+ clock_get_system_microtime(&tvp->tv_sec, &tvp->tv_usec);
+}
+
+/*
+ * Ditto for timespec.
+ */
+void
+nanotime(
+ struct timespec *tsp)
+{
+ clock_get_calendar_nanotime((uint32_t *)&tsp->tv_sec, &tsp->tv_nsec);
+}
+
+void
+nanouptime(
+ struct timespec *tsp)
+{
+ clock_get_system_nanotime((uint32_t *)&tsp->tv_sec, &tsp->tv_nsec);
+}
+
+uint64_t
+tvtoabstime(
+ struct timeval *tvp)
+{
+ uint64_t result, usresult;
+
+ clock_interval_to_absolutetime_interval(
+ tvp->tv_sec, NSEC_PER_SEC, &result);
+ clock_interval_to_absolutetime_interval(
+ tvp->tv_usec, NSEC_PER_USEC, &usresult);
+
+ return (result + usresult);
+}
+void
+time_zone_slock_init(void)