34 lines
2.7 KiB
Markdown
34 lines
2.7 KiB
Markdown
|
# rsdp.h
|
||
|
|
||
|
The infrastructure to parse the _Root System Description Pointer_ Table.
|
||
|
|
||
|
OSDev Wiki: [RSDP](https://wiki.osdev.org/RSDP)
|
||
|
|
||
|
# `rsdp_descriptor_v1_T` - struct [packed]
|
||
|
The RSDP Table used in ACPI v1.0
|
||
|
|
||
|
| Name | Type | Description |
|
||
|
|--------------|----------|-----------------------------------------------------------|
|
||
|
| signature | char[8] | Needs to be `"RSD PTR "` (with the withespace at the end) |
|
||
|
| checksum | uint8_t | Used to validate the table |
|
||
|
| oem_id | char[6] | This string identifies the OEM |
|
||
|
| revision | uint8_t | Tells whether the RSDP is version 1 or 2+ |
|
||
|
| rsdt_address | uint32_t | The Physical Address of the RSDT |
|
||
|
|
||
|
# `rsdp_descriptor_v2_T` - struct [packed]
|
||
|
The RSDP Table used in ACPI v2.0 or higher
|
||
|
|
||
|
| Name | Type | Description |
|
||
|
|-------------------|-------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
|
||
|
| descriptor_v1 | [rsdp_descriptor_v1_T](https://nerdcult.net/projects/noxos/docs/codebase/drivers/acpi/rsdp.h/#rsdp_descriptor_v1_t---struct-packed) | A table in the format of the ACPI 1.0 specification |
|
||
|
| length | uint32_t | The size of the whole table |
|
||
|
| xsdt_address | uint64_t | The Address of the XSDT (when available this should be used instead of the RSDT) |
|
||
|
| checksum_extended | uint8_t | Used to calculate the checksum of the whole table |
|
||
|
| reserved | uint8_t[3] | Can be ignored |
|
||
|
|
||
|
# `rsdp_descriptor_v1_verify(descriptor)` - function (bool)
|
||
|
Verifies the integrity of **_descriptor_**.
|
||
|
|
||
|
# `rsdp_descriptor_v2_verify(descriptor)` - function (bool)
|
||
|
Verifies the integrity of **_descriptor_**.
|