diff options
| author | Felix Morgner <felix.morgner@ost.ch> | 2026-04-16 09:26:52 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@ost.ch> | 2026-04-16 09:26:52 +0200 |
| commit | 252df23b061b2bf54206da73e41faca600541ccc (patch) | |
| tree | f21852c364287ac6dfbf5e90456b63933b50f4f9 /kernel/src/acpi/manager.cpp | |
| parent | 27c654f3f0a069113b6abb70817cfe2c5096711e (diff) | |
| download | teachos-252df23b061b2bf54206da73e41faca600541ccc.tar.xz teachos-252df23b061b2bf54206da73e41faca600541ccc.zip | |
acpi: introduce VLA table
Diffstat (limited to 'kernel/src/acpi/manager.cpp')
| -rw-r--r-- | kernel/src/acpi/manager.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/src/acpi/manager.cpp b/kernel/src/acpi/manager.cpp index 501ce92..41469c2 100644 --- a/kernel/src/acpi/manager.cpp +++ b/kernel/src/acpi/manager.cpp @@ -32,7 +32,7 @@ namespace kernel::acpi } auto physical_extended_table_address = kapi::memory::physical_address{xsdp->table_address()}; auto linear_extended_table_address = kapi::memory::hhdm_to_linear(physical_extended_table_address); - m_rsdt = static_cast<::acpi::sdt const *>(linear_extended_table_address); + m_rsdt = static_cast<::acpi::table_header const *>(linear_extended_table_address); m_extended = true; } else @@ -43,7 +43,7 @@ namespace kernel::acpi } auto physical_root_table_address = kapi::memory::physical_address{m_sdp->table_address()}; auto linear_root_table_address = kapi::memory::hhdm_to_linear(physical_root_table_address); - m_rsdt = static_cast<::acpi::sdt const *>(linear_root_table_address); + m_rsdt = static_cast<::acpi::table_header const *>(linear_root_table_address); } } @@ -55,8 +55,8 @@ namespace kernel::acpi } auto entry_size = m_extended ? sizeof(std::uint64_t) : sizeof(std::uint32_t); - auto entry_count = (m_rsdt->length().value - sizeof(::acpi::sdt)) / entry_size; - auto entries_base = reinterpret_cast<std::byte const *>(m_rsdt) + sizeof(::acpi::sdt); + auto entry_count = (m_rsdt->length().value - sizeof(::acpi::table_header)) / entry_size; + auto entries_base = reinterpret_cast<std::byte const *>(m_rsdt) + sizeof(::acpi::table_header); for (std::size_t i = 0; i < entry_count; ++i) { @@ -74,7 +74,7 @@ namespace kernel::acpi } auto linear_table_address = kapi::memory::hhdm_to_linear(physical_table_address); - auto table = static_cast<::acpi::sdt const *>(linear_table_address); + auto table = static_cast<::acpi::table_header const *>(linear_table_address); if (!::acpi::validate_checksum({reinterpret_cast<std::byte const *>(table), table->length().value})) { @@ -90,7 +90,7 @@ namespace kernel::acpi return !m_tables.empty(); } - auto manager::get_table(std::string_view signature) -> kstd::observer_ptr<::acpi::sdt const> + auto manager::get_table(std::string_view signature) -> kstd::observer_ptr<::acpi::table_header const> { if (m_tables.contains(signature)) { |
