1 // SPDX-License-Identifier: GPL-2.0-or-later 2 /* 3 * Copyright (c) 2015 Fujitsu Ltd. 4 * Author: Guangwen Feng <fenggw-fnst@cn.fujitsu.com> 5 */ 6 7 #ifndef LAPI_MMAP_H__ 8 #define LAPI_MMAP_H__ 9 10 #include "config.h" 11 #include <sys/mman.h> 12 13 #ifndef MAP_SHARED_VALIDATE 14 # define MAP_SHARED_VALIDATE 0x03 15 #endif 16 17 #ifndef MAP_HUGETLB 18 # define MAP_HUGETLB 0x40000 19 #endif 20 21 #ifndef MADV_REMOVE 22 # define MADV_REMOVE 9 23 #endif 24 25 #ifndef MADV_DONTFORK 26 # define MADV_DONTFORK 10 27 #endif 28 29 #ifndef MADV_DOFORK 30 # define MADV_DOFORK 11 31 #endif 32 33 #ifndef MADV_HWPOISON 34 # define MADV_HWPOISON 100 35 #endif 36 37 #ifndef MADV_SOFT_OFFLINE 38 # define MADV_SOFT_OFFLINE 101 39 #endif 40 41 #ifndef MADV_GUARD_INSTALL 42 # define MADV_GUARD_INSTALL 102 43 #endif 44 45 #ifndef MADV_GUARD_REMOVE 46 # define MADV_GUARD_REMOVE 103 47 #endif 48 49 #ifndef MADV_MERGEABLE 50 # define MADV_MERGEABLE 12 51 #endif 52 53 #ifndef MADV_UNMERGEABLE 54 # define MADV_UNMERGEABLE 13 55 #endif 56 57 #ifndef MADV_HUGEPAGE 58 # define MADV_HUGEPAGE 14 59 #endif 60 61 #ifndef MADV_NOHUGEPAGE 62 # define MADV_NOHUGEPAGE 15 63 #endif 64 65 #ifndef MADV_DONTDUMP 66 # define MADV_DONTDUMP 16 67 #endif 68 69 #ifndef MADV_DODUMP 70 # define MADV_DODUMP 17 71 #endif 72 73 #ifndef MADV_FREE 74 # define MADV_FREE 8 75 #endif 76 77 #ifndef MADV_WIPEONFORK 78 # define MADV_WIPEONFORK 18 79 # define MADV_KEEPONFORK 19 80 #endif 81 82 #ifndef MADV_COLD 83 # define MADV_COLD 20 84 #endif 85 86 #ifndef MADV_PAGEOUT 87 # define MADV_PAGEOUT 21 88 #endif 89 90 #ifndef MAP_FIXED_NOREPLACE 91 92 #ifdef __alpha__ 93 # define MAP_FIXED_NOREPLACE 0x200000 94 #else 95 # define MAP_FIXED_NOREPLACE 0x100000 96 #endif 97 98 #endif /* MAP_FIXED_NOREPLACE */ 99 100 #ifdef HAVE_SYS_SHM_H 101 # include <sys/shm.h> 102 # define MMAP_GRANULARITY SHMLBA 103 #else 104 # include <unistd.h> 105 # define MMAP_GRANULARITY getpagesize() 106 #endif /* HAVE_SYS_SHM_H */ 107 108 #endif /* LAPI_MMAP_H__ */ 109