summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/exceptions.c2
-rw-r--r--kernel/kernel.h9
-rw-r--r--kernel/vmem.c10
3 files changed, 10 insertions, 11 deletions
diff --git a/kernel/exceptions.c b/kernel/exceptions.c
index f56536b..bcb5c40 100644
--- a/kernel/exceptions.c
+++ b/kernel/exceptions.c
@@ -1,5 +1,6 @@
#include "kernel.h"
#include "exceptions.h"
+#include "scheduler.h"
#include "log.h"
#include "asm_x86.h"
@@ -39,6 +40,7 @@ void exception_handle(uint32_t esp, uint32_t irq)
uint32_t error_code=0;
klog("EXCEPTION: apicID: 0x%08X",apic_id());
+ klog("EXCEPTION: task: %d",task_get_current_pid());
klog("EXCEPTION: vector nr.: %d",irq);
switch(irq){ //this interrupts push also an error_code
diff --git a/kernel/kernel.h b/kernel/kernel.h
index 1da1209..df8432a 100644
--- a/kernel/kernel.h
+++ b/kernel/kernel.h
@@ -54,18 +54,15 @@ REFERENCES
#define VMEM_USER_ENV 0x07000000 // ? pages / per user process
#define VMEM_USER_PROG 0x08048000 // ? pages / per user process (usual entry: 0x8048080)
-#define VMEM_USER_STACK_PAGES 0xF0000000 // 4 pages / per thread
-#define VMEM_USER_STACK_BOT 0xEFFFC000 // 4 pages / per thread
+#define VMEM_USER_STACK_PAGES 4 // 4 pages / per thread
#define VMEM_USER_STACK_TOP 0xF0000000 // 4 pages / per thread
#define VMEM_LAPIC 0xF0005000 // 1 pages / identity mapped
#define VMEM_IOAPIC 0xF0006000 // 1 pages / identity mapped
#define VMEM_CPU_PRIVATE 0xF000A000 // 4 pages / per cpu
-#define VMEM_CPU_STACK_PAGES 0xF0000000 // 4 pages / per thread
-#define VMEM_CPU_STACK_BOT 0xF0050000 // 4 pages / per cpu
-#define VMEM_CPU_STACK_TOP 0xF0054000 // 4 pages / per cpu
-
+#define VMEM_CPU_STACK_PAGES 4 // 4 pages / per thread
+#define VMEM_CPU_STACK_TOP 0xF4000000 // 4 pages / per cpu
#define VMEM_COPY_PAGE 0xF5000000 // 1 page / temporery map-in tables for copying
#define VMEM_FRAMEBUFFER 0xF6000000 // 8192 pages (32megs) / identity mapped
diff --git a/kernel/vmem.c b/kernel/vmem.c
index 10c2401..ffa9099 100644
--- a/kernel/vmem.c
+++ b/kernel/vmem.c
@@ -303,10 +303,10 @@ pdirectory* vmem_kernel_dir()
vmem_add_remap(dir,mod_start,VMEM_EXT2_RAMIMAGE,1024*8,false);//32megs for ramimage: TODO: check if enough?
vmem_add_alloc(dir,VMEM_CPU_PRIVATE,4,false);
- vmem_add_alloc(dir,VMEM_CPU_STACK_BOT,4,false);
+ vmem_add_alloc(dir,VMEM_CPU_STACK_TOP-4096*VMEM_CPU_STACK_PAGES,VMEM_CPU_STACK_PAGES,false);
- vmem_add_alloc(dir,VMEM_USER_PROG,1024*2,true);
- vmem_add_alloc(dir,VMEM_USER_STACK_TOP-4096*10,10,true);
+ vmem_add_alloc(dir,VMEM_USER_PROG,1024*4,true);
+ vmem_add_alloc(dir,VMEM_USER_STACK_TOP-4096*VMEM_USER_STACK_PAGES,VMEM_USER_STACK_PAGES,true);
return dir;
}
@@ -321,8 +321,8 @@ pdirectory* vmem_new_space_dir(pdirectory *copy_dir,bool stack_only)
if(!pt_entry_is_user(src_pt))dir->m_entries [i]=src_pt;
}
- vmem_add_alloc(dir,VMEM_USER_PROG,1024*2,true);
- vmem_add_alloc(dir,VMEM_USER_STACK_TOP-4096*4,4,true);
+ vmem_add_alloc(dir,VMEM_USER_PROG,1024*4,true);
+ vmem_add_alloc(dir,VMEM_USER_STACK_TOP-4096*VMEM_USER_STACK_PAGES,VMEM_USER_STACK_PAGES,true);
x86_cli(); // plese dear timer, do not schedule us away
pdirectory* orig=x86_get_page_directory();