/** * tasks.c * * ?? * * Exports: * task1() * task2() * task3() * task4() * * Imports: * video.c putch_help(); * sched.c task_t *_curr_task; */ #include "_krnl.h" /** * Imports */ void putch_help(console_t *con, unsigned c); extern task_t *_curr_task; void schedule(void); /** * write() * */ static int write(const unsigned char *str, unsigned len) { unsigned i; for(i = 0; i < len; i++) { putch_help(_curr_task->vc, *str); str++; } return i; } /** * yield() * */ static void yield(void) { schedule(); } #define WAIT 0xFFFFFL /** * wait() */ static void wait(void) { unsigned long wait; for(wait = WAIT; wait != 0; wait--) /* nothing */; } /** * task1() * */ void task1(void) { //static const unsigned char msg_a[] = "root@hybos $ "; /**/ //write(msg_a, sizeof(msg_a)); wait(); while(1) { /* so we can process other events */ yield(); wait(); } } /** * task2() * */ void task2(void) { //static const unsigned char msg_a[] = "root@hybos $ "; /**/ //write(msg_a, sizeof(msg_a)); wait(); while(1) { yield(); wait(); } } /** * task3() * */ void task3(void) { //static const unsigned char msg_a[] = "root@hybos $ "; /**/ //write(msg_a, sizeof(msg_a)); wait(); while(1) { yield(); wait(); } } /** * task4() * */ void task4(void) { //static const unsigned char msg_a[] = "root@hybos $ "; /**/ //write(msg_a, sizeof(msg_a)); wait(); while(1) { yield(); wait(); } }