Add mmap kernel syscall. Needed for large malloc

This commit is contained in:
2022-01-11 22:08:00 +01:00
parent fc54366eec
commit a162680f5a
5 changed files with 65 additions and 7 deletions

View File

@@ -2,6 +2,7 @@
#include <debug.h>
static long _brk = KERNEL_BRK0;
static long _mmap = KERNEL_MMAP;
long k_brk(long brk, long, long, long, long, long)
{
@@ -15,4 +16,22 @@ long k_brk(long brk, long, long, long, long, long)
} else {
return _brk;
}
}
long k_mmap(long addr, long length, long prot, long flags, long fd, long offset)
{
(void)addr;
(void)prot;
(void)flags;
(void)offset;
if(fd != -1)
PANIC("Unknown mmap request\n");
long retval = _mmap;
while(length > 0)
{
vmm_set_page(kernel_P4, _mmap, pmm_alloc(), PAGE_WRITE | PAGE_PRESENT);
_mmap += PAGE_SIZE;
length -= PAGE_SIZE;
}
return retval;
}