X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fgeekos%2Fmain.c;h=d112e222278a1b2e1134a47a96a6bcdf1ef6579d;hb=e70e95962c26832628d586e07f9cd1a2e1852d72;hp=a498a90cbae3261fa31f5ca9f8763c8fb6bcdf00;hpb=d8fc6aa4bc2a5d9cec50923e9d2bd30f867dd50a;p=palacios.releases.git diff --git a/palacios/src/geekos/main.c b/palacios/src/geekos/main.c index a498a90..d112e22 100644 --- a/palacios/src/geekos/main.c +++ b/palacios/src/geekos/main.c @@ -3,7 +3,8 @@ * Copyright (c) 2001,2003,2004 David H. Hovemeyer * Copyright (c) 2003, Jeffrey K. Hollingsworth * Copyright (c) 2004, Iulian Neamtiu - * $Revision: 1.36 $ + * Copyright (c) 2008, Jack Lange + * $Revision: 1.47 $ * * This is free software. You are permitted to use, * redistribute, and modify it as specified in the file "COPYING". @@ -36,13 +37,25 @@ #include +#include +#include + #define SPEAKER_PORT 0x61 + +void Spin() +{ + // hack - competing thread + while (1) {}; + +} + + void Buzz(unsigned delay, unsigned num) { volatile int x; @@ -175,13 +188,25 @@ void Main(struct Boot_Info* bootInfo) { - Out_Byte(0x1234,5); - Out_Byte(0x1234,5); + //Out_Byte(0x1234,5); + //Out_Byte(0x1234,5); Init_BSS(); Init_Screen(); Init_Serial(); + + /* { + extern char BSS_START, BSS_END; + + SerialPrint("BSS 0x%x->0x%x\n", &BSS_START, &BSS_END); + + }*/ + + + // SerialPrint("Guest Mem Dump at 0x%x\n", 0x100000); + //SerialMemDump((unsigned char *)(0x100000), 261 * 1024); + Init_Mem(bootInfo); Init_CRC32(); Init_TSS(); @@ -192,8 +217,14 @@ void Main(struct Boot_Info* bootInfo) Init_Keyboard(); Init_VM(bootInfo); Init_Paging(); + + //Init_PCI(); + Init_Stubs(); + Init_Network(); + + // Init_IDE(); // Print("Done; stalling\n"); @@ -209,6 +240,14 @@ void Main(struct Boot_Info* bootInfo) */ #endif + +#if 1 + struct Kernel_Thread *spin_thread; + + spin_thread=Start_Kernel_Thread(Spin,0,PRIORITY_NORMAL,false); + +#endif + #if 0 { @@ -230,12 +269,14 @@ void Main(struct Boot_Info* bootInfo) } #endif + { RunVMM(bootInfo); } - + SerialPrint("RunVMM returned, spinning\n"); + while (1) {} TODO("Write a Virtual Machine Monitor");