|
My Kernel v0.1.0
|

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... | |
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.
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.
| error_t acpi_init | ( | struct multiboot_info * | mbt | ) |
| mbt | The multiboot info structure passed by the bootloader |