mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
vmm: fix getting free range at edge of spaces
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
#define KERNELSPACE_START (void *)0xffff800000000000
|
||||
#define KERNELSPACE_END (void *)0xffffffffffffffff
|
||||
#define USERSPACE_START (void *)0x0000000000001000
|
||||
#define USERSPACE_END (void *)0x00007fffffffffff
|
||||
#define USERSPACE_END (void *)0x0000800000000000
|
||||
|
||||
#define PAGE_SIZE 4096
|
||||
#define ARCH_MMU_FLAGS_READ (uint64_t)1
|
||||
|
||||
+2
-2
@@ -83,9 +83,9 @@ static vmmspace_t kernelspace = {
|
||||
|
||||
// returns a pointer to the space of vaddr
|
||||
static vmmspace_t *getspace(void *vaddr) {
|
||||
if (USERSPACE_START <= vaddr && vaddr <= USERSPACE_END)
|
||||
if (USERSPACE_START <= vaddr && vaddr < USERSPACE_END)
|
||||
return &_cpu()->vmmctx->space;
|
||||
else if (KERNELSPACE_START <= vaddr && vaddr <= KERNELSPACE_END)
|
||||
else if (KERNELSPACE_START <= vaddr && vaddr < KERNELSPACE_END)
|
||||
return &kernelspace;
|
||||
else
|
||||
return NULL;
|
||||
|
||||
Reference in New Issue
Block a user