aboutsummaryrefslogtreecommitdiff
path: root/kernel/src/acpi/manager.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@ost.ch>2026-04-16 09:26:52 +0200
committerFelix Morgner <felix.morgner@ost.ch>2026-04-16 09:26:52 +0200
commit252df23b061b2bf54206da73e41faca600541ccc (patch)
treef21852c364287ac6dfbf5e90456b63933b50f4f9 /kernel/src/acpi/manager.cpp
parent27c654f3f0a069113b6abb70817cfe2c5096711e (diff)
downloadteachos-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.cpp12
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))
{