kern

annotate src/main.c @ 88:a398bf73fe93

- added the partition table parsing code - starting with the filesystem
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 08 Dec 2011 13:34:47 +0200
parents a6513dc35f04
children
rev   line source
nuclear@1 1 #include <stdio.h>
nuclear@16 2 #include "mboot.h"
nuclear@0 3 #include "vid.h"
nuclear@1 4 #include "term.h"
nuclear@16 5 #include "asmops.h"
nuclear@7 6 #include "segm.h"
nuclear@10 7 #include "intr.h"
nuclear@76 8 #include "ata.h"
nuclear@88 9 #include "fs.h"
nuclear@36 10 #include "rtc.h"
nuclear@33 11 #include "timer.h"
nuclear@27 12 #include "mem.h"
nuclear@16 13 #include "vm.h"
nuclear@47 14 #include "proc.h"
nuclear@16 15
nuclear@2 16
nuclear@16 17 void kmain(struct mboot_info *mbinf)
nuclear@0 18 {
nuclear@2 19 clear_scr();
nuclear@16 20
nuclear@16 21 /* pointless verbal diarrhea */
nuclear@16 22 if(mbinf->flags & MB_LDRNAME) {
nuclear@16 23 printf("loaded by: %s\n", mbinf->boot_loader_name);
nuclear@16 24 }
nuclear@16 25 if(mbinf->flags & MB_CMDLINE) {
nuclear@16 26 printf("kernel command line: %s\n", mbinf->cmdline);
nuclear@16 27 }
nuclear@16 28
nuclear@2 29 puts("kernel starting up");
nuclear@2 30
nuclear@7 31 init_segm();
nuclear@10 32 init_intr();
nuclear@7 33
nuclear@31 34
nuclear@26 35 /* initialize the physical memory manager */
nuclear@26 36 init_mem(mbinf);
nuclear@26 37 /* initialize paging and the virtual memory manager */
nuclear@26 38 init_vm();
nuclear@19 39
nuclear@76 40 /* initialize ATA disks */
nuclear@76 41 init_ata();
nuclear@88 42 /* initialize the filesystem */
nuclear@88 43 init_fs();
nuclear@76 44
nuclear@40 45 /* initialize the timer and RTC */
nuclear@40 46 init_timer();
nuclear@40 47 init_rtc();
nuclear@40 48
nuclear@52 49 /* create the first process and switch to it */
nuclear@77 50 /*init_proc();*/
nuclear@47 51
nuclear@52 52 /* XXX unreachable */
nuclear@31 53
nuclear@2 54 for(;;) {
nuclear@43 55 halt_cpu();
nuclear@2 56 }
nuclear@0 57 }