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

Go to the source code of this file.

Macros

#define APIC_BASE_ADDR   0x1B
 
#define X2_APIC_ICR   0x830
 
#define ENABLE_APIC_BIT   1 << 11
 
#define ENABLE_X2_APIC_BIT   1 << 10
 

Functions

void apicSetBaseAddr (uintptr_t addr)
 
static void enable_x2apic ()
 
void apic_write (uint32_t reg, uint32_t value)
 
uint32_t apic_read (uint32_t reg)
 
void apicInitialize ()
 
void apic_send_ipi (uint8_t vector, uint8_t dest)
 
void apic_eoi ()
 

Variables

uintptr_t lapic_base_addr = 0
 
uint8_t x2_apic_supported = 0
 

Macro Definition Documentation

◆ APIC_BASE_ADDR

#define APIC_BASE_ADDR   0x1B

Definition at line 9 of file apic.c.

◆ ENABLE_APIC_BIT

#define ENABLE_APIC_BIT   1 << 11

Definition at line 12 of file apic.c.

◆ ENABLE_X2_APIC_BIT

#define ENABLE_X2_APIC_BIT   1 << 10

Definition at line 13 of file apic.c.

◆ X2_APIC_ICR

#define X2_APIC_ICR   0x830

Definition at line 10 of file apic.c.

Function Documentation

◆ apic_eoi()

void apic_eoi ( )

Definition at line 102 of file apic.c.

References APIC_EOI, and apic_write().

Referenced by __attribute__().

◆ apic_read()

◆ apic_send_ipi()

void apic_send_ipi ( uint8_t vector,
uint8_t dest )

Definition at line 97 of file apic.c.

References APIC_ICR_HIGH, APIC_ICR_LOW, apic_write(), and vector.

◆ apic_write()

◆ apicInitialize()

◆ apicSetBaseAddr()

void apicSetBaseAddr ( uintptr_t addr)

Definition at line 58 of file apic.c.

References addr, and lapic_base_addr.

Referenced by parsing_madt().

◆ enable_x2apic()

static void enable_x2apic ( )
static

Definition at line 20 of file apic.c.

References LOG_INFO, vxRDMSR(), vxWRSR(), and x2_apic_supported.

Referenced by apicInitialize().

Variable Documentation

◆ lapic_base_addr

uintptr_t lapic_base_addr = 0

Definition at line 15 of file apic.c.

Referenced by apic_read(), apic_write(), and apicSetBaseAddr().

◆ x2_apic_supported

uint8_t x2_apic_supported = 0

Definition at line 16 of file apic.c.

Referenced by apic_read(), apic_write(), apicInitialize(), enable_x2apic(), initTimer(), and sipi_sequential().