void spawn_lxinit() {
struct proc_info kinit;
- memset(&kinit, 0, sizeof(kinit));
- kinit.parent = -1;
- kinit.pid = 1;
+ init_proc(&kinit);
kinit.intr_ctx = (isr_param) {
.registers.esp = KSTACK_TOP - 20,
.cs = KCODE_SEG,
.ss = KDATA_SEG,
.eflags = cpu_reflags()
};
- kinit.page_table = dup_pagetable(kinit.pid);
+
+ setup_proc_mem(&kinit, PD_REFERENCED);
// Ok... 准备fork进我们的init进程
/*
KERNEL_PID,
(void*)(VGA_BUFFER_VADDR + (i << PG_SIZE_BITS)),
(void*)(VGA_BUFFER_PADDR + (i << PG_SIZE_BITS)),
- PG_PREM_RW
+ PG_PREM_URW
);
}