From 4e8afae5fbdafb7adfe006cab1bf8ebbb661ec50 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Mon, 29 Sep 2025 21:32:07 +0200 Subject: [PATCH] all procs are user procs --- kernel/proc/proc.c | 40 ++++++++++--------------------------- kernel/proc/proc.h | 2 -- kernel/syscall/processctl.c | 1 - share/sysdefs/processctl.h | 1 - user/pctl/ls.c | 5 ++--- 5 files changed, 13 insertions(+), 36 deletions(-) diff --git a/kernel/proc/proc.c b/kernel/proc/proc.c index 76d237b..c3a553d 100644 --- a/kernel/proc/proc.c +++ b/kernel/proc/proc.c @@ -200,21 +200,19 @@ void proc_reaper(void) { pmm_free((uintptr_t)(zombie->platformdata.kstack - PROC_STACKSIZE), PROC_STACKBLOCKS); pmm_free((uintptr_t)(zombie->platformdata.pstack - PROC_STACKSIZE), PROC_STACKBLOCKS); - if (!zombie->kern) { - VasRange *vas, *vastmp; - LL_FOREACH_SAFE(zombie->vas, vas, vastmp) { - hal_vmm_unmap_range(zombie->platformdata.cr3, vas->virtstart, vas->physstart, vas->size); - pmm_free((uintptr_t)vas->physstart, vas->size / HAL_PAGE_SIZE); - dlfree(vas); - } + VasRange *vas, *vastmp; + LL_FOREACH_SAFE(zombie->vas, vas, vastmp) { + hal_vmm_unmap_range(zombie->platformdata.cr3, vas->virtstart, vas->physstart, vas->size); + pmm_free((uintptr_t)vas->physstart, vas->size / HAL_PAGE_SIZE); + dlfree(vas); + } - pmm_free((uintptr_t)zombie->platformdata.cr3, 1); + pmm_free((uintptr_t)zombie->platformdata.cr3, 1); - ProcArg *arg, *argtmp; - LL_FOREACH_SAFE(zombie->procargs.list, arg, argtmp) { - dlfree(arg->string); - dlfree(arg); - } + ProcArg *arg, *argtmp; + LL_FOREACH_SAFE(zombie->procargs.list, arg, argtmp) { + dlfree(arg->string); + dlfree(arg); } dlfree(zombie); } @@ -250,22 +248,6 @@ void proc_killself(void) { spinlock_release(&PROCS.spinlock); } -void proc_status(void) { - static const char *statuses[] = {"ready", "running", "zombie", "waiting"}; - for (;;) { - spinlock_acquire(&PROCS.spinlock); - Proc *head = PROCS.procs; - while (head) { - kprintf("%s %s %s\n", head->kern ? "kern" : "user", statuses[head->state], head->name); - head = head->next; - } - kprintf("\n\n"); - spinlock_release(&PROCS.spinlock); - - hal_wait(3 * 1000); - } -} - void proc_init(void) { spinlock_init(&PROCS.spinlock); PROCS.procs = NULL; diff --git a/kernel/proc/proc.h b/kernel/proc/proc.h index ac05e90..a8ac3b8 100644 --- a/kernel/proc/proc.h +++ b/kernel/proc/proc.h @@ -54,8 +54,6 @@ typedef struct Proc { uint8_t state; VasRange *vas; - bool kern; - VfsObj *vobjs[PROC_VFSHANDLES_MAX]; uint64_t vobjcnt; diff --git a/kernel/syscall/processctl.c b/kernel/syscall/processctl.c index 33ec538..b694a16 100644 --- a/kernel/syscall/processctl.c +++ b/kernel/syscall/processctl.c @@ -139,7 +139,6 @@ int32_t SYSCALL5(sys_processctl, pid1, cmd1, arg1, arg2, arg3) { stat->pid = p->pid; hal_strcpy(stat->name, p->name); stat->state = p->state; - stat->kern = p->kern; VasRange *vas, *vastmp; LL_FOREACH_SAFE(p->vas, vas, vastmp) { diff --git a/share/sysdefs/processctl.h b/share/sysdefs/processctl.h index 2f57e25..cb8f5e6 100644 --- a/share/sysdefs/processctl.h +++ b/share/sysdefs/processctl.h @@ -20,7 +20,6 @@ typedef struct { char name[0x100]; uint8_t state; size_t usemem; - bool kern; } ProcStat; #endif // SHARE_HDRS_PROCESSCTL_H_ diff --git a/user/pctl/ls.c b/user/pctl/ls.c index ab79d87..de088ad 100644 --- a/user/pctl/ls.c +++ b/user/pctl/ls.c @@ -64,7 +64,7 @@ void pctl_ls(void) { char *namebuf = umalloc(34); char *membuf = umalloc(20); - uprintf("%-30s %s %-6s %-15s %-8s\n", "NAME", "PID", "TYPE", "MEMORY", "STATE"); + uprintf("%-30s %s %-15s %-8s\n", "NAME", "PID", "MEMORY", "STATE"); for (size_t i = 0; i < procslen; i++) { ProcStat stat; ZERO(&stat); @@ -86,10 +86,9 @@ void pctl_ls(void) { namebuf[31] = namebuf[32] = namebuf[33] = '.'; // Too big format string causes a stack overflow. This is an issue with printf ;( - uprintf("%-30s %-3lu %-6s %-15s ", + uprintf("%-30s %-3lu %-15s ", namebuf, stat.pid, - stat.kern ? "KERNEL" : "USER", human_size(stat.usemem, membuf, 20) ); uprintf("%-8s", states[stat.state]);