mirror of
https://github.com/intel/llvm.git
synced 2026-01-22 23:49:22 +08:00
[sanitizer_common] Introduce SANITIZER_MMAP_BEGIN macro (#147645)
To prepare for other platforms, such as 64-bit AIX, that have a non-zero mmap beginning address. --------- Co-authored-by: David Justo <david.justo.1996@gmail.com>
This commit is contained in:
@@ -239,7 +239,7 @@ using PrimaryAllocator = PrimaryAllocatorASVT<LocalAddressSpaceView>;
|
||||
typedef CompactSizeClassMap SizeClassMap;
|
||||
template <typename AddressSpaceViewTy>
|
||||
struct AP32 {
|
||||
static const uptr kSpaceBeg = 0;
|
||||
static const uptr kSpaceBeg = SANITIZER_MMAP_BEGIN;
|
||||
static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
|
||||
static const uptr kMetadataSize = 0;
|
||||
typedef __asan::SizeClassMap SizeClassMap;
|
||||
|
||||
@@ -53,7 +53,7 @@ struct ChunkMetadata {
|
||||
#if !SANITIZER_CAN_USE_ALLOCATOR64
|
||||
template <typename AddressSpaceViewTy>
|
||||
struct AP32 {
|
||||
static const uptr kSpaceBeg = 0;
|
||||
static const uptr kSpaceBeg = SANITIZER_MMAP_BEGIN;
|
||||
static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
|
||||
static const uptr kMetadataSize = sizeof(ChunkMetadata);
|
||||
typedef __sanitizer::CompactSizeClassMap SizeClassMap;
|
||||
|
||||
@@ -56,7 +56,7 @@ struct MsanMapUnmapCallback {
|
||||
const uptr kMaxAllowedMallocSize = 2UL << 30;
|
||||
|
||||
struct AP32 {
|
||||
static const uptr kSpaceBeg = 0;
|
||||
static const uptr kSpaceBeg = SANITIZER_MMAP_BEGIN;
|
||||
static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
|
||||
static const uptr kMetadataSize = sizeof(Metadata);
|
||||
using SizeClassMap = __sanitizer::CompactSizeClassMap;
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace __sanitizer {
|
||||
typedef CompactSizeClassMap InternalSizeClassMap;
|
||||
|
||||
struct AP32 {
|
||||
static const uptr kSpaceBeg = 0;
|
||||
static const uptr kSpaceBeg = SANITIZER_MMAP_BEGIN;
|
||||
static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
|
||||
static const uptr kMetadataSize = 0;
|
||||
typedef InternalSizeClassMap SizeClassMap;
|
||||
|
||||
@@ -318,6 +318,9 @@
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// The first address that can be returned by mmap.
|
||||
#define SANITIZER_MMAP_BEGIN 0
|
||||
|
||||
// The range of addresses which can be returned my mmap.
|
||||
// FIXME: this value should be different on different platforms. Larger values
|
||||
// will still work but will consume more memory for TwoLevelByteMap.
|
||||
|
||||
@@ -62,7 +62,7 @@ struct MapUnmapCallback;
|
||||
defined(__powerpc__) || SANITIZER_RISCV64
|
||||
|
||||
struct AP32 {
|
||||
static const uptr kSpaceBeg = 0;
|
||||
static const uptr kSpaceBeg = SANITIZER_MMAP_BEGIN;
|
||||
static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE;
|
||||
static const uptr kMetadataSize = 0;
|
||||
typedef __sanitizer::CompactSizeClassMap SizeClassMap;
|
||||
|
||||
Reference in New Issue
Block a user