41 lines
1.0 KiB
C
41 lines
1.0 KiB
C
#ifndef _SYS_MMAN_H
|
|
#define _SYS_MMAN_H
|
|
|
|
#include <stddef.h>
|
|
#include <sys/types.h> // for off_t
|
|
|
|
/* Address returned by mmap when it fails. */
|
|
#define MAP_FAILED (void*)-1
|
|
|
|
#define PROT_NONE 0
|
|
#define PROT_READ 1
|
|
#define PROT_WRITE 2
|
|
#define PROT_EXEC 4
|
|
|
|
#define PAGE_SIZE 4096
|
|
|
|
#define MAP_PRIVATE 0
|
|
#define MAP_SHARED 1
|
|
#define MAP_ANONYMOUS 2
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/* Maps size bytes of memory (rounded up to the nearest page-aligned size) into the current process's address
|
|
* space at addr. If addr is null, the kernel will choose an address. */
|
|
void* mmap(void* addr, size_t size, int prot, int flags, int fd, off_t offset);
|
|
|
|
/* Unmaps size bytes of memory (rounded up to the nearest page-aligned size) at addr from the current process's
|
|
* address space. */
|
|
int munmap(void* addr, size_t size);
|
|
|
|
/* Changes the permissions of size bytes of memory at addr zaccording to the prot argument. */
|
|
int mprotect(void* addr, size_t size, int prot);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif |