aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/kapi
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/kapi')
-rw-r--r--arch/x86_64/kapi/cpu.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/arch/x86_64/kapi/cpu.cpp b/arch/x86_64/kapi/cpu.cpp
index a836b20..965998c 100644
--- a/arch/x86_64/kapi/cpu.cpp
+++ b/arch/x86_64/kapi/cpu.cpp
@@ -23,8 +23,8 @@ namespace kapi::cpu
namespace
{
- constexpr auto candidate_flags = ::acpi::processor_local_apic::flags::processor_enabled //
- | ::acpi::processor_local_apic::flags::online_capable;
+ constexpr auto candidate_flags = ::acpi::processor_local_apic_entry::flags::processor_enabled //
+ | ::acpi::processor_local_apic_entry::flags::online_capable;
}
auto init() -> void
@@ -52,7 +52,7 @@ namespace kapi::cpu
auto static const core_major = kapi::devices::allocate_major_number();
auto static const interrupt_controller_major = kapi::devices::allocate_major_number();
- auto madt = kapi::acpi::get_table<::acpi::madt_table_signature>();
+ auto madt = kapi::acpi::get_table<::acpi::table_signature_v<::acpi::madt>>();
if (!madt)
{
kstd::println("[x86_64:PLT] Failed to find ACPI APIC table");
@@ -60,12 +60,10 @@ namespace kapi::cpu
}
auto lapic_entries = *madt | std::views::filter([](auto const & entry) {
- return entry.type() == ::acpi::madt_entry::types::processor_local_apic;
+ return entry.type() == ::acpi::madt_entry::type::processor_local_apic;
}) | std::views::transform([](auto const & entry) {
- return static_cast<::acpi::processor_local_apic const &>(entry);
- }) | std::views::filter([](auto const & entry) {
- return static_cast<bool>(entry.active_flags() & candidate_flags);
- });
+ return static_cast<::acpi::processor_local_apic_entry const &>(entry);
+ }) | std::views::filter([](auto const & entry) { return static_cast<bool>(entry.flags() & candidate_flags); });
auto bsp_found = false;
auto core_count = 0uz;
@@ -77,8 +75,8 @@ namespace kapi::cpu
auto is_bsp = !bsp_found;
bsp_found = true;
auto core = kstd::make_unique<devices::cpu::core>(core_major, core_count, apic.processor_id(), is_bsp);
- core->add_child(kstd::make_unique<arch::devices::local_apic>(interrupt_controller_major, core_count,
- apic.apic_id(), local_apic_address, is_bsp));
+ core->add_child(kstd::make_unique<arch::devices::local_apic>(interrupt_controller_major, core_count, apic.id(),
+ local_apic_address, is_bsp));
cpu_bus->add_child(std::move(core));
++core_count;
}