summaryrefslogtreecommitdiff
path: root/kernel/memory
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/memory')
-rw-r--r--kernel/memory/paging.c15
-rw-r--r--kernel/memory/physalloc.c17
-rw-r--r--kernel/memory/virtalloc.c4
3 files changed, 15 insertions, 21 deletions
diff --git a/kernel/memory/paging.c b/kernel/memory/paging.c
index d10cf6d..5c4fa5c 100644
--- a/kernel/memory/paging.c
+++ b/kernel/memory/paging.c
@@ -514,7 +514,7 @@ static inline void *page_align(void *addr)
return (void *)a;
}
-void *mapaddr(void *addr, size_t len)
+void *kmapaddr(void *addr, size_t len)
{
void *phys = page_align(addr);
ptrdiff_t error = (char *)addr - (char *)phys;
@@ -531,7 +531,7 @@ void *mapaddr(void *addr, size_t len)
return (char *)virt + error;
}
-void unmapaddr(void *addr)
+void kunmapaddr(void *addr)
{
long pages = virtaddr_free(addr);
if (pages < 1)
@@ -539,7 +539,7 @@ void unmapaddr(void *addr)
unmap_pages(kernel_pml4, addr, pages);
}
-void *alloc_pages(size_t count)
+void *kalloc_pages(size_t count)
{
void *virt = virtaddr_alloc(count);
if (virt == NULL)
@@ -559,13 +559,12 @@ void *alloc_pages(size_t count)
return virt;
}
-void free_page(void *virt)
+void *kalloc_page(void)
{
- (void)virt;
- panic("free_page is not yet implemented");
+ return kalloc_pages(1);
}
-void free_pages(void *virt)
+void kfree_pages(void *virt)
{
long pages = virtaddr_free(virt);
if (pages < 1)
@@ -573,7 +572,7 @@ void free_pages(void *virt)
unmap_pages(kernel_pml4, virt, pages);
}
-int load_page(void *virt_addr)
+int kload_page(void *virt_addr)
{
volatile struct pte *page = get_page(kernel_pml4, virt_addr);
if (page == NULL)
diff --git a/kernel/memory/physalloc.c b/kernel/memory/physalloc.c
index 53f8aaf..a907077 100644
--- a/kernel/memory/physalloc.c
+++ b/kernel/memory/physalloc.c
@@ -185,9 +185,9 @@ void physalloc_init(struct memory_map *map)
memory_start = page_align((uintptr_t)page_area_addr + page_area_size);
- bitmap = mapaddr(bitmap, bitmap_size);
+ bitmap = kmapaddr(bitmap, bitmap_size);
memset(bitmap, 0, bitmap_size);
- page_area_addr = mapaddr(page_area_addr, page_area_size);
+ page_area_addr = kmapaddr(page_area_addr, page_area_size);
memset(page_area_addr, 0, page_area_size);
page_start = (struct memory_segment *)page_area_addr;
@@ -210,15 +210,10 @@ void physalloc_init(struct memory_map *map)
free_memory = page_count * PAGE_SIZE;
char buf[20];
- printf("\nMEMORY USAGE\n");
- printf("mem total: %s\n", btoa(memory_total(), buf));
- printf("mem free: %s\n", btoa(memory_free(), buf));
- printf("mem used: %s\n\n", btoa(memory_used(), buf));
-}
-
-void *alloc_page(void)
-{
- return alloc_pages(1);
+ kprintf("\nMEMORY USAGE\n");
+ kprintf("mem total: %s\n", btoa(memory_total(), buf));
+ kprintf("mem free: %s\n", btoa(memory_free(), buf));
+ kprintf("mem used: %s\n\n", btoa(memory_used(), buf));
}
uint64_t memory_total(void)
diff --git a/kernel/memory/virtalloc.c b/kernel/memory/virtalloc.c
index 2b64b72..6b7fd20 100644
--- a/kernel/memory/virtalloc.c
+++ b/kernel/memory/virtalloc.c
@@ -64,11 +64,11 @@ static struct addr_node *get_node(void)
if (new_alloc < 8)
new_alloc = 8;
struct addr_node *new_nodes;
- new_nodes = malloc(sizeof(struct addr_node) * new_alloc);
+ new_nodes = kalloc(sizeof(struct addr_node) * new_alloc);
if (new_nodes == NULL)
panic("virt addr alloc nodes is null");
update_node_ptrs(alloc_nodes, new_nodes, alloc_node_count, new_alloc);
- free(alloc_nodes);
+ kfree(alloc_nodes);
alloc_nodes = new_nodes;
alloc_node_count = new_alloc;
is_allocating = false;