1#pragma once
2
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#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
75void* mmap(void*, size_t, int, int, int, off_t);
76int munmap(void*, size_t);
77
78int mprotect(void*, size_t, int);
79int msync(void*, size_t, int);
80
81int posix_madvise(void*, size_t, int);
82
83int mlock(const void*, size_t);
84int munlock(const void*, size_t);
85int mlockall(int);
86int munlockall(void);
87
88#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
89#define MLOCK_ONFAULT 0x01
90int madvise(void*, size_t, int);
91#endif
92
93int shm_open(const char*, int, mode_t);
94int shm_unlink(const char*);
95
96#ifdef __cplusplus
97}
98#endif
99