From 82e9f02aef1ea1a6588234ee58e3625e3561005f Mon Sep 17 00:00:00 2001 From: Aleksa Vuckovic Date: Thu, 8 Sep 2022 14:37:47 +0200 Subject: higher half in x86_64 kernel is now located at -2GB heap blocks are aligned on block size paging will allocate new page tables on heap --- kernel/include/debug.h | 6 ------ kernel/include/heap.h | 14 ++++++++++---- kernel/include/kernel_vma.h | 6 ++++++ kernel/include/paging.h | 1 - 4 files changed, 16 insertions(+), 11 deletions(-) delete mode 100644 kernel/include/debug.h create mode 100644 kernel/include/kernel_vma.h (limited to 'kernel/include') diff --git a/kernel/include/debug.h b/kernel/include/debug.h deleted file mode 100644 index 74648b9..0000000 --- a/kernel/include/debug.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef DEBUG_H -#define DEBUG_H - -void bochs_breakpoint(void); - -#endif diff --git a/kernel/include/heap.h b/kernel/include/heap.h index b2d9a00..464a36a 100644 --- a/kernel/include/heap.h +++ b/kernel/include/heap.h @@ -2,11 +2,17 @@ #define HEAP_H #include +#include -#define HEAP_VMEM_ADDR 0xc2000000 -#define HEAP_PMEM_ADDR 0x02000000 -#define HEAP_SIZE 0x02000000 -#define HEAP_BLOCK_SIZE 0x00000010 +#define HEAP1_VMEM_ADDR KERNEL_VMA + 0x01000000 +#define HEAP1_PMEM_ADDR 0x01000000 +#define HEAP1_SIZE 0x01000000 +#define HEAP1_BLOCK_SIZE 0x00000010 + +#define HEAP2_VMEM_ADDR KERNEL_VMA + 0x02000000 +#define HEAP2_PMEM_ADDR 0x02000000 +#define HEAP2_SIZE 0x01000000 +#define HEAP2_BLOCK_SIZE 0x00001000 struct kheapblock_t { struct kheapblock_t* next; diff --git a/kernel/include/kernel_vma.h b/kernel/include/kernel_vma.h new file mode 100644 index 0000000..af423a4 --- /dev/null +++ b/kernel/include/kernel_vma.h @@ -0,0 +1,6 @@ +#ifndef KERNEL_VMA_H +#define KERNEL_VMA_H + +#define KERNEL_VMA 0xffffffff80000000 + +#endif diff --git a/kernel/include/paging.h b/kernel/include/paging.h index 8f69224..71552d1 100644 --- a/kernel/include/paging.h +++ b/kernel/include/paging.h @@ -8,7 +8,6 @@ #define FLAG_WRITABLE 0x2 #define FLAG_USER 0x4 #define FLAG_HUGE 0x80 -#define KERNEL_VMA 0xc0000000 void init_paging(void); void map_addr(uint64_t virt, uint64_t phys, uint32_t flags); -- cgit v1.2.3