Kernel: Simplify the way we check for "serial_debug" on command line

This commit is contained in:
Andreas Kling 2020-08-13 20:16:50 +02:00
parent b777640fef
commit 6d9b59f1b7

View file

@ -362,24 +362,13 @@ void init_stage2()
void setup_serial_debug()
{
// this is only used one time, directly below here. we can't use this part
// of libc at this point in the boot process, or we'd just pull strstr in
// from <string.h>.
auto bad_prefix_check = [](const char* str, const char* search) -> bool {
while (*search)
if (*search++ != *str++)
return false;
return true;
};
// serial_debug will output all the klog() and dbg() data to COM1 at
// 8-N-1 57600 baud. this is particularly useful for debugging the boot
// process on live hardware.
//
// note: it must be the first option in the boot cmdline.
u32 cmdline = low_physical_to_virtual(multiboot_info_ptr->cmdline);
if (cmdline && bad_prefix_check(reinterpret_cast<const char*>(cmdline), "serial_debug"))
if (cmdline && StringView(reinterpret_cast<const char*>(cmdline)).starts_with("serial_debug"))
set_serial_debug(true);
}