46 lines
838 B
C
46 lines
838 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;
|
|
}
|
|
|
|
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;
|
|
} |