Voxia OS v0.0.1
Hobby Project Operating System Targeting x86-64
Loading...
Searching...
No Matches
acpi.c File Reference
#include "hal/apic/apic.h"
#include "hal/apic/ioapic.h"
#include "hal/cpu/paging.h"
#include "hal/pci/pcie.h"
#include "init/init.h"
#include "libk/debug/debug.h"
#include "libk/io.h"
#include "libk/serial.h"
#include "memory/memory_utils.h"
#include "memory/phys_base_allocator.h"
#include "memory/vm_manager.h"
#include "type.h"
#include <hal/acpi/acpi.h>
#include <hal/acpi/hpet.h>
#include <str.h>

Go to the source code of this file.

Macros

#define APIC_SIGNATURE   0x43495041
 
#define HPET_SIGNATURE   0x54455048
 
#define MCFG_SIGNATURE   0x4746434D
 
#define WAET_SIGNATURE   0x54454157
 
#define FACP_SIGNATURE   0x50434146
 
#define TPM2_SIGNATURE   0x324D5054
 
#define DSDT_SIGNATURE   0x54445344
 

Functions

struct cpu_corevxGetCpuInfo (uint8_t apicid)
 
void apicSetBaseAddr (uintptr_t addr)
 
static void vxACPIRegisterNewCore (uint8_t apicid, uint8_t cpuid, uint32_t flag)
 
uint8_t vxGetNumberOfCores ()
 
uintptr_t acpi_map_phys_page (uintptr_t phys_addr, size_t len)
 
void acpi_phys_page_unmap (uintptr_t addr)
 
static void parsing_fadt (uintptr_t fadt_addr)
 
static void parsing_madt (struct MADT *madt)
 
void initacpi (__attribute__((unused)) init_context_t *ctx)
 
static initcall_t __init_acpi __attribute__ ((used, section(".init_early." "acpi")))
 

Variables

static struct cpu_corecpu_list = 0
 

Macro Definition Documentation

◆ APIC_SIGNATURE

#define APIC_SIGNATURE   0x43495041

Definition at line 223 of file acpi.c.

Referenced by __attribute__().

◆ DSDT_SIGNATURE

#define DSDT_SIGNATURE   0x54445344

Definition at line 229 of file acpi.c.

◆ FACP_SIGNATURE

#define FACP_SIGNATURE   0x50434146

Definition at line 227 of file acpi.c.

Referenced by __attribute__().

◆ HPET_SIGNATURE

#define HPET_SIGNATURE   0x54455048

Definition at line 224 of file acpi.c.

Referenced by __attribute__().

◆ MCFG_SIGNATURE

#define MCFG_SIGNATURE   0x4746434D

Definition at line 225 of file acpi.c.

Referenced by __attribute__().

◆ TPM2_SIGNATURE

#define TPM2_SIGNATURE   0x324D5054

Definition at line 228 of file acpi.c.

Referenced by __attribute__().

◆ WAET_SIGNATURE

#define WAET_SIGNATURE   0x54454157

Definition at line 226 of file acpi.c.

Referenced by __attribute__().

Function Documentation

◆ __attribute__()

◆ acpi_map_phys_page()

◆ acpi_phys_page_unmap()

void acpi_phys_page_unmap ( uintptr_t addr)

◆ apicSetBaseAddr()

void apicSetBaseAddr ( uintptr_t addr)
extern

Definition at line 58 of file apic.c.

References addr, and lapic_base_addr.

Referenced by parsing_madt().

◆ initacpi()

void initacpi ( __attribute__((unused)) init_context_t * ctx)

Definition at line 231 of file acpi.c.

◆ parsing_fadt()

static void parsing_fadt ( uintptr_t fadt_addr)
static

Definition at line 141 of file acpi.c.

References UNUSED.

Referenced by __attribute__().

◆ parsing_madt()

◆ vxACPIRegisterNewCore()

static void vxACPIRegisterNewCore ( uint8_t apicid,
uint8_t cpuid,
uint32_t flag )
static

Definition at line 33 of file acpi.c.

References cpu_core::apicid, core, cpu_list, cpuid(), cpu_core::flag, kalloc(), and Off.

Referenced by parsing_madt().

◆ vxGetCpuInfo()

struct cpu_core * vxGetCpuInfo ( uint8_t apicid)

Definition at line 21 of file acpi.c.

References cpu_core::apicid, core, and cpu_list.

Referenced by __attribute__(), INIT(), INIT(), and vxAddWorkqueueTask().

◆ vxGetNumberOfCores()

uint8_t vxGetNumberOfCores ( )

Definition at line 45 of file acpi.c.

References core, count, and cpu_list.

Referenced by INIT(), and INIT().

Variable Documentation

◆ cpu_list

struct cpu_core* cpu_list = 0
static

Definition at line 19 of file acpi.c.

Referenced by vxACPIRegisterNewCore(), vxGetCpuInfo(), and vxGetNumberOfCores().