Example #1
0
void tasking_initiator()
{
  current_task = (uint32_t)Idle_task;
  printf("\n\n\n\t-------------MISSION ACCOMPLISHED-------------\n\n-------------Welcome to the MultiThreading World!!!-------------\n");
  printf("\n----Spawning 5 Immortal Idle Tasks, each would print a unique number----\n\tStarting in 3...2...1... GO...\n\n");
  delay1(20);
  init_shell();
  //init_hpet();
  apic_start_timer();       //The respective Timer initialization function of the timer of choice
//  for(int i=0;i<1000000;i++)
  asm volatile("sti");
  while(1);
}
Example #2
0
void tasking_initiator()
{
  Kernel_task = create_task("Main_Kernel",kernel_main, 0, 0x202, kernel_proc);
  Kernel_task->special = 2;
  current_task = (uint32_t)Kernel_task;
  printf("\n\n\n\t\t--------------MISSION ACCOMPLISHED--------------\n\n\t--------------Welcome to the MultiThreading World!!!--------------\n");
  printf("\n\t-----------Launching the Shell and input/output processes-----------\n\t\t\t\tStarting in 3...2...1... GO...\n\n");
  delay1(1);
  kb_io_init();
  init_shell();
  multitasking_ON = 1;
  //setVesa(0x110); //TEXT MODE VESA :v
  //init_hpet();
  apic_start_timer();       //The respective Timer initialization function of the timer of choice

  clearIRQMask(1);
//  init_timer(1000);
  //Here it goes, The entry to the multitasking world.
  asm volatile("sti;\
   int $50");
  kill();
  while(1);
}