kern
annotate src/main.c @ 80:4db99a52863e
fixed the "endianess" of the text messages in the ATA identify info block. this
is the first time I've seen wrong byteorder in ascii text, the ATA committee
should be commended.
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 06 Dec 2011 13:35:39 +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 } |