]> git.corax.cc Git - corax/commitdiff
kernel/core: Clean up and remove unused code in main.c
authorMatthias Kruk <m@m10k.eu>
Wed, 6 May 2020 06:50:03 +0000 (15:50 +0900)
committerMatthias Kruk <m@m10k.eu>
Wed, 6 May 2020 06:50:03 +0000 (15:50 +0900)
kernel/core/main.c

index 2b59083b233e3dced2e80c2b48e74c4a3b82292e..8db5e82ded66ece3fc59de8df61f00e4486e0864 100644 (file)
@@ -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 <matt@corax.cc>\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 <matt@corax.cc>\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");
     }