-
Notifications
You must be signed in to change notification settings - Fork 14.4k
[libc] adjust linux's mman.h
definitions
#79652
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@llvm/pr-subscribers-libc Author: Schrodinger ZHU Yifan (SchrodingerZhu) ChangesUse definitions from Full diff: https://github.com/llvm/llvm-project/pull/79652.diff 1 Files Affected:
diff --git a/libc/include/llvm-libc-macros/linux/sys-mman-macros.h b/libc/include/llvm-libc-macros/linux/sys-mman-macros.h
index 1925c3c7cd3da09..15bd46824f9da57 100644
--- a/libc/include/llvm-libc-macros/linux/sys-mman-macros.h
+++ b/libc/include/llvm-libc-macros/linux/sys-mman-macros.h
@@ -9,80 +9,18 @@
#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
+// Use definitions from <linux/mman.h> to dispatch arch-specific flag values.
+// For example, MCL_CURRENT/MCL_FUTURE/MCL_ONFAULT are different on different
+// architectures.
+#include <linux/mman.h>
-// Memory mapping flags. (mmap, munmap)
+// Some posix standard flags are not defined in linux/mman.h.
+// Posix mmap flags.
#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
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Use definitions from
<linux/mman.h>
to dispatch arch-specific flag values.For example,
MCL_CURRENT/MCL_FUTURE/MCL_ONFAULT
are different on different architectures.