summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAda Christine <adachristine18@gmail.com>2021-04-13 14:39:25 +0000
committerAda Christine <adachristine18@gmail.com>2021-04-13 14:39:25 +0000
commitc2a65212c28644f2cc33634ba65c3c478d62bc34 (patch)
treee0540dcd07ca52621093f8a85dc4f55d2f179a1e
parenta8063cf735b9ef301a963e5cba21deb01d9d964e (diff)
Revert "renamed kernel_map_page() and associates"
This reverts commit a8063cf735b9ef301a963e5cba21deb01d9d964e.
-rw-r--r--kernel/memory.c27
-rw-r--r--kernel/memory.h4
2 files changed, 16 insertions, 15 deletions
diff --git a/kernel/memory.c b/kernel/memory.c
index 90bb67f..4dfb517 100644
--- a/kernel/memory.c
+++ b/kernel/memory.c
@@ -64,10 +64,10 @@ static uint64_t *const kernel_pm2 = (uint64_t *)0xffffffffffffe000;
static uint64_t *get_kernel_pm1e(void *vaddr);
static uint64_t *get_kernel_pm2e(void *vaddr);
-static void *get_virtual_page(enum page_map_flags flags);
-static void *page_map_at(void *vaddr,
+static void *get_virtual_page(enum map_page_flags flags);
+static void *kernel_map_page_at(void *vaddr,
phys_addr_t paddr,
- enum page_map_flags flags);
+ enum map_page_flags flags);
// handlers for memory space types
int anonymous_page_handler(uint32_t code, void *address);
@@ -148,7 +148,7 @@ static phys_addr_t get_kernel_pm3_phys(void)
{
phys_addr_t pm3_phys;
// make a temporary mapping to read pm4
- uint64_t *pm4 = page_map_at(temp,
+ uint64_t *pm4 = kernel_map_page_at(temp,
get_kernel_pm4_phys(),
CONTENT_RODATA|SIZE_2M);
@@ -164,7 +164,7 @@ static void init_map_page_array_pm2(struct memory_range *pm2_pages)
{
// now we need to write the physical address of each pm2 page for the
// page_array in the kernel's pm3.
- uint64_t *pm3 = page_map_at(temp,
+ uint64_t *pm3 = kernel_map_page_at(temp,
get_kernel_pm3_phys(),
CONTENT_RWDATA|SIZE_2M);
@@ -188,7 +188,7 @@ static void init_create_page_array_map(struct memory_range *pages,
// every 512 entries we need to re-map and clean.
for (size_t i = 0; i < entry_count; i += PAGE_TABLE_INDEX_MASK)
{
- uint64_t *pm1 = page_map_at(temp,
+ uint64_t *pm1 = kernel_map_page_at(temp,
maps->base + i * PAGE_SIZE,
CONTENT_RWDATA|SIZE_2M);
memset(pm1, 0, PAGE_SIZE);
@@ -295,7 +295,8 @@ static struct memory_space init_anonymous_space(void *base, void *head)
static void init_heap_space(struct memory_space *heap)
{
- (void)heap;
+ uint64_t *heap_alias = heap->base;
+ *heap_alias = 0xfafafafa;
}
void memory_init(struct memory_range *ranges, int count)
@@ -326,9 +327,9 @@ void memory_init(struct memory_range *ranges, int count)
init_heap_space(&kernel_heap_space);
}
-static void *page_map_at(void *vaddr,
+static void *kernel_map_page_at(void *vaddr,
phys_addr_t paddr,
- enum page_map_flags flags)
+ enum map_page_flags flags)
{
uint64_t entry = PAGE_PR;
@@ -373,9 +374,9 @@ static void *page_map_at(void *vaddr,
return NULL;
}
-void *page_map(phys_addr_t paddr, enum page_map_flags flags)
+void *kernel_map_page(phys_addr_t paddr, enum map_page_flags flags)
{
- return page_map_at(get_virtual_page(flags), paddr, flags);
+ return kernel_map_page_at(get_virtual_page(flags), paddr, flags);
}
void kernel_unmap_page(void *vaddr)
@@ -433,7 +434,7 @@ static uint64_t *get_kernel_pm2e(void *vaddr)
return &kernel_pm2[kpm2_index(vaddr)];
}
-static void *get_virtual_page(enum page_map_flags flags)
+static void *get_virtual_page(enum map_page_flags flags)
{
(void)flags;
return NULL;
@@ -472,7 +473,7 @@ int anonymous_page_handler(uint32_t code, void *address)
uint64_t *pm1;
if (pm1_phys)
{
- pm1 = page_map_at(temp, pm1_phys, CONTENT_RWDATA|SIZE_2M);
+ pm1 = kernel_map_page_at(temp, pm1_phys, CONTENT_RWDATA|SIZE_2M);
}
else
{
diff --git a/kernel/memory.h b/kernel/memory.h
index 3ce77e5..7ce6000 100644
--- a/kernel/memory.h
+++ b/kernel/memory.h
@@ -20,7 +20,7 @@ struct memory_range
size_t size;
};
-enum page_map_flags
+enum map_page_flags
{
CONTENT_CODE = 0x1,
CONTENT_RODATA = 0x2,
@@ -40,7 +40,7 @@ void *memmove(void *dest, const void *src, size_t size);
void *memset(void *dest, int val, size_t size);
int memcmp(const void *str1, const void *str2, size_t count);
-void *page_map(phys_addr_t paddr, enum page_map_flags flags);
+void *kernel_map_page(phys_addr_t paddr, enum map_page_flags flags);
void kernel_unmap_page(void *vaddr);
phys_addr_t page_alloc(void);