summaryrefslogtreecommitdiff
path: root/src/kernel/tasks.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/tasks.c')
-rw-r--r--src/kernel/tasks.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/kernel/tasks.c b/src/kernel/tasks.c
index 4dd7f38..30b138b 100644
--- a/src/kernel/tasks.c
+++ b/src/kernel/tasks.c
@@ -6,6 +6,8 @@
void task_init( task_t *task, uint16_t gdt_code_segment_selector, task_func_t entrypoint )
{
memset( task, 0, sizeof( task_t ) );
+
+ task->nof_switches = 0;
task->cpu_state = (cpu_state_t *)( task->stack + TASK_STACK_SIZE - sizeof( cpu_state_t ) );
@@ -71,6 +73,8 @@ cpu_state_t *task_manager_schedule_task( task_manager_t *manager, cpu_state_t *c
if( manager->current_task >= manager->nof_tasks ) {
manager->current_task = 0;
}
+
+ manager->task[manager->current_task]->nof_switches++;
return manager->task[manager->current_task]->cpu_state;
}