diff options
| author | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2014-05-12 11:03:46 +0000 |
|---|---|---|
| committer | Viktor Kutuzov <vkutuzov@accesssoftek.com> | 2014-05-12 11:03:46 +0000 |
| commit | 626edb6f49349255522896ed40e2ff28c9e64150 (patch) | |
| tree | 9020f4611b6156cb3a0cbeb33b577e4734e1005d /compiler-rt/lib/asan/asan_mapping.h | |
| parent | e61f4d51559d584df6f34a4f70387639269bdce8 (diff) | |
| download | bcm5719-llvm-626edb6f49349255522896ed40e2ff28c9e64150.tar.gz bcm5719-llvm-626edb6f49349255522896ed40e2ff28c9e64150.zip | |
Add FreeBSD support to address sanitizer process mapping facilities
llvm-svn: 208537
Diffstat (limited to 'compiler-rt/lib/asan/asan_mapping.h')
| -rw-r--r-- | compiler-rt/lib/asan/asan_mapping.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/compiler-rt/lib/asan/asan_mapping.h b/compiler-rt/lib/asan/asan_mapping.h index 8941475a9b7..1a5c185b90a 100644 --- a/compiler-rt/lib/asan/asan_mapping.h +++ b/compiler-rt/lib/asan/asan_mapping.h @@ -65,6 +65,20 @@ // || `[0x0bffd000, 0x0fffcfff]` || ShadowGap || // || `[0x0aaa8000, 0x0bffcfff]` || LowShadow || // || `[0x00000000, 0x0aaa7fff]` || LowMem || +// +// Shadow mapping on FreeBSD/x86-64 with SHADOW_OFFSET == 0x400000000000: +// || `[0x500000000000, 0x7fffffffffff]` || HighMem || +// || `[0x4a0000000000, 0x4fffffffffff]` || HighShadow || +// || `[0x480000000000, 0x49ffffffffff]` || ShadowGap || +// || `[0x400000000000, 0x47ffffffffff]` || LowShadow || +// || `[0x000000000000, 0x3fffffffffff]` || LowMem || +// +// Shadow mapping on FreeBSD/i386 with SHADOW_OFFSET == 0x40000000: +// || `[0x60000000, 0xffffffff]` || HighMem || +// || `[0x4c000000, 0x5fffffff]` || HighShadow || +// || `[0x48000000, 0x4bffffff]` || ShadowGap || +// || `[0x40000000, 0x47ffffff]` || LowShadow || +// || `[0x00000000, 0x3fffffff]` || LowMem || static const u64 kDefaultShadowScale = 3; static const u64 kDefaultShadowOffset32 = 1ULL << 29; // 0x20000000 @@ -73,6 +87,8 @@ static const u64 kDefaultShadowOffset64 = 1ULL << 44; static const u64 kDefaultShort64bitShadowOffset = 0x7FFF8000; // < 2G. static const u64 kAArch64_ShadowOffset64 = 1ULL << 36; static const u64 kMIPS32_ShadowOffset32 = 0x0aaa8000; +static const u64 kFreeBSD_ShadowOffset32 = 1ULL << 30; // 0x40000000 +static const u64 kFreeBSD_ShadowOffset64 = 1ULL << 46; // 0x400000000000 #define SHADOW_SCALE kDefaultShadowScale #if SANITIZER_ANDROID @@ -81,6 +97,8 @@ static const u64 kMIPS32_ShadowOffset32 = 0x0aaa8000; # if SANITIZER_WORDSIZE == 32 # if defined(__mips__) # define SHADOW_OFFSET kMIPS32_ShadowOffset32 +# elif SANITIZER_FREEBSD +# define SHADOW_OFFSET kFreeBSD_ShadowOffset32 # else # if SANITIZER_IOS # define SHADOW_OFFSET kIosShadowOffset32 @@ -91,6 +109,8 @@ static const u64 kMIPS32_ShadowOffset32 = 0x0aaa8000; # else # if defined(__aarch64__) # define SHADOW_OFFSET kAArch64_ShadowOffset64 +# elif SANITIZER_FREEBSD +# define SHADOW_OFFSET kFreeBSD_ShadowOffset64 # elif SANITIZER_MAC # define SHADOW_OFFSET kDefaultShadowOffset64 # else |

