git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
feat: ability to evict dnode and inode cache
[lunaix-os.git]
/
lunaix-os
/
kernel
/
mm
/
vmap.c
diff --git
a/lunaix-os/kernel/mm/vmap.c
b/lunaix-os/kernel/mm/vmap.c
index 5df524d532986fd2111521d0a6c6c378ed1f010c..2fc129841513dfcf3dbe0431e4068bc3c27bdfbc 100644
(file)
--- a/
lunaix-os/kernel/mm/vmap.c
+++ b/
lunaix-os/kernel/mm/vmap.c
@@
-27,7
+27,7
@@
vmm_vmap(uintptr_t paddr, size_t size, pt_attr attr)
} else {
x86_page_table* ptd = (x86_page_table*)(L2_VADDR(l1inx));
size_t i = L2_INDEX(current_addr);
} else {
x86_page_table* ptd = (x86_page_table*)(L2_VADDR(l1inx));
size_t i = L2_INDEX(current_addr);
- for (; i <
1024
&& examed_size < size; i++) {
+ for (; i <
PG_MAX_ENTRIES
&& examed_size < size; i++) {
if (!ptd->entry[i]) {
examed_size += PG_SIZE;
} else if (examed_size) {
if (!ptd->entry[i]) {
examed_size += PG_SIZE;
} else if (examed_size) {
@@
-49,7
+49,8
@@
vmm_vmap(uintptr_t paddr, size_t size, pt_attr attr)
current_addr = VMAP_START;
}
}
current_addr = VMAP_START;
}
}
- panick("vmm: out of memory");
+
+ return NULL;
done:
uintptr_t alloc_begin = current_addr - examed_size;
done:
uintptr_t alloc_begin = current_addr - examed_size;