kern

annotate src/main.c @ 43:5f6c5751ae05

- implemented clone_vmem
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 25 Jul 2011 11:29:02 +0300
parents 928b0ebfff4d
children f65b348780e3
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@36 8 #include "rtc.h"
nuclear@33 9 #include "timer.h"
nuclear@27 10 #include "mem.h"
nuclear@16 11 #include "vm.h"
nuclear@16 12
nuclear@2 13
nuclear@16 14 void kmain(struct mboot_info *mbinf)
nuclear@0 15 {
nuclear@2 16 clear_scr();
nuclear@16 17
nuclear@16 18 /* pointless verbal diarrhea */
nuclear@16 19 if(mbinf->flags & MB_LDRNAME) {
nuclear@16 20 printf("loaded by: %s\n", mbinf->boot_loader_name);
nuclear@16 21 }
nuclear@16 22 if(mbinf->flags & MB_CMDLINE) {
nuclear@16 23 printf("kernel command line: %s\n", mbinf->cmdline);
nuclear@16 24 }
nuclear@16 25
nuclear@2 26 puts("kernel starting up");
nuclear@2 27
nuclear@7 28 init_segm();
nuclear@10 29 init_intr();
nuclear@7 30
nuclear@31 31
nuclear@26 32 /* initialize the physical memory manager */
nuclear@26 33 init_mem(mbinf);
nuclear@26 34 /* initialize paging and the virtual memory manager */
nuclear@26 35 init_vm();
nuclear@19 36
nuclear@40 37 /* initialize the timer and RTC */
nuclear@40 38 init_timer();
nuclear@40 39 init_rtc();
nuclear@40 40
nuclear@27 41 /* initialization complete, enable interrupts */
nuclear@27 42 enable_intr();
nuclear@27 43
nuclear@31 44
nuclear@2 45 for(;;) {
nuclear@43 46 halt_cpu();
nuclear@2 47 }
nuclear@0 48 }