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); }
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); }