X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/2e21eb2f39dd80aa166216381d5d402be943686e..86a9cfeadbbe180abf6c8bd8c64c86957fdacfeb:/lunaix-os/kernel/k_init.c?ds=sidebyside diff --git a/lunaix-os/kernel/k_init.c b/lunaix-os/kernel/k_init.c index c119676..863f574 100644 --- a/lunaix-os/kernel/k_init.c +++ b/lunaix-os/kernel/k_init.c @@ -102,9 +102,7 @@ _kernel_init() { 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, @@ -112,7 +110,8 @@ void spawn_lxinit() { .ss = KDATA_SEG, .eflags = cpu_reflags() }; - kinit.page_table = dup_pagetable(kinit.pid); + + setup_proc_mem(&kinit, PD_REFERENCED); // Ok... 准备fork进我们的init进程 /* @@ -238,7 +237,7 @@ setup_memory(multiboot_memory_map_t* map, size_t map_size) { KERNEL_PID, (void*)(VGA_BUFFER_VADDR + (i << PG_SIZE_BITS)), (void*)(VGA_BUFFER_PADDR + (i << PG_SIZE_BITS)), - PG_PREM_RW + PG_PREM_URW ); }