Up to [local] / funnyos / arch / testarm / boot
Request diff between arbitrary revisions
Default branch: MAIN
Current tag: HEAD
Revision 1.5 / (download) - annotate - [select for diffs], Fri Nov 23 13:37:42 2007 UTC (16 years, 10 months ago) by nbrk
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +9 -1 lines
Diff to previous 1.4 (colored)
basic roundrobin multitasking support in FunnyOS! _vector_irq saves Sys_mode context (which is treated as struct pcb) in stack and passes sp to irq_trampoline() which then sets global iframep pointer to point to pcb of interrupted task. "task" given by u_task (set by user at compile-time) and k_task which is dynamically allocated by the kernel. scheduler uses list of k_task (circularly linked list) with one constant task "idle". idle discarded in sched_init() with status TASK_NOSCHED and will not be scheduled after first sched_tick(). tasks created in task/ directory and should implement void ttt_enter(void) to start execution from. tasks added by inserting new elements in config_tasklist[]. please note that current *ugly* design causes strange behavior if tasks printf something w/out delays.. also, we do not save task's CPSR yet..