89 lines
2.7 KiB
C
89 lines
2.7 KiB
C
//===-- Definition of macros from sys/mman.h ------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef __LLVM_LIBC_MACROS_LINUX_SYS_MMAN_MACROS_H
|
|
#define __LLVM_LIBC_MACROS_LINUX_SYS_MMAN_MACROS_H
|
|
|
|
// Memory protection flags. (mmap, munmap, mprotect)
|
|
#define PROT_NONE 0x0
|
|
#define PROT_READ 0x1
|
|
#define PROT_WRITE 0x2
|
|
#define PROT_EXEC 0x4
|
|
// These protection flags are only valid for mprotect.
|
|
#define PROT_GROWSUP 0x1000000
|
|
#define PROT_GROWSDOWN 0x2000000
|
|
|
|
// Memory mapping flags. (mmap, munmap)
|
|
#define MAP_FAILED ((void *)-1)
|
|
// These are the sharing types, and exactly one of these must be set.
|
|
#define MAP_FILE 0x0 // Compatibility flag. Ignored.
|
|
#define MAP_SHARED 0x1
|
|
#define MAP_PRIVATE 0x2
|
|
#define MAP_SHARED_VALIDATE 0x3
|
|
// 0x4-0xf are unused.
|
|
// These are the other flags, and zero or more of these can be set.
|
|
#define MAP_FIXED 0x10
|
|
#define MAP_ANONYMOUS 0x20
|
|
#define MAP_ANON MAP_ANONYMOUS
|
|
#define MAP_32BIT 0x40
|
|
// 0x80 is unused.
|
|
#define MAP_GROWSDOWN 0x100
|
|
#define MAP_DENYWRITE 0x800
|
|
#define MAP_EXECUTABLE 0x1000 // Compatibility flag. Ignored.
|
|
#define MAP_LOCKED 0x2000
|
|
#define MAP_NORESERVE 0x4000
|
|
#define MAP_POPULATE 0x8000
|
|
#define MAP_NONBLOCK 0x10000
|
|
#define MAP_STACK 0x20000
|
|
#define MAP_HUGETLB 0x40000
|
|
#define MAP_SYNC 0x80000
|
|
#define MAP_FIXED_NOREPLACE 0x100000
|
|
// HUGETLB support macros. If ma_HUGHTLB is set, the bits under MAP_HUGE_MASK
|
|
// represent the base-2 logarithm of the desired page size, and MAP_HUGE_2MB/1GB
|
|
// are common sizes.
|
|
#define MAP_HUGE_SHIFT 26
|
|
#define MAP_HUGE_MASK 0x3f
|
|
#define MAP_HUGE_2MB (21 << MAP_HUGE_SHIFT)
|
|
#define MAP_HUGE_1GB (30 << MAP_HUGE_SHIFT)
|
|
|
|
// Memory sync flags. (msync)
|
|
#define MS_ASYNC 1
|
|
#define MS_INVALIDATE 2
|
|
#define MS_SYNC 4
|
|
|
|
// Memory advice flags. (madvise)
|
|
#define MADV_NORMAL 0
|
|
#define MADV_RANDOM 1
|
|
#define MADV_SEQUENTIAL 2
|
|
#define MADV_WILLNEED 3
|
|
#define MADV_DONTNEED 4
|
|
#define MADV_FREE 8
|
|
#define MADV_REMOVE 9
|
|
#define MADV_DONTFORK 10
|
|
#define MADV_DOFORK 11
|
|
#define MADV_MERGEABLE 12
|
|
#define MADV_UNMERGEABLE 13
|
|
#define MADV_HUGEPAGE 14
|
|
#define MADV_NOHUGEPAGE 15
|
|
#define MADV_DONTDUMP 16
|
|
#define MADV_DODUMP 17
|
|
#define MADV_WIPEONFORK 18
|
|
#define MADV_KEEPONFORK 19
|
|
#define MADV_COLD 20
|
|
#define MADV_PAGEOUT 21
|
|
#define MADV_HWPOISON 100
|
|
|
|
// Posix memory advise flags. (posix_madvise)
|
|
#define POSIX_MADV_NORMAL MADV_NORMAL
|
|
#define POSIX_MADV_SEQUENTIAL MADV_SEQUENTIAL
|
|
#define POSIX_MADV_RANDOM MADV_RANDOM
|
|
#define POSIX_MADV_WILLNEED MADV_WILLNEED
|
|
#define POSIX_MADV_DONTNEED MADV_DONTNEED
|
|
|
|
#endif // __LLVM_LIBC_MACROS_LINUX_SYS_MMAN_MACROS_H
|