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_MERGEABLE 42 # define MADV_MERGEABLE 12 43 #endif 44 45 #ifndef MADV_UNMERGEABLE 46 # define MADV_UNMERGEABLE 13 47 #endif 48 49 #ifndef MADV_HUGEPAGE 50 # define MADV_HUGEPAGE 14 51 #endif 52 53 #ifndef MADV_NOHUGEPAGE 54 # define MADV_NOHUGEPAGE 15 55 #endif 56 57 #ifndef MADV_DONTDUMP 58 # define MADV_DONTDUMP 16 59 #endif 60 61 #ifndef MADV_DODUMP 62 # define MADV_DODUMP 17 63 #endif 64 65 #ifndef MADV_FREE 66 # define MADV_FREE 8 67 #endif 68 69 #ifndef MADV_WIPEONFORK 70 # define MADV_WIPEONFORK 18 71 # define MADV_KEEPONFORK 19 72 #endif 73 74 #ifndef MADV_COLD 75 # define MADV_COLD 20 76 #endif 77 78 #ifndef MADV_PAGEOUT 79 # define MADV_PAGEOUT 21 80 #endif 81 82 #ifndef MAP_FIXED_NOREPLACE 83 84 #ifdef __alpha__ 85 # define MAP_FIXED_NOREPLACE 0x200000 86 #else 87 # define MAP_FIXED_NOREPLACE 0x100000 88 #endif 89 90 #endif /* MAP_FIXED_NOREPLACE */ 91 92 #ifdef HAVE_SYS_SHM_H 93 # include <sys/shm.h> 94 # define MMAP_GRANULARITY SHMLBA 95 #else 96 # include <unistd.h> 97 # define MMAP_GRANULARITY getpagesize() 98 #endif /* HAVE_SYS_SHM_H */ 99 100 #endif /* LAPI_MMAP_H__ */ 101