From 7a7e0f23d144314ae80bbb6f36002355cd8b6577 Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Wed, 6 May 2020 15:50:03 +0900 Subject: [PATCH] kernel/core: Clean up and remove unused code in main.c --- kernel/core/main.c | 135 ++++----------------------------------------- 1 file changed, 11 insertions(+), 124 deletions(-) diff --git a/kernel/core/main.c b/kernel/core/main.c index 2b59083..8db5e82 100644 --- a/kernel/core/main.c +++ b/kernel/core/main.c @@ -35,70 +35,8 @@ void cpu_debug(void); int arch_init(void*); int sched_init(void); -extern void io_main(void); -extern void _stdio(void); -extern void _net(void); -extern int vga_main(int, char**); -extern int kbd_main(int, char**); - extern struct initfs initfs; -void _print_mptbl(void *tbl) -{ - u32_t *pmcp; - u16_t entries; - - dbg_printf("MP: 0x%08x [0x%08x]\n", (u32_t)tbl, *(u32_t*)tbl); - - pmcp = (u32_t*)*(u32_t*)(tbl + 4); - - if(*pmcp == 0x504d4350 || *pmcp == 0x50434d50) { - entries = *(u16_t*)(pmcp + 1); - - dbg_printf("PMCP: 0x%08x, l: %hu, [0x%08x]\n", - pmcp, entries, *pmcp); - tbl += 0x2c; - - while(entries) { - u8_t type; - - type = *(u8_t*)tbl; - - switch(type) { - case 0: /* processor entry */ - tbl += 0x14; - break; - case 1: /* bus entry */ - tbl += 8; - break; - case 2: /* IO APIC entry */ - tbl += 8; - break; - case 3: /* IO Interrupt entry */ - dbg_printf("[INT] T: 0x%02hhx SRC: 0x%02hhx " - "IRQ: 0x%02hhx DEST: 0x%02hhx " - "DINT: 0x%02hhx\n", - *((u8_t*)tbl + 1), *((u8_t*)tbl + 4), - *((u8_t*)tbl + 5), *((u8_t*)tbl + 6), - *((u8_t*)tbl + 7)); - tbl += 8; - break; - case 4: /* Local Interrupt assignment entry */ - tbl += 8; - break; - default: - dbg_printf("Unsupported entry\n"); - entries = 1; - break; - } - - entries--; - } - } - - return; -} - static void _idle(void) { /* @@ -148,7 +86,8 @@ static void _init(void) char env0[16]; char *envp[3]; - snprintf(argv0, sizeof(argv0), "%s", initfs.ifs_entries[i].ife_name); + snprintf(argv0, sizeof(argv0), "%s", + initfs.ifs_entries[i].ife_name); snprintf(argv1, sizeof(argv1), "--verbose"); argv[0] = argv0; @@ -182,52 +121,11 @@ int corax(void *mb_info, u32_t magic) process_t *proc; int err; - dbg_printf("Corax 0.1 - As the Crow flies\n"); - dbg_printf("(C) 2020 Matthias Kruk \n"); - dbg_printf("Compiled on %s at %s\n", __DATE__, __TIME__); - -/* - void *ptr; + dbg_printf("Corax 0.1 - As the Crow flies\n"); + dbg_printf("(C) 2020 Matthias Kruk \n"); + dbg_printf("Compiled on %s at %s\n", __DATE__, __TIME__); - for(ptr = (void*)0xd0000; ptr < (void*)0xffffd; ptr++) { - if(*(u32_t*)ptr == 0x5f504d5f || *(u32_t*)ptr == 0x5f4d505f) { - _print_mptbl(ptr); - } - } - - for(ptr = (void*)0x9fc00; ptr <= (void*)0x9fffc; ptr++) { - if(*(u32_t*)ptr == 0x5f504d5f || *(u32_t*)ptr == 0x5f4d505f) { - _print_mptbl(ptr); - } - } - - for(ptr = NULL; ptr <= (void*)0x1000000; ptr++) { - if(*(u32_t*)ptr == 0x5f504d5f || *(u32_t*)ptr == 0x5f4d505f) { - _print_mptbl(ptr); - } - } - */ - - arch_init(mb_info); -#if 0 - { - u64_t capabilities = cpu_get_capabilities(); - - dbg_printf("CPUID.01h = 0x%016llx\n", capabilities); - } -#endif - -#if 0 - { - volatile register u64_t sysenter, sysexit; - - sysenter = cpu_timestamp(); - asm volatile("int $0xCC"); - sysexit = cpu_timestamp(); - - dbg_printf("Syscall took %llu cycles\n", sysexit - sysenter); - } -#endif + arch_init(mb_info); err = sched_init(); @@ -235,22 +133,14 @@ int corax(void *mb_info, u32_t magic) PANIC("Failed to initialize scheduler\n"); } - dbg_printf("initfs has %01u entries\n", initfs.ifs_num_entries); - - for(err = 0; err < initfs.ifs_num_entries; err++) { - dbg_printf("initfs[%01u] = { \"%s\", 0x%08x : 0x%08x }\n", - err, - initfs.ifs_entries[err].ife_name, - initfs.ifs_entries[err].ife_base, - initfs.ifs_entries[err].ife_limit); - } - + /* spawn idle process - pid 0 */ err = process_create(&proc, 0, (void*)_idle); if(err < 0) { PANIC("Could not spawn idle process\n"); } + /* spawn init process - pid 1 */ err = process_create(&proc, 3, (void*)_init); if(err < 0) { @@ -258,16 +148,13 @@ int corax(void *mb_info, u32_t magic) } /* - * Disable early printf - all further output should - * be printed through the VGA process that is spawned - * by init. + * Disable early printf - all further output should be printed through + * the VGA process that is spawned by init. */ -/* dbg_printf_disable(); */ + /* dbg_printf_disable(); */ sched_tick(); - dbg_printf("This should not get printed\n"); - while(1) { asm volatile("hlt"); } -- 2.47.3