hpet_info
hpet_timer_set_up(&hpet_info, hpet_info.cstate_timer.timer,
hpet_info.cstate_timer.intr);
hpet_enable_timer(&hpet_info, hpet_info.cstate_timer.timer);
hpet_enable_timer(&hpet_info, hpet_info.cstate_timer.timer);
hpet_disable_timer(&hpet_info, hpet_info.cstate_timer.timer);
hpet_info_t hpet_info; /* Human readable Information */
timer_mask = HPET_INTR_STATUS_MASK(hpet_info.cstate_timer.timer);
timer_status = hpet_read_gen_intrpt_stat(&hpet_info);
hpet_write_gen_intrpt_stat(&hpet_info, timer_mask);
int proxy_timer = hpet_info.cstate_timer.timer;
if (hpet_timer_program(&hpet_info, proxy_timer,
(void) memset(&hpet_info, 0, sizeof (hpet_info));
hpet_info.logical_address = la;
ret = hpet_read_gen_cap(&hpet_info);
hpet_info.gen_cap.counter_clk_period = HPET_GCAP_CNTR_CLK_PERIOD(ret);
hpet_info.gen_cap.vendor_id = HPET_GCAP_VENDOR_ID(ret);
hpet_info.gen_cap.leg_route_cap = HPET_GCAP_LEG_ROUTE_CAP(ret);
hpet_info.gen_cap.count_size_cap = HPET_GCAP_CNT_SIZE_CAP(ret);
hpet_info.gen_cap.num_tim_cap = HPET_GCAP_NUM_TIM_CAP(ret) + 1;
hpet_info.gen_cap.rev_id = HPET_GCAP_REV_ID(ret);
if (hpet_info.gen_cap.counter_clk_period > HPET_MAX_CLK_PERIOD) {
(long)hpet_info.gen_cap.counter_clk_period,
num_timers = (uint_t)hpet_info.gen_cap.num_tim_cap;
hpet_info.timer_n_config = (hpet_TN_conf_cap_t *)kmem_zalloc(
ret = hpet_read_gen_config(&hpet_info);
hpet_info.gen_config.leg_rt_cnf = HPET_GCFR_LEG_RT_CNF_BITX(ret);
hpet_info.gen_config.enable_cnf = HPET_GCFR_ENABLE_CNF_BITX(ret);
(void) hpet_set_leg_rt_cnf(&hpet_info, 0);
ret = hpet_read_gen_config(&hpet_info);
hpet_info.gen_config.leg_rt_cnf = HPET_GCFR_LEG_RT_CNF_BITX(ret);
hpet_info.gen_config.enable_cnf = HPET_GCFR_ENABLE_CNF_BITX(ret);
hpet_info.gen_intrpt_stat = hpet_read_gen_intrpt_stat(&hpet_info);
hpet_info.main_counter_value = hpet_read_main_counter_value(&hpet_info);
ret = hpet_read_timer_N_config(&hpet_info, ti);
hpet_disable_timer(&hpet_info, ti);
hpet_info.timer_n_config[ti] = hpet_convert_timer_N_config(ret);
if (hpet_start_main_counter(&hpet_info) != AE_OK) {
hpet_info.period = hpet_info.gen_cap.counter_clk_period;
hpet_info.tsc[0] = tsc_read();
hpet_info.hpet_main_counter_reads[0] =
hpet_read_main_counter_value(&hpet_info);
hpet_info.tsc[1] = tsc_read();
hpet_info.hpet_main_counter_reads[1] =
hpet_read_main_counter_value(&hpet_info);
hpet_info.tsc[2] = tsc_read();
PRM_DEBUG(hpet_info.hpet_main_counter_reads[0]);
PRM_DEBUG(hpet_info.hpet_main_counter_reads[1]);
PRM_DEBUG(hpet_info.tsc[0]);
PRM_DEBUG(hpet_info.tsc[1]);
PRM_DEBUG(hpet_info.tsc[2]);
ret = hpet_read_gen_config(&hpet_info);
hpet_info.gen_config.leg_rt_cnf = HPET_GCFR_LEG_RT_CNF_BITX(ret);
hpet_info.gen_config.enable_cnf = HPET_GCFR_ENABLE_CNF_BITX(ret);
(void) hpet_stop_main_counter(&hpet_info);
hpet_disable_timer(&hpet_info, hpet_info.cstate_timer.timer);
if (hpet_get_IOAPIC_intr_capable_timer(&hpet_info) == -1) {
hpet_info.cstate_timer.intr) != AE_OK) {
*hpet_vect = hpet_info.cstate_timer.intr;
hpet_timer_set_up(&hpet_info, hpet_info.cstate_timer.timer,
hpet_info.cstate_timer.intr);
hpet_enable_timer(&hpet_info, hpet_info.cstate_timer.timer);
rem_avintr(NULL, CBE_HIGH_PIL, &hpet_isr, hpet_info.cstate_timer.intr);
return (hpet_read_main_counter_value(&hpet_info));
hpet_disable_timer(&hpet_info, hpet_info.cstate_timer.timer);
(void) hpet_set_leg_rt_cnf(&hpet_info, 0);
if (hpet_start_main_counter(&hpet_info) != AE_OK) {
uint64_t hpet_ns = hpet_avg * hpet_info.period / HPET_FEMTO_TO_NANO;
#define HRTIME_TO_HPET_TICKS(t) (((t) * HPET_FEMTO_TO_NANO) / hpet_info.period)
#define HRTIME_TO_HPET_TICKS(t) (((t) * HPET_FEMTO_TO_NANO) / hpet_info.period)
extern hpet_info_t hpet_info;