vmm: use red-black trees

This commit is contained in:
Matheus
2025-12-26 23:02:55 -03:00
parent 0358698757
commit 70d4c75cfe
3 changed files with 258 additions and 228 deletions
+3 -3
View File
@@ -4,6 +4,7 @@
#include <arch/mmu.h>
#include <mutex.h>
#include <kernel/vfs.h>
#include <rbtree.h>
#define VMM_FLAGS_PAGESIZE 1
#define VMM_FLAGS_ALLOCATE 2
@@ -27,8 +28,7 @@ typedef struct {
struct vmmcache_t;
typedef struct vmmrange_t{
struct vmmrange_t *next;
struct vmmrange_t *prev;
rbtree_t rbtree_node;
void *start;
size_t size;
int flags;
@@ -57,7 +57,7 @@ typedef struct vmmcache_t {
typedef struct {
mutex_t lock;
vmmrange_t *ranges;
rbtree_t *ranges;
void *start;
void *end;
} vmmspace_t;
+3
View File
@@ -12,6 +12,9 @@
#define likely(x) __builtin_expect(!!(x), 1)
#define unlikely(x) __builtin_expect(!!(x), 0)
#define container_of(ptr, type, member) \
((type *)((void *)ptr - offsetof(type, member)))
static inline long abs(long x) {
return x < 0 ? -x : x;
}