1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 14:45:07 +00:00

Revert "Kernel: Copy command line to a safe place"

This reverts commit 41c005cb14.
This commit is contained in:
Andreas Kling 2020-08-22 16:34:12 +02:00
parent 0db7e04c2e
commit 8a21491d86
3 changed files with 4 additions and 22 deletions

View file

@ -25,34 +25,21 @@
*/ */
#include <Kernel/CommandLine.h> #include <Kernel/CommandLine.h>
#include <Kernel/StdLib.h>
namespace Kernel { namespace Kernel {
static char s_cmd_line[1024];
static CommandLine* s_the; static CommandLine* s_the;
void CommandLine::early_initialize(const char* cmd_line)
{
if (!cmd_line)
return;
size_t length = strlen(cmd_line);
if (length >= sizeof(s_cmd_line))
length = sizeof(s_cmd_line) -1;
memcpy(s_cmd_line, cmd_line, length);
s_cmd_line[length] = '\0';
}
const CommandLine& kernel_command_line() const CommandLine& kernel_command_line()
{ {
ASSERT(s_the); ASSERT(s_the);
return *s_the; return *s_the;
} }
void CommandLine::initialize() void CommandLine::initialize(const String& string)
{ {
ASSERT(!s_the); ASSERT(!s_the);
s_the = new CommandLine(s_cmd_line); s_the = new CommandLine(string);
} }
CommandLine::CommandLine(const String& string) CommandLine::CommandLine(const String& string)

View file

@ -36,8 +36,7 @@ class CommandLine {
AK_MAKE_ETERNAL; AK_MAKE_ETERNAL;
public: public:
static void early_initialize(const char* cmd_line); static void initialize(const String&);
static void initialize();
const String& string() const { return m_string; } const String& string() const { return m_string; }
Optional<String> lookup(const String& key) const; Optional<String> lookup(const String& key) const;

View file

@ -113,10 +113,6 @@ extern "C" [[noreturn]] void init()
{ {
setup_serial_debug(); setup_serial_debug();
// We need to copy the command line before kmalloc is initialized,
// as it may overwrite parts of multiboot!
CommandLine::early_initialize(reinterpret_cast<const char*>(low_physical_to_virtual(multiboot_info_ptr->cmdline)));
s_bsp_processor.early_initialize(0); s_bsp_processor.early_initialize(0);
// Invoke the constructors needed for the kernel heap // Invoke the constructors needed for the kernel heap
@ -127,7 +123,7 @@ extern "C" [[noreturn]] void init()
s_bsp_processor.initialize(0); s_bsp_processor.initialize(0);
CommandLine::initialize(); CommandLine::initialize(reinterpret_cast<const char*>(low_physical_to_virtual(multiboot_info_ptr->cmdline)));
MemoryManager::initialize(0); MemoryManager::initialize(0);
// Invoke all static global constructors in the kernel. // Invoke all static global constructors in the kernel.