1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 15:48:12 +00:00

Kernel: Remove "non-operational" ACPI parser state

If we don't support ACPI, just don't instantiate an ACPI parser.
This is way less confusing than having a special parser class whose
only purpose is to do nothing.

We now search for the RSDP in ACPI::initialize() instead of letting
the parser constructor do it. This allows us to defer the decision
to create a parser until we're sure we can make a useful one.
This commit is contained in:
Andreas Kling 2020-04-09 14:31:47 +02:00
parent d95362d8cd
commit 4644217094
13 changed files with 46 additions and 111 deletions

View file

@ -92,8 +92,8 @@ void TimeManagement::stale_function(const RegisterState&)
TimeManagement::TimeManagement(bool probe_non_legacy_hardware_timers)
{
if (ACPI::Parser::the().is_operable()) {
if (!ACPI::Parser::the().x86_specific_flags().cmos_rtc_not_present) {
if (ACPI::is_enabled()) {
if (!ACPI::Parser::the()->x86_specific_flags().cmos_rtc_not_present) {
RTC::initialize();
m_epoch_time += boot_time();
} else {
@ -161,7 +161,7 @@ bool TimeManagement::is_hpet_periodic_mode_allowed()
bool TimeManagement::probe_and_set_non_legacy_hardware_timers()
{
if (!ACPI::Parser::the().is_operable())
if (!ACPI::is_enabled())
return false;
if (!HPET::test_and_initialize())
return false;
@ -211,8 +211,8 @@ bool TimeManagement::probe_and_set_non_legacy_hardware_timers()
bool TimeManagement::probe_and_set_legacy_hardware_timers()
{
if (ACPI::Parser::the().is_operable()) {
if (ACPI::Parser::the().x86_specific_flags().cmos_rtc_not_present) {
if (ACPI::is_enabled()) {
if (ACPI::Parser::the()->x86_specific_flags().cmos_rtc_not_present) {
dbg() << "ACPI: CMOS RTC Not Present";
return false;
} else {