From c72944b5646863ffaaaff94dc03b939a08566203 Mon Sep 17 00:00:00 2001 From: Miguel Date: Wed, 12 Sep 2018 15:23:38 +0200 Subject: struggling with vmem --- kernel/kernel.h | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) (limited to 'kernel/kernel.h') diff --git a/kernel/kernel.h b/kernel/kernel.h index 0010692..1da1209 100644 --- a/kernel/kernel.h +++ b/kernel/kernel.h @@ -18,7 +18,6 @@ REFERENCES https://sourceware.org/newlib/ and many many more... */ -#include "log.h" #ifndef FOOLOS_CONFIG_H #define FOOLOS_CONFIG_H @@ -44,31 +43,32 @@ REFERENCES #define SMP_MAX_PROC 16 // 16 (together with bsp) We can currently only address a maximum of 16 cpus via ipis! // Virtual Memory Locations // -// NOTE THAT THE STACKS GROWN DOWNWARDS // +// REMEMBER THAT THE STACKS GROW DOWNWARDS // +// We leave some space around them +// 1 page 0x1000 bytes +// 8192 pages = 0x2000000 bytes + #define VMEM_KERNEL 0x00000000 // 8192 pages (32megs) / identity mapped +#define VMEM_KERNEL_END 0x02000000 -#define VMEM_USER_ENV 0x07000000 // 4 pages / per user process +#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_TOP 0xE0000000 // ? pages / per thread - -#define VMEM_LAPIC 0xE0000000 // 1 pages / identity mapped -#define VMEM_IOAPIC 0xE0001000 // 1 pages / identity mapped -#define VMEM_CPU_PRIVATE 0xE0002000 // 4 pages / per cpu -#define VMEM_CPU_STACK_TOP 0xE000A000 // 4 pages / per cpu -#define VMEM_FRAMEBUFFER 0xF0000000 // 8192 pages (32megs) / identity mapped -#define VMEM_EXT2_RAMIMAGE 0xF2000000 // 8192 pages (32megs) / identity mapped - -// __FUNCTION__ ? -#ifndef FOOLOS_LOG_OFF -#define kpanic(...) {log(FOOLOS_LOG_COLOR,__FILE__,0," \033[41;37m [KERNEL PANIC] \033[37;40m " __VA_ARGS__ ); while(1);} -#define klog(...) log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__), 10, __VA_ARGS__) -#define fixme(...) log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__) "[FIXME/TODO]:" , 10, __VA_ARGS__) -#endif -#ifdef FOOLOS_LOG_OFF -#define kpanic(...) {while(1);} -#define klog(...) {} -#define fixme(...) {} -#endif +#define VMEM_USER_STACK_PAGES 0xF0000000 // 4 pages / per thread +#define VMEM_USER_STACK_BOT 0xEFFFC000 // 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_COPY_PAGE 0xF5000000 // 1 page / temporery map-in tables for copying + +#define VMEM_FRAMEBUFFER 0xF6000000 // 8192 pages (32megs) / identity mapped +#define VMEM_EXT2_RAMIMAGE 0xF8000000 // 8192 pages (32megs) / identity mapped #endif -- cgit v1.2.3