From 1e6f9083b872e7d83e21168419472e1a12f6f052 Mon Sep 17 00:00:00 2001 From: g1n Date: Sat, 12 Feb 2022 18:13:39 +0200 Subject: [PATCH] Add kfree_frame for page frame allocator --- src/include/paging.h | 1 + src/paging.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/include/paging.h b/src/include/paging.h index 5208218..d4a46af 100644 --- a/src/include/paging.h +++ b/src/include/paging.h @@ -10,6 +10,7 @@ typedef uint32_t page_addr_t; page_addr_t kalloc_frame(); +void kfree_frame(page_addr_t addr); void paging_init(); void page_fault(registers_t regs); diff --git a/src/paging.c b/src/paging.c index b148241..916c43e 100644 --- a/src/paging.c +++ b/src/paging.c @@ -61,6 +61,11 @@ page_addr_t kalloc_frame() { return page_frame_number * PAGE_SIZE; } +void kfree_frame(page_addr_t addr) { + page_addr_t index = addr / PAGE_SIZE; + bitmap[index / ENTRY_WIDTH] |= (1U << ((index / ENTRY_WIDTH) + (index % ENTRY_WIDTH))); +} + void paging_init() { unsigned int i; for(i = 0; i < 1024; i++) {