#ifndef _LIBC_SYS_MMAN_H #define _LIBC_SYS_MMAN_H #pragma once #include #ifdef __cplusplus extern "C" { #endif /* * Anonymous-memory mmap over SYS_ALLOC. SYS_ALLOC returns * page-aligned process memory, which is exactly what callers like * GCC's page allocator need. File-backed mappings are not * supported and fail with ENODEV. */ #define PROT_NONE 0 #define PROT_READ 1 #define PROT_WRITE 2 #define PROT_EXEC 4 #define MAP_SHARED 0x01 #define MAP_PRIVATE 0x02 #define MAP_FIXED 0x10 #define MAP_ANONYMOUS 0x20 #define MAP_ANON MAP_ANONYMOUS #define MAP_FAILED ((void *)-1) void *mmap(void *addr, size_t length, int prot, int flags, int fd, long offset); int munmap(void *addr, size_t length); int mprotect(void *addr, size_t length, int prot); #ifdef __cplusplus } #endif #endif /* _LIBC_SYS_MMAN_H */