33 lines
837 B
C
33 lines
837 B
C
#include <memory.h>
|
|
#include <debug.h>
|
|
|
|
static long _brk = KERNEL_BRK0;
|
|
static long _mmap = KERNEL_MMAP;
|
|
|
|
long k_brk(long brk, long, long, long, long, long) {
|
|
if(brk) {
|
|
while(_brk < brk) {
|
|
vmm_set_page(kernel_P4, _brk, pmm_alloc(), PAGE_GLOBAL | PAGE_WRITE | PAGE_PRESENT);
|
|
_brk += PAGE_SIZE;
|
|
}
|
|
return _brk;
|
|
} 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_GLOBAL | PAGE_WRITE | PAGE_PRESENT);
|
|
_mmap += PAGE_SIZE;
|
|
length -= PAGE_SIZE;
|
|
}
|
|
return retval;
|
|
} |