Memory management

Functions allow managing process address spaces.

syscalls_sys_mmap

GETFROMSTACK(ustack, void **, vaddr, 0);
GETFROMSTACK(ustack, size_t, size, 1);
GETFROMSTACK(ustack, int, prot, 2);
GETFROMSTACK(ustack, int, flags, 3);
GETFROMSTACK(ustack, int, fildes, 4);
GETFROMSTACK(ustack, off_t, offs, 5);

Maps part of object given by fildes, offs and size at vaddr with protection attributes given by prot using mapping mode defined by flags.

syscalls_sys_munmap

GETFROMSTACK(ustack, void *, vaddr, 0);
GETFROMSTACK(ustack, size_t, size, 1);

Unmaps part of address space defined by vaddr and size.

syscalls_meminfo

GETFROMSTACK(ustack, meminfo_t *, info, 0);

Returns memory map entries associated with calling process.

syscalls_va2pa

GETFROMSTACK(ustack, void *, va, 0);

Converts virtual address given by va to physical address.

syscalls_sys_mprotect

GETFROMSTACK(ustack, void *, vaddr, 0);
GETFROMSTACK(ustack, size_t, len, 1);
GETFROMSTACK(ustack, int, prot, 2);

Sets protection access to a memory region given by vaddr of size len to prot.