kern
annotate src/main.c @ 77:a6513dc35f04
- started writing disk/ata code
- made the debug script rip the commandline arguments out of the run script so I won't have to keep them in sync
- added 64bit sized types in klibc/intypes.h
- temporarily commented out the processes init from main
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 06 Dec 2011 11:56:08 +0200 |
parents | 0fe6eef16335 |
children | a398bf73fe93 |
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@36 | 9 #include "rtc.h" |
nuclear@33 | 10 #include "timer.h" |
nuclear@27 | 11 #include "mem.h" |
nuclear@16 | 12 #include "vm.h" |
nuclear@47 | 13 #include "proc.h" |
nuclear@16 | 14 |
nuclear@2 | 15 |
nuclear@16 | 16 void kmain(struct mboot_info *mbinf) |
nuclear@0 | 17 { |
nuclear@2 | 18 clear_scr(); |
nuclear@16 | 19 |
nuclear@16 | 20 /* pointless verbal diarrhea */ |
nuclear@16 | 21 if(mbinf->flags & MB_LDRNAME) { |
nuclear@16 | 22 printf("loaded by: %s\n", mbinf->boot_loader_name); |
nuclear@16 | 23 } |
nuclear@16 | 24 if(mbinf->flags & MB_CMDLINE) { |
nuclear@16 | 25 printf("kernel command line: %s\n", mbinf->cmdline); |
nuclear@16 | 26 } |
nuclear@16 | 27 |
nuclear@2 | 28 puts("kernel starting up"); |
nuclear@2 | 29 |
nuclear@7 | 30 init_segm(); |
nuclear@10 | 31 init_intr(); |
nuclear@7 | 32 |
nuclear@31 | 33 |
nuclear@26 | 34 /* initialize the physical memory manager */ |
nuclear@26 | 35 init_mem(mbinf); |
nuclear@26 | 36 /* initialize paging and the virtual memory manager */ |
nuclear@26 | 37 init_vm(); |
nuclear@19 | 38 |
nuclear@76 | 39 /* initialize ATA disks */ |
nuclear@76 | 40 init_ata(); |
nuclear@76 | 41 |
nuclear@40 | 42 /* initialize the timer and RTC */ |
nuclear@40 | 43 init_timer(); |
nuclear@40 | 44 init_rtc(); |
nuclear@40 | 45 |
nuclear@52 | 46 /* create the first process and switch to it */ |
nuclear@77 | 47 /*init_proc();*/ |
nuclear@47 | 48 |
nuclear@52 | 49 /* XXX unreachable */ |
nuclear@31 | 50 |
nuclear@2 | 51 for(;;) { |
nuclear@43 | 52 halt_cpu(); |
nuclear@2 | 53 } |
nuclear@0 | 54 } |