//---------------------------------------------------------------------------------------------------------------------------- // // ÄÚºËÖ÷Èë¿Ú // //---------------------------------------------------------------------------------------------------------------------------- void k_main(void) { unsigned long base_mm; PageDirInit(); KernelGraphicInit(); ConsoleInit(0,0xFFFFFF); ConsolePrintf("Enable The Page"); ConsolePrintOK(); ConsoleMsg(" The Kernel Page Dir at %08x The Page0 at %08x\n",PG_DIR_ADDR,PG_TABLE_ADDR); ConsoleMsg(" The VESA Mapping Page at %08x\n",VESA_PTE); ConsolePrintf("Load The boot Infomation"); ConsolePrintOK(); GetGrubVersion(GrubBootInfo); GetGrubBoot(GrubBootInfo,(int*)&BootParameters.bp_bootdev); GetGrubMemInfo(GrubBootInfo,&base_mm,&BootParameters.bp_ramsize); GetGrubAPM(GrubBootInfo); BootMemInit(); KnlMesQueInit(); PageManagerInit(BootParameters.bp_ramsize); VMemInit(BootParameters.bp_ramsize,0xC0000000-BootParameters.bp_ramsize); TrapInit(); TimerInit(); KeyboardInit(); MouseInit(); //FloppyInit(); HardDiskInit(); //Fat12_Init(); Fat32_Init(); ProcessInit(); SystemCallInit(); __asm__("sti"); ExecInitProc("SHELLER "); SetSwitching(0); while(1); }
int main(int argc, char **argv) { int rc; START_CRITICAL(); ProcessInit(); TimeInit(); IOInit(); #ifdef TRAPINTS TrapInts(); #endif END_CRITICAL(); { /* analisis de los argumentos */ int in; int out=1; int count=1; for (in=1; in<argc; in++) if (strcmp(argv[in],"-slice")==0 && ++in<argc) { char *pc; for (pc= argv[in]; *pc!='\0'; pc++) if (! ('0'<= *pc && *pc<='9')) nFatalError("main", "Invalid option -slice %s", argv[in]); nSetTimeSlice(atoi(argv[in])); } else if (strcmp(argv[in],"-noblocking")==0) nSetNonBlockingStdio(); else { argv[out++]= argv[in]; count++; } argc= count; } rc= nMain(argc, argv); nExitSystem(rc); return rc; /* nunca llega aca */ }