1 // Copyright (C) 2017 The Android Open Source Project
2 // SPDX-License-Identifier: BSD-2-Clause
3
4 #include <sys/mman.h>
5
6 #include "header_checks.h"
7
sys_mman_h()8 static void sys_mman_h() {
9 MACRO(PROT_EXEC);
10 MACRO(PROT_NONE);
11 MACRO(PROT_READ);
12 MACRO(PROT_WRITE);
13
14 MACRO(MAP_FIXED);
15 MACRO(MAP_PRIVATE);
16 MACRO(MAP_SHARED);
17
18 MACRO(MS_ASYNC);
19 MACRO(MS_INVALIDATE);
20 MACRO(MS_SYNC);
21
22 MACRO(MCL_CURRENT);
23 MACRO(MCL_FUTURE);
24
25 void* p;
26 p = MAP_FAILED;
27
28 MACRO(POSIX_MADV_DONTNEED);
29 MACRO(POSIX_MADV_NORMAL);
30 MACRO(POSIX_MADV_RANDOM);
31 MACRO(POSIX_MADV_SEQUENTIAL);
32 MACRO(POSIX_MADV_WILLNEED);
33
34 #if !defined(__linux__)
35 MACRO(POSIX_TYPED_MEM_ALLOCATE);
36 MACRO(POSIX_TYPED_MEM_ALLOCATE_CONTIG);
37 MACRO(POSIX_TYPED_MEM_ALLOCATABLE);
38 #endif
39
40 TYPE(mode_t);
41 TYPE(off_t);
42 TYPE(size_t);
43
44 #if !defined(__linux__)
45 TYPE(struct posix_typed_mem_info);
46 STRUCT_MEMBER(struct posix_typed_mem_info, size_t, posix_tmi_length);
47 #endif
48
49 FUNCTION(mlock, int (*f)(const void*, size_t));
50 FUNCTION(mlockall, int (*f)(int));
51 FUNCTION(mmap, void* (*f)(void*, size_t, int, int, int, off_t));
52 FUNCTION(mprotect, int (*f)(void*, size_t, int));
53 FUNCTION(msync, int (*f)(void*, size_t, int));
54 FUNCTION(munlock, int (*f)(const void*, size_t));
55 FUNCTION(munlockall, int (*f)(void));
56 FUNCTION(munmap, int (*f)(void*, size_t));
57 FUNCTION(posix_madvise, int (*f)(void*, size_t, int));
58 #if !defined(__linux__)
59 FUNCTION(posix_mem_offset, int (*f)(const void*, size_t, off_t*, size_t*, int*));
60 FUNCTION(posix_typed_mem_get_info, int (*f)(int, struct posix_typed_mem_info*));
61 FUNCTION(posix_typed_mem_open, int (*f)(const char*, int, int));
62 #endif
63 #if !defined(__BIONIC__) // Disallowed by SELinux, so not implemented.
64 FUNCTION(shm_open, int (*f)(const char*, int, mode_t));
65 FUNCTION(shm_unlink, int (*f)(const char*));
66 #endif
67 }
68