1#ifndef	_SYS_MMAN_H
2#define	_SYS_MMAN_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7#include <features.h>
8
9#define __NEED_mode_t
10#define __NEED_size_t
11#define __NEED_off_t
12
13#if defined(_GNU_SOURCE)
14#define __NEED_ssize_t
15#endif
16
17#include <bits/alltypes.h>
18
19#define MAP_FAILED ((void *) -1)
20
21#define MAP_SHARED     0x01
22#define MAP_PRIVATE    0x02
23#define MAP_TYPE       0x0f
24#define MAP_FIXED      0x10
25#define MAP_ANON       0x20
26#define MAP_ANONYMOUS  MAP_ANON
27#define MAP_NORESERVE  0x4000
28#define MAP_GROWSDOWN  0x0100
29#define MAP_DENYWRITE  0x0800
30#define MAP_EXECUTABLE 0x1000
31#define MAP_LOCKED     0x2000
32#define MAP_POPULATE   0x8000
33#define MAP_NONBLOCK   0x10000
34#define MAP_STACK      0x20000
35#define MAP_HUGETLB    0x40000
36#define MAP_FILE       0
37
38#define PROT_NONE      0
39#define PROT_READ      1
40#define PROT_WRITE     2
41#define PROT_EXEC      4
42#define PROT_GROWSDOWN 0x01000000
43#define PROT_GROWSUP   0x02000000
44
45#define MS_ASYNC       1
46#define MS_INVALIDATE  2
47#define MS_SYNC        4
48
49#define MCL_CURRENT    1
50#define MCL_FUTURE     2
51#define MCL_ONFAULT    4
52
53#define POSIX_MADV_NORMAL     0
54#define POSIX_MADV_RANDOM     1
55#define POSIX_MADV_SEQUENTIAL 2
56#define POSIX_MADV_WILLNEED   3
57#define POSIX_MADV_DONTNEED   4
58
59#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
60#define MADV_NORMAL      0
61#define MADV_RANDOM      1
62#define MADV_SEQUENTIAL  2
63#define MADV_WILLNEED    3
64#define MADV_DONTNEED    4
65#define MADV_FREE        8
66#define MADV_REMOVE      9
67#define MADV_DONTFORK    10
68#define MADV_DOFORK      11
69#define MADV_MERGEABLE   12
70#define MADV_UNMERGEABLE 13
71#define MADV_HUGEPAGE    14
72#define MADV_NOHUGEPAGE  15
73#define MADV_DONTDUMP    16
74#define MADV_DODUMP      17
75#define MADV_HWPOISON    100
76#define MADV_SOFT_OFFLINE 101
77#endif
78
79#include <bits/mman.h>
80
81void *mmap (void *, size_t, int, int, int, off_t);
82int munmap (void *, size_t);
83
84int mprotect (void *, size_t, int);
85int msync (void *, size_t, int);
86
87int posix_madvise (void *, size_t, int);
88
89int mlock (const void *, size_t);
90int munlock (const void *, size_t);
91int mlockall (int);
92int munlockall (void);
93
94#ifdef _GNU_SOURCE
95#define MREMAP_MAYMOVE 1
96#define MREMAP_FIXED 2
97void *mremap (void *, size_t, size_t, int, ...);
98int remap_file_pages (void *, size_t, int, size_t, int);
99#endif
100
101#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
102#define MLOCK_ONFAULT   0x01
103int madvise (void *, size_t, int);
104int mincore (void *, size_t, unsigned char *);
105#endif
106
107int shm_open (const char *, int, mode_t);
108int shm_unlink (const char *);
109
110#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
111#define mmap64 mmap
112#define off64_t off_t
113#endif
114
115#ifdef __cplusplus
116}
117#endif
118#endif
119