diff options
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | asm/int_clock_handler.asm | 2 | ||||
| -rw-r--r-- | asm/int_kb_handler.asm | 1 | ||||
| -rw-r--r-- | kernel/vmem.c | 5 | ||||
| -rw-r--r-- | userspace/task1.c | 7 | ||||
| -rw-r--r-- | userspace/task2.c | 5 |
6 files changed, 14 insertions, 7 deletions
@@ -81,7 +81,6 @@ Todos ----- * Allow GRUB as alternative bootloader (multiboot spec/ grub-mkrescue) -* Begin to worry about reentrancy of clib! * Support some TTY standard * Real User space * /dev/console diff --git a/asm/int_clock_handler.asm b/asm/int_clock_handler.asm index bcd45da..627e432 100644 --- a/asm/int_clock_handler.asm +++ b/asm/int_clock_handler.asm @@ -20,7 +20,7 @@ int_clock_handler: pusha ;Push all standard registers mov eax, esp - mov esp,0x1000 + mov esp,0x1000 ;put the stack outside of virtual memory in kernel space! push eax ;Push pointer to all the stuff we just pushed call task_switch_next ;Call C code diff --git a/asm/int_kb_handler.asm b/asm/int_kb_handler.asm index f2e33bf..acf6208 100644 --- a/asm/int_kb_handler.asm +++ b/asm/int_kb_handler.asm @@ -5,6 +5,7 @@ global int_kb_handler [bits 32] int_kb_handler: + cli pusha diff --git a/kernel/vmem.c b/kernel/vmem.c index 3079733..53e33c4 100644 --- a/kernel/vmem.c +++ b/kernel/vmem.c @@ -339,11 +339,11 @@ int vmem_new_space_dir() void vmem_set_dir(int dir) { - x86_paging_disable(); +// x86_paging_disable(); x86_set_pdbr(page_dirs[dir]); // log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"set pagedir to %d (0x%08X)",dir,page_dirs[dir]); current_dir=dir; - x86_paging_enable(); +// x86_paging_enable(); } @@ -353,6 +353,7 @@ void vmem_init() //log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init paging (vesa base: 0x%08x)",vesa_physbase); log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"init paging"); vmem_set_dir(vmem_new_space_dir()); + x86_paging_enable(); } diff --git a/userspace/task1.c b/userspace/task1.c index ed686c4..d3706ee 100644 --- a/userspace/task1.c +++ b/userspace/task1.c @@ -1,8 +1,11 @@ -int main(int argc, char **argv) +int main(int argc, char **argv) { + signed int i=0; + while(1) { - write(1,"task 1 \n",8); + i++; + printf("task 1 : %i \n",i); } return 0; diff --git a/userspace/task2.c b/userspace/task2.c index f1164d7..e529921 100644 --- a/userspace/task2.c +++ b/userspace/task2.c @@ -1,8 +1,11 @@ int main(int argc, char **argv) { + signed int i=0; + while(1) { - write(1,"task 2 \n",8); + i++; + printf("task 2 : %i \n",i); } return 0; |
