NANOSEC
nsec_per_tick = NANOSEC / hz;
nsec_scale = ((uint64_t)NANOSEC << SCALE_SHIFT) / freq;
KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)),
nsec_scale = ((uint64_t)NANOSEC << SCALE_SHIFT) / tsc_f;
KASSERT(tsc_f > (NANOSEC >> (32 - SCALE_SHIFT)),
nsec_scale = ((uint64_t)NANOSEC << SCALE_SHIFT) / tsc_f;
KASSERT(tb_f > (NANOSEC >> (32 - SCALE_SHIFT)), ("Timebase frequency is too low"));
nsec_scale = ((uint64_t)NANOSEC << SCALE_SHIFT) / tb_f;
static hrtime_t profile_interval_min = NANOSEC / 5000; /* 5000 hz */
sec = nsec / NANOSEC;
nsec = nsec % NANOSEC;
return (((sbintime_t)sec << 32) | ((sbintime_t)nsec << 32) / NANOSEC);
return ((sbt >> 32) * NANOSEC +
(((uint32_t)sbt * (hrtime_t)NANOSEC) >> 32));
{ "ns", NANOSEC / NANOSEC },
{ "nsec", NANOSEC / NANOSEC },
{ "us", NANOSEC / MICROSEC },
{ "usec", NANOSEC / MICROSEC },
{ "ms", NANOSEC / MILLISEC },
{ "msec", NANOSEC / MILLISEC },
{ "s", NANOSEC / SEC },
{ "sec", NANOSEC / SEC },
{ "m", NANOSEC * (hrtime_t)60 },
{ "min", NANOSEC * (hrtime_t)60 },
{ "h", NANOSEC * (hrtime_t)(60 * 60) },
{ "hour", NANOSEC * (hrtime_t)(60 * 60) },
{ "d", NANOSEC * (hrtime_t)(24 * 60 * 60) },
{ "day", NANOSEC * (hrtime_t)(24 * 60 * 60) },
profile_create(NANOSEC / rate, n, PROF_PROFILE);
profile_create(NANOSEC / rate, n, PROF_TICK);
val = NANOSEC / val;
#ifndef NANOSEC
#define HYPERV_TIMER_FREQ (NANOSEC / HYPERV_TIMER_NS_FACTOR)
reqp->vss_req.opt_msg.msgid = (vm_ts.tv_sec * NANOSEC) + vm_ts.tv_nsec;
vm_ns = (vm_ts.tv_sec * NANOSEC) + vm_ts.tv_nsec;
hv_ts.tv_sec = hv_ns / NANOSEC;
hv_ts.tv_nsec = hv_ns % NANOSEC;
hv_ts.tv_sec = hv_ns / NANOSEC;
hv_ts.tv_nsec = hv_ns % NANOSEC;