diff options
| author | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-09-08 14:37:47 +0200 |
|---|---|---|
| committer | Aleksa Vuckovic <aleksav013@gmail.com> | 2022-09-08 14:38:29 +0200 |
| commit | 82e9f02aef1ea1a6588234ee58e3625e3561005f (patch) | |
| tree | 80214489336fa2cc1c615bd63b133934832a5ba4 /kernel/include | |
| parent | 1effe3b9ac0bb1a819f6ae5ebb8438e60b77f9a2 (diff) | |
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
Diffstat (limited to 'kernel/include')
| -rw-r--r-- | kernel/include/debug.h | 6 | ||||
| -rw-r--r-- | kernel/include/heap.h | 14 | ||||
| -rw-r--r-- | kernel/include/kernel_vma.h | 6 | ||||
| -rw-r--r-- | kernel/include/paging.h | 1 |
4 files changed, 16 insertions, 11 deletions
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 <types.h> +#include <kernel_vma.h> -#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); |
