get_current_stack set CR3 => required for a context switch
This commit is contained in:
parent
04290f885d
commit
e9960dc78e
3 changed files with 5 additions and 2 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Reference in a new issue