Rewrite LL_* (link list) macros
This commit is contained in:
@ -86,13 +86,12 @@ int32_t SYSCALL1(sys_mman_unmap, addr1) {
|
||||
uint8_t *virt = NULL;
|
||||
VasRange *tofree = NULL;
|
||||
|
||||
VasRange *range = proc->vas;
|
||||
while (range) {
|
||||
if (range->virtstart == addr) {
|
||||
tofree = range;
|
||||
VasRange *vas, *vastmp;
|
||||
LL_FOREACH_SAFE(proc->vas, vas, vastmp) {
|
||||
if (vas->virtstart == addr) {
|
||||
tofree = vas;
|
||||
break;
|
||||
}
|
||||
range = range->next;
|
||||
}
|
||||
|
||||
if (tofree == NULL) {
|
||||
|
@ -97,30 +97,23 @@ int32_t SYSCALL5(sys_processctl, pid1, cmd1, arg1, arg2, arg3) {
|
||||
goto done;
|
||||
}
|
||||
size_t len = arg2;
|
||||
ProcArg *arg = proc->procargs.list;
|
||||
size_t i = 0;
|
||||
while (arg) {
|
||||
if (i == len) {
|
||||
break;
|
||||
}
|
||||
size_t i;
|
||||
ProcArg *arg, *argtmp;
|
||||
LL_FOREACH_SAFE_IDX_LIMIT(proc->procargs.list, arg, argtmp, i, len) {
|
||||
if (argbuf[i] == NULL) {
|
||||
ret = E_INVALIDARGUMENT;
|
||||
goto done;
|
||||
}
|
||||
hal_strcpy(argbuf[i], arg->string);
|
||||
arg = arg->next;
|
||||
i++;
|
||||
}
|
||||
|
||||
ret = E_OK;
|
||||
} break;
|
||||
case PCTL_PLS_SZ: {
|
||||
size_t i = 0;
|
||||
Proc *p, *ptmp;
|
||||
size_t i;
|
||||
spinlock_acquire(&PROCS.spinlock);
|
||||
Proc *p = PROCS.procs;
|
||||
while (p) {
|
||||
i++;
|
||||
p = p->next;
|
||||
}
|
||||
LL_FOREACH_SAFE_IDX(PROCS.procs, p, ptmp, i);
|
||||
spinlock_release(&PROCS.spinlock);
|
||||
ret = i;
|
||||
} break;
|
||||
@ -133,26 +126,22 @@ int32_t SYSCALL5(sys_processctl, pid1, cmd1, arg1, arg2, arg3) {
|
||||
goto done;
|
||||
}
|
||||
|
||||
size_t i = 0;
|
||||
Proc *p, *ptmp;
|
||||
size_t i;
|
||||
spinlock_acquire(&PROCS.spinlock);
|
||||
Proc *p = PROCS.procs;
|
||||
while (p) {
|
||||
LL_FOREACH_SAFE_IDX(PROCS.procs, p, ptmp, i) {
|
||||
if (i == pidx) {
|
||||
stat->pid = p->pid;
|
||||
hal_strcpy(stat->name, p->name);
|
||||
stat->state = p->state;
|
||||
stat->kern = p->kern;
|
||||
|
||||
VasRange *range = p->vas;
|
||||
while (range) {
|
||||
stat->usemem += range->size;
|
||||
range = range->next;
|
||||
VasRange *vas, *vastmp;
|
||||
LL_FOREACH_SAFE(p->vas, vas, vastmp) {
|
||||
stat->usemem += vas->size;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
i++;
|
||||
p = p->next;
|
||||
}
|
||||
spinlock_release(&PROCS.spinlock);
|
||||
ret = E_OK;
|
||||
|
Reference in New Issue
Block a user