From b5857ceaadd870390aff3a9daa3cf03bc3faa7e2 Mon Sep 17 00:00:00 2001 From: Liav A Date: Wed, 5 Feb 2020 20:38:41 +0200 Subject: [PATCH] Kernel Commandline: Remove noacpi & noacpi_aml boot arguments Instead of having boot arguments like noacpi & noacpi_aml, we have one boot argument - acpi='on|off|limited'. --- Kernel/init.cpp | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Kernel/init.cpp b/Kernel/init.cpp index ac1679af38..6c5d50a5b2 100644 --- a/Kernel/init.cpp +++ b/Kernel/init.cpp @@ -399,15 +399,24 @@ extern "C" int __cxa_atexit(void (*)(void*), void*, void*) void setup_acpi() { - bool complete_acpi_disable = KParams::the().has("noacpi"); - bool dynamic_acpi_disable = KParams::the().has("noacpi_aml"); - if (complete_acpi_disable) { - ACPIParser::initialize_limited(); - } else { - if (!dynamic_acpi_disable) { - ACPIDynamicParser::initialize_without_rsdp(); - } else { - ACPIStaticParser::initialize_without_rsdp(); - } + if (!KParams::the().has("acpi")) { + ACPIDynamicParser::initialize_without_rsdp(); + return; } + + auto acpi = KParams::the().get("acpi"); + if (acpi == "off") { + ACPIParser::initialize_limited(); + return; + } + if (acpi == "on") { + ACPIDynamicParser::initialize_without_rsdp(); + return; + } + if (acpi == "limited") { + ACPIStaticParser::initialize_without_rsdp(); + return; + } + kprintf("acpi boot argmuent has an invalid value.\n"); + hang(); }