//----------------------------------------------------------------------------------------------------------------------------
//
// ÄÚºËÖ÷Èë¿Ú
//
//----------------------------------------------------------------------------------------------------------------------------
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);   
}
Beispiel #2
0
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 */
}