Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
timer.c File Reference
#include "hal/apic/apic.h"
#include <hal/cpu/core.h>
#include "hal/cpu/interrupt.h"
#include "init/init.h"
#include "libk/serial.h"
#include <type.h>
#include <hal/acpi/hpet.h>
#include <hal/timer/timer.h>

Go to the source code of this file.

Functions

void vxInitializeAPICTimer ()
 
static void usleep_backend (interrupt_stack_frame_t *_)
 
void setup_timer_interrupt ()
 
void usleep (const uint64_t time_ns)
 
 INIT (Timer)
 
void init_timer_counter (time_counter_t *counter)
 
uint64_t get_timer_counter_count (time_counter_t *counter)
 
uint64_t get_timer_counter_count_ms (time_counter_t *counter)
 
uint64_t get_timer_counter_count_ns (time_counter_t *counter)
 

Variables

uint64_t calibrated_ticks_1us
 
boolean_t g__scheduler__is__running
 
static boolean_t trigerred = 0
 

Function Documentation

◆ get_timer_counter_count()

uint64_t get_timer_counter_count ( time_counter_t * counter)

◆ get_timer_counter_count_ms()

uint64_t get_timer_counter_count_ms ( time_counter_t * counter)

Definition at line 64 of file timer.c.

References time_counter_t::current, ns2ms, vxHPETGetMainCount(), and vxHPETMinTickNs().

◆ get_timer_counter_count_ns()

uint64_t get_timer_counter_count_ns ( time_counter_t * counter)

Definition at line 69 of file timer.c.

References get_timer_counter_count(), and vxHPETMinTickNs().

Referenced by vxAPICTimerCalibrationUsingHPET().

◆ INIT()

INIT ( Timer )

Definition at line 48 of file timer.c.

References LOG2_INFO, setup_timer_interrupt(), and vxInitializeAPICTimer().

◆ init_timer_counter()

void init_timer_counter ( time_counter_t * counter)

Definition at line 56 of file timer.c.

References time_counter_t::current, and vxHPETGetMainCount().

Referenced by vxAPICTimerCalibrationUsingHPET().

◆ setup_timer_interrupt()

void setup_timer_interrupt ( void )

Definition at line 26 of file timer.c.

References get_current_core_cpuid(), INTERRUPT_ATTR_KERNEL, irq_register(), and usleep_backend().

Referenced by __attribute__(), and INIT().

◆ usleep()

◆ usleep_backend()

static void usleep_backend ( interrupt_stack_frame_t * _)
static

Definition at line 16 of file timer.c.

References core, each_core_data, get_current_core_data(), LOG2_DEBUG, and trigerred.

Referenced by setup_timer_interrupt().

◆ vxInitializeAPICTimer()

void vxInitializeAPICTimer ( )
extern

Definition at line 148 of file apic_timer.c.

References calibrated_ticks_1ns, get_current_core_cpuid(), and vxAPICTimerCalibrationUsingHPET().

Referenced by INIT().

Variable Documentation

◆ calibrated_ticks_1us

uint64_t calibrated_ticks_1us
extern

◆ g__scheduler__is__running

boolean_t g__scheduler__is__running
extern

Definition at line 19 of file scheduler.c.

◆ trigerred

boolean_t trigerred = 0
static

Definition at line 14 of file timer.c.

Referenced by usleep_backend().