diff options
Diffstat (limited to 'lib/hwasan/hwasan.h')
-rw-r--r-- | lib/hwasan/hwasan.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/hwasan/hwasan.h b/lib/hwasan/hwasan.h index 3c6b44f7f..604c97024 100644 --- a/lib/hwasan/hwasan.h +++ b/lib/hwasan/hwasan.h @@ -32,6 +32,16 @@ typedef u8 tag_t; +// Reasonable values are 4 (for 1/16th shadow) and 6 (for 1/64th). +const uptr kShadowScale = 4; +const uptr kShadowAlignment = 1UL << kShadowScale; + +#define MEM_TO_SHADOW_OFFSET(mem) ((uptr)(mem) >> kShadowScale) +#define MEM_TO_SHADOW(mem) ((uptr)(mem) >> kShadowScale) +#define SHADOW_TO_MEM(shadow) ((uptr)(shadow) << kShadowScale) + +#define MEM_IS_APP(mem) MemIsApp((uptr)(mem)) + // TBI (Top Byte Ignore) feature of AArch64: bits [63:56] are ignored in address // translation and can be used to store a tag. const unsigned kAddressTagShift = 56; @@ -59,6 +69,8 @@ extern int hwasan_inited; extern bool hwasan_init_is_running; extern int hwasan_report_count; +bool MemIsApp(uptr p); + bool ProtectRange(uptr beg, uptr end); bool InitShadow(); char *GetProcSelfMaps(); |