miniOS
x86_64 hobby kernel with SMP, VFS, and POSIX process model
Loading...
Searching...
No Matches
acpi.c File Reference
Include dependency graph for acpi.c:

Classes

struct  acpi_rsdp
struct  acpi_rsdp_v2
struct  acpi_sdt_header
struct  acpi_madt
struct  madt_entry_hdr
struct  madt_lapic_entry

Macros

#define MADT_TYPE_LAPIC   0
#define MADT_LAPIC_FLAG_ENABLED   (1 << 0)
#define MADT_LAPIC_FLAG_ONLINE_CAPABLE   (1 << 1)

Functions

struct acpi_rsdp __attribute__ ((packed))
static int sig8_match (const char *a, const char *b)
static int sig4_match (const char *a, const char *b)
static void parse_madt (struct acpi_madt *madt)
static struct acpi_madtfind_madt_in_rsdt (uint32_t rsdt_phys)
static struct acpi_madtfind_madt_in_xsdt (uint64_t xsdt_phys)
static struct acpi_madtmadt_from_rsdp (struct acpi_rsdp *rsdp)
void acpi_find_madt (uint64_t mb_info_phys)
 Parse ACPI MADT and populate smp_lapic_ids[]/smp_cpu_count.

Variables

uint32_t smp_cpu_count = 0
uint8_t smp_lapic_ids [MAX_CPUS] = {0}
char signature [8]
uint8_t checksum
char oem_id [6]
uint8_t revision
uint32_t rsdt_phys
struct acpi_rsdp v1
uint32_t length
uint64_t xsdt_phys
uint8_t ext_checksum
uint8_t reserved [3]
char oem_table_id [8]
uint32_t oem_revision
uint32_t creator_id
uint32_t creator_revision
struct acpi_sdt_header hdr
uint32_t lapic_phys
uint32_t flags
uint8_t type
uint8_t acpi_proc_id
uint8_t apic_id

Macro Definition Documentation

◆ MADT_LAPIC_FLAG_ENABLED

#define MADT_LAPIC_FLAG_ENABLED   (1 << 0)

◆ MADT_LAPIC_FLAG_ONLINE_CAPABLE

#define MADT_LAPIC_FLAG_ONLINE_CAPABLE   (1 << 1)

◆ MADT_TYPE_LAPIC

#define MADT_TYPE_LAPIC   0

Function Documentation

◆ __attribute__()

struct acpi_rsdp __attribute__ ( (packed) )

◆ find_madt_in_rsdt()

struct acpi_madt * find_madt_in_rsdt ( uint32_t rsdt_phys)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ find_madt_in_xsdt()

struct acpi_madt * find_madt_in_xsdt ( uint64_t xsdt_phys)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ madt_from_rsdp()

struct acpi_madt * madt_from_rsdp ( struct acpi_rsdp * rsdp)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_madt()

void parse_madt ( struct acpi_madt * madt)
static
Here is the caller graph for this function:

◆ sig4_match()

int sig4_match ( const char * a,
const char * b )
static
Here is the caller graph for this function:

◆ sig8_match()

int sig8_match ( const char * a,
const char * b )
static
Here is the caller graph for this function:

Variable Documentation

◆ acpi_proc_id

uint8_t acpi_proc_id

◆ apic_id

uint8_t apic_id

◆ checksum

uint8_t checksum

◆ creator_id

uint32_t creator_id

◆ creator_revision

uint32_t creator_revision

◆ ext_checksum

uint8_t ext_checksum

◆ flags

uint32_t flags

◆ hdr

struct madt_entry_hdr hdr

◆ lapic_phys

uint32_t lapic_phys

◆ length

uint8_t length

◆ oem_id

char oem_id

◆ oem_revision

uint32_t oem_revision

◆ oem_table_id

char oem_table_id[8]

◆ reserved

uint8_t reserved[3]

◆ revision

uint8_t revision

◆ rsdt_phys

uint32_t rsdt_phys

◆ signature

char signature

◆ type

uint8_t type

◆ v1

struct acpi_rsdp v1

◆ xsdt_phys

uint64_t xsdt_phys