From 74b0b4e2e97c16b1e5c3ed905d75266a3cf06bb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20Hord=C3=A9?= Date: Wed, 19 Dec 2018 23:31:13 +0100 Subject: [PATCH] fix: corrections...erreur lors du switch vers la tache de tid 1.1 dans restcpu_kernel --- lib/memory.c | 2 +- lib/process.c | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/memory.c b/lib/memory.c index 5302ffc..0ee275a 100644 --- a/lib/memory.c +++ b/lib/memory.c @@ -342,7 +342,7 @@ void virtual_pd_page_add(pd * dst, u8 * vaddr, u8 * paddr, u32 flags) if (dst == NULL) if (vaddr > (u8 *) USER_CODE) { - print("ERREUR: Adresse %X n'est pas dans l'espace noyau !\n", vaddr); + printf("ERREUR: Adresse %X n'est pas dans l'espace noyau !\n", vaddr); return; } pdir = (u32 *) (0xFFFFF000 | (((u32) vaddr & 0xFFC00000) >> 20)); diff --git a/lib/process.c b/lib/process.c index c552d6e..5272762 100644 --- a/lib/process.c +++ b/lib/process.c @@ -77,7 +77,7 @@ END */ void processexit(void) { deleteprocess(getcurrentpid()); - switchtask(maketid(0,0)); + switchtask(maketid(1,1)); } /*******************************************************************************/ @@ -160,6 +160,7 @@ void initprocesses(void) aprocess->result = 0; aprocess->status = PROCESS_STATUS_READY; aprocess->iskernel = true; + TAILQ_INIT(&aprocess->task_head); current=createtask(pid,getinitretry(),true); } @@ -257,6 +258,7 @@ void switchtask(tid_t tid) if (atask==NULL) return; process *aprocess=findprocess(tid.pid); if (aprocess==NULL) return; + current = tid; if (!aprocess->iskernel) setTSS(atask->kernel_stack.ss0, atask->kernel_stack.esp0); else