void* mmap(void* addr, size_t len, int prot, int flags, int fd, uint64_t offset);
Maps a block of memory of len bytes with page protection prot. If addr is NULL, the system automatically picks a free virtual address. If addr is not NULL, the provided address is mapped (existing mappings will be overridden).
The protection flags in prot can include one or more of PROT_READ, PROT_WRITE, and PROT_EXEC.
The flags parameter must contain one of MAP_SHARED or MAP_PRIVATE. Additional flags include MAP_ANONYMOUS, which maps a region backed by RAM instead of a file. The fd parameter should be -1 when mapping anonymous pages. If the region is to be backed by a file, the fd and offset parameters specify the file handle and offset within the file of the beginning of the mapping.
Returns a pointer to the mapped region.