get_current_stack set CR3 => required for a context switch

This commit is contained in:
Stefan Lankes 2014-12-03 23:10:32 +01:00
parent 04290f885d
commit e9960dc78e
3 changed files with 5 additions and 2 deletions

View file

@ -36,6 +36,9 @@ size_t* get_current_stack(void)
{
task_t* curr_task = current_task;
// use new page table
write_cr3(curr_task->page_map);
return curr_task->last_stack_pointer;
}

View file

@ -76,7 +76,7 @@ typedef struct task {
/// Task priority
uint8_t prio;
/// Physical address of root page table
size_t page_map;
size_t page_map;
/// Lock for page tables
spinlock_irqsave_t page_lock;
/// usage in number of pages (including page map tables)

View file

@ -127,7 +127,7 @@ int main(void)
create_kernel_task(&id1, foo, "foo1", NORMAL_PRIO);
create_kernel_task(&id2, wrapper, "userfoo", NORMAL_PRIO);
//create_kernel_task(&id2, wrapper, "userfoo", NORMAL_PRIO);
while(1) {
HALT;