X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/1fe5f5eb5378a47bf0f3451762743c162e40faad..64e5fa9a495e388c922157b9a616204c299f5e05:/lunaix-os/arch/i386/boot/mb_parser.c?ds=inline diff --git a/lunaix-os/arch/i386/boot/mb_parser.c b/lunaix-os/arch/i386/boot/mb_parser.c index 81e2716..64a4051 100644 --- a/lunaix-os/arch/i386/boot/mb_parser.c +++ b/lunaix-os/arch/i386/boot/mb_parser.c @@ -60,28 +60,9 @@ mb_parse_cmdline(struct boot_handoff* bhctx, void* buffer, char* cmdline) } mb_memcpy(buffer, (u8_t*)cmdline, slen); + bhctx->kexec.len = slen; - cmdline = (char*)buffer; - buffer = &cmdline[slen]; - - char c, prev = SPACE; - int i = 0, argc = 0; - ptr_t argptr = (ptr_t)cmdline; - - while ((c = cmdline[i])) { - if (c == SPACE && prev != SPACE) { - ((ptr_t*)buffer)[argc++] = argptr; - } else if (c != SPACE && prev == SPACE) { - argptr = (ptr_t)&cmdline[i]; - } - prev = c; - i++; - } - - bhctx->kexec.argv = (char**)buffer; - bhctx->kexec.argc = argc; - - return slen + argc * sizeof(ptr_t); + return slen; } size_t boot_text @@ -165,6 +146,8 @@ mb_parse(struct multiboot_info* mb) { struct boot_handoff* bhctx = (struct boot_handoff*)bhctx_buffer; ptr_t bhctx_ex = (ptr_t)&bhctx[1]; + + *bhctx = (struct boot_handoff){ }; /* Parse memory map */ if ((mb->flags & MULTIBOOT_INFO_MEM_MAP)) {