mman.h 2.6 KB
Newer Older
R
Rich Felker 已提交
1 2 3 4 5 6
#ifndef	_SYS_MMAN_H
#define	_SYS_MMAN_H
#ifdef __cplusplus
extern "C" {
#endif

7 8
#include <features.h>

R
Rich Felker 已提交
9 10 11 12
#define __NEED_mode_t
#define __NEED_size_t
#define __NEED_off_t

13 14 15 16
#if defined(_GNU_SOURCE)
#define __NEED_ssize_t
#endif

R
Rich Felker 已提交
17 18
#include <bits/alltypes.h>

S
Szabolcs Nagy 已提交
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
#define MAP_FAILED ((void *) -1)

#define MAP_SHARED     0x01
#define MAP_PRIVATE    0x02
#define MAP_TYPE       0x0f
#define MAP_FIXED      0x10
#define MAP_ANON       0x20
#define MAP_ANONYMOUS  MAP_ANON
#define MAP_NORESERVE  0x4000
#define MAP_GROWSDOWN  0x0100
#define MAP_DENYWRITE  0x0800
#define MAP_EXECUTABLE 0x1000
#define MAP_LOCKED     0x2000
#define MAP_POPULATE   0x8000
#define MAP_NONBLOCK   0x10000
#define MAP_STACK      0x20000
#define MAP_HUGETLB    0x40000
#define MAP_FILE       0

#define PROT_NONE      0
#define PROT_READ      1
#define PROT_WRITE     2
#define PROT_EXEC      4
#define PROT_GROWSDOWN 0x01000000
#define PROT_GROWSUP   0x02000000

#define MS_ASYNC       1
#define MS_INVALIDATE  2
#define MS_SYNC        4

#define MCL_CURRENT    1
#define MCL_FUTURE     2
#define MCL_ONFAULT    4

#define POSIX_MADV_NORMAL     0
#define POSIX_MADV_RANDOM     1
#define POSIX_MADV_SEQUENTIAL 2
#define POSIX_MADV_WILLNEED   3
#define POSIX_MADV_DONTNEED   4

#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
#define MADV_NORMAL      0
#define MADV_RANDOM      1
#define MADV_SEQUENTIAL  2
#define MADV_WILLNEED    3
#define MADV_DONTNEED    4
65
#define MADV_FREE        8
S
Szabolcs Nagy 已提交
66 67 68 69 70 71 72 73 74 75 76 77 78
#define MADV_REMOVE      9
#define MADV_DONTFORK    10
#define MADV_DOFORK      11
#define MADV_MERGEABLE   12
#define MADV_UNMERGEABLE 13
#define MADV_HUGEPAGE    14
#define MADV_NOHUGEPAGE  15
#define MADV_DONTDUMP    16
#define MADV_DODUMP      17
#define MADV_HWPOISON    100
#define MADV_SOFT_OFFLINE 101
#endif

R
Rich Felker 已提交
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
#include <bits/mman.h>

void *mmap (void *, size_t, int, int, int, off_t);
int munmap (void *, size_t);

int mprotect (void *, size_t, int);
int msync (void *, size_t, int);

int posix_madvise (void *, size_t, int);

int mlock (const void *, size_t);
int munlock (const void *, size_t);
int mlockall (int);
int munlockall (void);

R
Rich Felker 已提交
94
#ifdef _GNU_SOURCE
95 96
#define MREMAP_MAYMOVE 1
#define MREMAP_FIXED 2
R
Rich Felker 已提交
97
void *mremap (void *, size_t, size_t, int, ...);
98
int remap_file_pages (void *, size_t, int, size_t, int);
99 100 101
#endif

#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
102
#define MLOCK_ONFAULT   0x01
R
Rich Felker 已提交
103
int madvise (void *, size_t, int);
R
Rich Felker 已提交
104
int mincore (void *, size_t, unsigned char *);
R
Rich Felker 已提交
105
#endif
R
Rich Felker 已提交
106 107 108 109

int shm_open (const char *, int, mode_t);
int shm_unlink (const char *);

110
#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
R
Rich Felker 已提交
111 112 113 114
#define mmap64 mmap
#define off64_t off_t
#endif

R
Rich Felker 已提交
115 116 117 118
#ifdef __cplusplus
}
#endif
#endif