Remove kernel procs
This commit is contained in:
@ -13,8 +13,6 @@
|
||||
#include "vfs/vfs.h"
|
||||
#include "bootinfo/bootinfo.h"
|
||||
#include "ipc/pipe/pipe.h"
|
||||
#include "kproc/kproc.h"
|
||||
#include "serialproc/serialproc.h"
|
||||
#include "sysdefs/processctl.h"
|
||||
|
||||
#define PROC_REAPER_FREQ 30
|
||||
@ -75,41 +73,6 @@ ElfAuxval proc_load_elf_segs(Proc *proc, uint8_t *data) {
|
||||
return aux;
|
||||
}
|
||||
|
||||
Proc *proc_spawnkern(void (*ent)(void), char *name) {
|
||||
if (pids >= PROC_MAX) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Proc *proc = dlmalloc(sizeof(*proc));
|
||||
if (proc == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
hal_memset(proc, 0, sizeof(*proc));
|
||||
hal_memcpy(proc->name, name, PROC_NAME_MAX);
|
||||
|
||||
proc->kern = true;
|
||||
|
||||
uint8_t *pstackp = (uint8_t *)pmm_alloc(PROC_STACKBLOCKS) + PROC_STACKSIZE;
|
||||
uint8_t *kstackp = (uint8_t *)pmm_alloc(PROC_STACKBLOCKS) + PROC_STACKSIZE;
|
||||
proc->platformdata.kstack = kstackp;
|
||||
proc->platformdata.pstack = pstackp;
|
||||
|
||||
hal_memset(&proc->platformdata.trapframe, 0, sizeof(proc->platformdata.trapframe));
|
||||
|
||||
proc->platformdata.trapframe.ss = 0x10;
|
||||
proc->platformdata.trapframe.rsp = (uint64_t)VIRT(pstackp);
|
||||
proc->platformdata.trapframe.rflags = 0x202;
|
||||
proc->platformdata.trapframe.cs = 0x08;
|
||||
proc->platformdata.trapframe.rip = (uint64_t)ent;
|
||||
proc->platformdata.cr3 = KERNEL_CR3;
|
||||
proc->state = PROC_EMBRYO;
|
||||
proc->pid = pids++;
|
||||
spinlock_init(&proc->bcast_pipes.spinlock);
|
||||
spinlock_init(&proc->pipes_spinlock);
|
||||
|
||||
return proc;
|
||||
}
|
||||
|
||||
Proc *proc_spawnuser(char *mountpoint, char *path) {
|
||||
VfsObj *vobj = vfs_open(mountpoint, path, VFS_FLAG_READ);
|
||||
if (vobj == NULL) {
|
||||
|
Reference in New Issue
Block a user