removed pdclib, strange things were happening..., user shell kinda works now
This commit is contained in:
@@ -57,6 +57,7 @@ vfs_node_t* load_initrd() {
|
||||
}
|
||||
|
||||
void load_root_program(const char* path) {
|
||||
disable_interrupts();
|
||||
uint32_t kernel_cr3 = fetch_cr3();
|
||||
void* cr3 = create_task_pd();
|
||||
load_pd(cr3);
|
||||
@@ -129,6 +130,7 @@ void load_root_program(const char* path) {
|
||||
*(--u_esp) = 0; // argc = 0
|
||||
|
||||
create_task(e_hdr->e_entry, (uint32_t)cr3, 1, (uint32_t)u_esp);
|
||||
enable_interrupts();
|
||||
|
||||
load_pd((void*)kernel_cr3);
|
||||
flush_tlb();
|
||||
@@ -169,7 +171,8 @@ void kmain(uint32_t magic, multiboot_info* mbi) {
|
||||
|
||||
disable_interrupts();
|
||||
init_scheduler();
|
||||
load_root_program("/origin.elf");
|
||||
kprintf("done loading origin program\n");
|
||||
enable_interrupts();
|
||||
|
||||
kprintf("loading rocksh...\n");
|
||||
load_root_program("/rocksh.elf");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user