18 core->usleep_trigerred =
true;
21 if (
core->core_id > 1)
22 LOG2_DEBUG(
"TIMER",
"usleep backend triggerred on core %d",
40 core->usleep_trigerred =
false;
44 while (!
core->usleep_trigerred)
45 __asm__
volatile(
"pause");
49 LOG2_INFO(
"TIMER",
"Initializing HPET timer");
void vxAPICCreateTimer(uint32_t type, uint64_t freq_us, uint16_t vector)
#define APIC_TIMER_ONE_SHOT
each_core_data * get_current_core_data(void)
boolean_t vxHPETIsAvailable()
void vxHPETSleep(uint64_t ns)
uint64_t vxHPETGetMainCount()
uint64_t vxHPETMinTickNs(void)
uint8_t get_current_core_cpuid()
boolean_t g__scheduler__is__running
void irq_register(uint8_t core, int n, void *handler, boolean_t use_default_isr, uint16_t selector, uint8_t ist, uint8_t type_attr)
#define INTERRUPT_ATTR_KERNEL
#define LOG2_DEBUG(mod, fmt,...)
#define LOG2_INFO(mod, fmt,...)
uint64_t get_timer_counter_count_ns(time_counter_t *counter)
void setup_timer_interrupt()
void vxInitializeAPICTimer()
static void usleep_backend(interrupt_stack_frame_t *_)
void init_timer_counter(time_counter_t *counter)
void usleep(const uint64_t time_ns)
uint64_t get_timer_counter_count_ms(time_counter_t *counter)
static boolean_t trigerred
uint64_t calibrated_ticks_1us
uint64_t get_timer_counter_count(time_counter_t *counter)