Rework requesting process arguments

This commit is contained in:
2025-09-21 22:50:39 +02:00
parent 475f77d30f
commit 397379bca3
2 changed files with 9 additions and 6 deletions

View File

@ -91,21 +91,24 @@ int32_t SYSCALL5(sys_processctl, pid1, cmd1, arg1, arg2, arg3) {
ret = proc->procargs.len;
} break;
case PCTL_ARGV: {
char **argbuf = (char **)arg1;
size_t *argslen = (size_t *)arg1;
char **argbuf = (char **)arg2;
if (argbuf == NULL) {
ret = E_INVALIDARGUMENT;
goto done;
}
size_t len = arg2;
size_t i;
size_t maxargs = (size_t)arg3;
ProcArg *arg, *argtmp;
LL_FOREACH_SAFE_IDX_LIMIT(proc->procargs.list, arg, argtmp, i, len) {
size_t i;
LL_FOREACH_SAFE_IDX_LIMIT(proc->procargs.list, arg, argtmp, i, maxargs) {
if (argbuf[i] == NULL) {
ret = E_INVALIDARGUMENT;
goto done;
}
hal_strcpy(argbuf[i], arg->string);
}
*argslen = i;
ret = E_OK;
} break;