My Kernel v0.1.0
Collaboration diagram for ACPI:

Data Structures

struct  acpi_driver
 Per-bus driver struct for ACPI drivers. More...
 
struct  acpi_device
 Per-bus device struct for ACPI devices. More...
 

Functions

void acpi_driver_register (struct acpi_driver *)
 Register an ACPI device driver.
 
error_t acpi_init (struct multiboot_info *mbt)
 Initialize the ACPI environment. More...
 

Detailed Description

ACPI

ACPI (Advanced Configuration and Power Interface) is a Power Management and configuration standard for the PC, developed by Intel, Microsoft and Toshiba. ACPI allows the operating system to control the amount of power each device is given.

More generally, in this kernel, we use ACPI to detect which hardware devices are connected before starting up the appropriate driver.

uACPI

There are 2 main parts to ACPI:

Interacting with ACPI tables would require a huge work of reading and parsing those, which is a project in and of itself. For convenience, we use an external library, uACPI, which performs all the heavy lifting for us.

For more information about it, please refer to their README.

See also
https://github.com/UltraOS/uACPI

Function Documentation

◆ acpi_init()

error_t acpi_init ( struct multiboot_info *  mbt)
Parameters
mbtThe multiboot info structure passed by the bootloader