- 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);