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