#include #include 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; }