Implemented VMM!

This commit is contained in:
2025-04-08 15:09:57 +02:00
parent ced6cb250f
commit 7c2fcd8e9f
9 changed files with 139 additions and 54 deletions
+2
View File
@@ -11,9 +11,11 @@ typedef struct bitmap_t {
size_t blocks; // Eqiv. to # of bits
size_t bytes; // ceil(blocks / 8)
size_t used; // # of bits set to 0
size_t membase; // Used with allocators
int ready;
} bitmap_t;
void* bmap_ptr(bitmap_t* map, size_t bit);
void bmap_set(bitmap_t* map, size_t bit, int val);
int bmap_get(bitmap_t* map, size_t bit);
void bmap_setarea(bitmap_t* map, size_t base, size_t len, int val);
+9 -9
View File
@@ -7,15 +7,15 @@
/*
* Virtual memory addresses
*/
#define USER_HEAP 0x10000000
#define USER_STACK 0xBF000000
#define USER_SHARED 0xA0000000
#define KERNEL_BASE 0xC0000000
#define KERNEL_SIZE 0x10000000
#define KERNEL_MEM_BASE 0xD0000000
#define KERNEL_MEM_SIZE 0x10000000
#define KERNEL_SHARED 0xF0000000
#define KERNEL_FRAMEBUF 0xC8000000
#define USER_HEAP 0x10000000
#define USER_STACK 0xBF000000
#define USER_SHARED 0xA0000000
#define KERNEL_BASE 0xC0000000
#define KERNEL_SIZE 0x10000000
#define KERNEL_HEAP_BASE 0xD0000000
#define KERNEL_HEAP_SIZE 0x10000000
#define KERNEL_SHARED 0xF0000000
#define KERNEL_FRAMEBUF 0xC8000000
/*
* Variable arguments
+2 -4
View File
@@ -7,9 +7,7 @@
extern bitmap_t pmm_bitmap;
int pmm_init(void);
void pmm_initRegion(size_t base, size_t len);
void pmm_deinitRegion(size_t base, size_t len);
void* pmm_alloc(size_t len);
void pmm_free(void* ptr, size_t len);
void* pmm_allocPage(void);
void pmm_freePage(void* page);
#endif
+13
View File
@@ -0,0 +1,13 @@
#ifndef _VMM_H
#define _VMM_H
#include <kernel.h>
#include <bitmap.h>
extern bitmap_t vmm_bitmap;
int vmm_init(void);
void* vmm_alloc(size_t pages);
void vmm_free(void* ptr, size_t pages);
#endif