Request diff between arbitrary revisions
Default branch: MAIN
Current tag: MAIN
Revision 1.4 / (download) - annotate - [select for diffs], Fri Nov 23 13:37:43 2007 UTC (16 years, 10 months ago) by nbrk
Branch: MAIN
CVS Tags: HEAD
Changes since 1.3: +5 -17 lines
Diff to previous 1.3 (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..
Revision 1.3 / (download) - annotate - [select for diffs], Tue Nov 20 16:07:23 2007 UTC (16 years, 10 months ago) by nbrk
Branch: MAIN
Changes since 1.2: +32 -15 lines
Diff to previous 1.2 (colored)
implement sched_init();
Revision 1.2 / (download) - annotate - [select for diffs], Tue Nov 20 12:57:37 2007 UTC (16 years, 10 months ago) by nbrk
Branch: MAIN
Changes since 1.1: +11 -3 lines
Diff to previous 1.1 (colored)
rework some..
Revision 1.1 / (download) - annotate - [select for diffs], Mon Nov 19 15:54:33 2007 UTC (16 years, 10 months ago) by nbrk
Branch: MAIN
task scheduler; nothing is implemented but commit it so i could hack on it at home :)