X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Fx86%2Fmain.c;h=8b85d06324715ade865b439bd9c29da092a22d31;hb=f919351a741890adaf30624ca51fd4c7b6d3ce62;hp=8f36f47c67b3fc247714250dec7dc6ccf2ef9f94;hpb=04a050f42807686dc119838c82372409246d55bb;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/x86/main.c b/KernelLand/Kernel/arch/x86/main.c index 8f36f47c..8b85d063 100644 --- a/KernelLand/Kernel/arch/x86/main.c +++ b/KernelLand/Kernel/arch/x86/main.c @@ -8,7 +8,6 @@ #include #include #include -#include #include #define VGA_ERRORS 0 @@ -19,12 +18,11 @@ // === IMPORTS === extern char gKernelEnd[]; -extern void Heap_Install(void); extern void MM_PreinitVirtual(void); extern void MM_Install(int NPMemRanges, tPMemMapEnt *PMemRanges); extern void MM_InstallVirtual(void); extern int Time_Setup(void); -//extern int ACPICA_Initialise(void); +extern int ACPICA_Initialise(void); // === PROTOTYPES === int kmain(Uint MbMagic, void *MbInfoPtr); @@ -85,8 +83,10 @@ int kmain(Uint MbMagic, void *MbInfoPtr) // Start Multitasking Threads_Init(); + #if USE_ACPICA // Poke ACPICA -// ACPICA_Initialise(); + ACPICA_Initialise(); + #endif Log_Log("Arch", "Starting VFS..."); // Load Virtual Filesystem @@ -107,27 +107,29 @@ int kmain(Uint MbMagic, void *MbInfoPtr) void Arch_LoadBootModules(void) { - int i, j, numPages; - for( i = 0; i < giArch_NumBootModules; i ++ ) + for( int i = 0; i < giArch_NumBootModules; i ++ ) { - Log_Log("Arch", "Loading '%s'", gaArch_BootModules[i].ArgString); + const tBootModule *mod = &gaArch_BootModules[i]; + Log_Log("Arch", "Loading (%p[%P]+%x) '%s'", + mod->Base, mod->PBase, mod->Size, + mod->ArgString); - if( !Module_LoadMem( gaArch_BootModules[i].Base, - gaArch_BootModules[i].Size, gaArch_BootModules[i].ArgString - ) ) - { + if( !Module_LoadMem( mod->Base, mod->Size, mod->ArgString) ) { Log_Warning("Arch", "Unable to load module"); + continue ; } + #if 0 // Unmap and free - numPages = (gaArch_BootModules[i].Size + ((Uint)gaArch_BootModules[i].Base&0xFFF) + 0xFFF) >> 12; + int numPages = (mod->Size + ((tVAddr)mod->Base&0xFFF) + 0xFFF) >> 12; MM_UnmapHWPages( (tVAddr)gaArch_BootModules[i].Base, numPages ); - for( j = 0; j < numPages; j++ ) - MM_DerefPhys( gaArch_BootModules[i].PBase + (j << 12) ); + //for( int j = 0; j < numPages; j++ ) + // MM_DerefPhys( mod->PBase + (j << 12) ); - if( (tVAddr) gaArch_BootModules[i].ArgString > MAX_ARGSTR_POS ) - MM_UnmapHWPages( (tVAddr)gaArch_BootModules[i].ArgString, 2 ); + if( (tVAddr) mod->ArgString > MAX_ARGSTR_POS ) + MM_UnmapHWPages( (tVAddr)mod->ArgString, 2 ); + #endif } Log_Log("Arch", "Boot modules loaded"); if( gaArch_BootModules )