diff --git a/boot/cmdline.c b/boot/cmdline.c index 270ee94..186fa4a 100644 --- a/boot/cmdline.c +++ b/boot/cmdline.c @@ -9,6 +9,11 @@ extern const struct cmdline_option* __ld_cmdline_start[]; extern const struct cmdline_option* __ld_cmdline_end[]; static char cmdline_buf[0x1000]; +static char cmdline_raw[0x1000]; + +const char* cmdline_get() { + return cmdline_raw; +} void cmdline_parse_buf( char* cmdline_buf, @@ -112,5 +117,6 @@ void cmdline_parse(const char* cmdline) { const size_t len = strnlen(cmdline, sizeof(cmdline_buf) - 1); memcpy(cmdline_buf, cmdline, len); + memcpy(cmdline_raw, cmdline, len); cmdline_parse_buf(cmdline_buf, len, __ld_cmdline_start, __ld_cmdline_end); } diff --git a/include/zinnia/cmdline.h b/include/zinnia/cmdline.h index 4a1c00b..f057668 100644 --- a/include/zinnia/cmdline.h +++ b/include/zinnia/cmdline.h @@ -50,6 +50,8 @@ struct cmdline_option { // Parses the command line and invokes all options. void cmdline_parse(const char* cmdline); +const char* cmdline_get(); + void cmdline_parse_buf( char* buf, size_t len,