18d615a5eSMichael Jones //===-- Macros defined in sys/mman.h header file --------------------------===// 28d615a5eSMichael Jones // 38d615a5eSMichael Jones // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 48d615a5eSMichael Jones // See https://llvm.org/LICENSE.txt for license information. 58d615a5eSMichael Jones // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 68d615a5eSMichael Jones // 78d615a5eSMichael Jones //===----------------------------------------------------------------------===// 88d615a5eSMichael Jones 9*330793c9SNick Desaulniers #ifndef LLVM_LIBC_MACROS_SYS_MMAN_MACROS_H 10*330793c9SNick Desaulniers #define LLVM_LIBC_MACROS_SYS_MMAN_MACROS_H 118d615a5eSMichael Jones 122e1e27c7SSchrodinger ZHU Yifan // Use definitions from <linux/mman.h> to dispatch arch-specific flag values. 132e1e27c7SSchrodinger ZHU Yifan // For example, MCL_CURRENT/MCL_FUTURE/MCL_ONFAULT are different on different 142e1e27c7SSchrodinger ZHU Yifan // architectures. 152e1e27c7SSchrodinger ZHU Yifan #if __has_include(<linux/mman.h>) 162e1e27c7SSchrodinger ZHU Yifan #include <linux/mman.h> 172e1e27c7SSchrodinger ZHU Yifan #else 182e1e27c7SSchrodinger ZHU Yifan #error "cannot use <sys/mman.h> without proper system headers." 192e1e27c7SSchrodinger ZHU Yifan #endif 202e1e27c7SSchrodinger ZHU Yifan 212e1e27c7SSchrodinger ZHU Yifan // Some posix standard flags may not be defined in system headers. 222e1e27c7SSchrodinger ZHU Yifan // Posix mmap flags. 232e1e27c7SSchrodinger ZHU Yifan #ifndef MAP_FAILED 242e1e27c7SSchrodinger ZHU Yifan #define MAP_FAILED ((void *)-1) 252e1e27c7SSchrodinger ZHU Yifan #endif 262e1e27c7SSchrodinger ZHU Yifan 272e1e27c7SSchrodinger ZHU Yifan // Posix memory advise flags. (posix_madvise) 282e1e27c7SSchrodinger ZHU Yifan #ifndef POSIX_MADV_NORMAL 292e1e27c7SSchrodinger ZHU Yifan #define POSIX_MADV_NORMAL MADV_NORMAL 302e1e27c7SSchrodinger ZHU Yifan #endif 312e1e27c7SSchrodinger ZHU Yifan 322e1e27c7SSchrodinger ZHU Yifan #ifndef POSIX_MADV_SEQUENTIAL 332e1e27c7SSchrodinger ZHU Yifan #define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL 342e1e27c7SSchrodinger ZHU Yifan #endif 352e1e27c7SSchrodinger ZHU Yifan 362e1e27c7SSchrodinger ZHU Yifan #ifndef POSIX_MADV_RANDOM 372e1e27c7SSchrodinger ZHU Yifan #define POSIX_MADV_RANDOM MADV_RANDOM 382e1e27c7SSchrodinger ZHU Yifan #endif 392e1e27c7SSchrodinger ZHU Yifan 402e1e27c7SSchrodinger ZHU Yifan #ifndef POSIX_MADV_WILLNEED 412e1e27c7SSchrodinger ZHU Yifan #define POSIX_MADV_WILLNEED MADV_WILLNEED 422e1e27c7SSchrodinger ZHU Yifan #endif 432e1e27c7SSchrodinger ZHU Yifan 442e1e27c7SSchrodinger ZHU Yifan #ifndef POSIX_MADV_DONTNEED 452e1e27c7SSchrodinger ZHU Yifan #define POSIX_MADV_DONTNEED MADV_DONTNEED 468d615a5eSMichael Jones #endif 478d615a5eSMichael Jones 48*330793c9SNick Desaulniers #endif // LLVM_LIBC_MACROS_SYS_MMAN_MACROS_H 49