summaryrefslogtreecommitdiff
path: root/kernel/src/mem
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/src/mem')
-rw-r--r--kernel/src/mem/paging.c4
-rw-r--r--kernel/src/mem/pmm.c9
2 files changed, 6 insertions, 7 deletions
diff --git a/kernel/src/mem/paging.c b/kernel/src/mem/paging.c
index cb9bd70..b8c44c0 100644
--- a/kernel/src/mem/paging.c
+++ b/kernel/src/mem/paging.c
@@ -14,8 +14,8 @@ uint64_t __attribute__((aligned(4096))) page_table_lvl2[512];
void map_addr(uint64_t virt, uint64_t phys, uint32_t flags)
{
- virt -= virt % 0x00200000;
- phys -= phys % 0x00200000;
+ virt -= virt % PAGE_SIZE;
+ phys -= phys % PAGE_SIZE;
// i is in range [0, 511]
size_t pt_lvl4_i = (virt >> 39) % 0x200; // 512gb entry
diff --git a/kernel/src/mem/pmm.c b/kernel/src/mem/pmm.c
index 63bfb07..e8245f2 100644
--- a/kernel/src/mem/pmm.c
+++ b/kernel/src/mem/pmm.c
@@ -7,8 +7,7 @@
#include <multiboot2.h>
#include <pmm.h>
-#define PMM_PAGE_SIZE 4096 * 512
-#define MEM_USED_BELOW 0x03000000
+#define MEM_USED_BELOW 50*1024*1024
uint64_t free_mem_cnt;
uint64_t all_mem_cnt;
@@ -23,8 +22,8 @@ void init_pmm()
mb2_tag_mmap_entry entry = pos->mmap_entry;
if (entry.type != 1)
continue;
- uint64_t base = entry.base_addr & (PMM_PAGE_SIZE - 1) ? (entry.base_addr & (uint64_t)~(PMM_PAGE_SIZE - 1)) + PMM_PAGE_SIZE : entry.base_addr;
- for (uint64_t i = base; i + PMM_PAGE_SIZE <= entry.base_addr + entry.length; i += PMM_PAGE_SIZE) {
+ uint64_t base = entry.base_addr & (PAGE_SIZE - 1) ? (entry.base_addr & (uint64_t)~(PAGE_SIZE - 1)) + PAGE_SIZE : entry.base_addr;
+ for (uint64_t i = base; i + PAGE_SIZE <= entry.base_addr + entry.length; i += PAGE_SIZE) {
if (i >= MEM_USED_BELOW) {
free_mem_cnt++;
map_addr(i, i, FLAG_PRESENT);
@@ -44,6 +43,6 @@ void init_pmm()
void memory_usage()
{
- printf("memory used: %dMB\n", (48 * 1024 * 1024 + (all_mem_cnt - free_mem_cnt) * PAGE_SIZE) / 1024 / 1024);
+ printf("memory used: %dMB\n", (MEM_USED_BELOW + (all_mem_cnt - free_mem_cnt) * PAGE_SIZE) / 1024 / 1024);
printf("memory free: %dMB\n", free_mem_cnt * PAGE_SIZE / 1024 / 1024);
}