diff options
author | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2018-08-15 00:39:35 +0000 |
---|---|---|
committer | Evgeniy Stepanov <eugeni.stepanov@gmail.com> | 2018-08-15 00:39:35 +0000 |
commit | 77370c0a515480306f49aea947570f9937050a1e (patch) | |
tree | a3312dd408e207f77ac2563def3ee4fbef992a19 /compiler-rt/include | |
parent | 9d4594468fe303f747f6f2f0e99b768c7e9bc2e2 (diff) |
[hwasan] Add a basic API.
Summary:
Add user tag manipulation functions:
__hwasan_tag_memory
__hwasan_tag_pointer
__hwasan_print_shadow (very simple and ugly, for now)
Reviewers: vitalybuka, kcc
Subscribers: kubamracek, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D50746
Diffstat (limited to 'compiler-rt/include')
-rw-r--r-- | compiler-rt/include/sanitizer/hwasan_interface.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/compiler-rt/include/sanitizer/hwasan_interface.h b/compiler-rt/include/sanitizer/hwasan_interface.h index 75d31a6c35f..9ca73bc1072 100644 --- a/compiler-rt/include/sanitizer/hwasan_interface.h +++ b/compiler-rt/include/sanitizer/hwasan_interface.h @@ -32,6 +32,18 @@ extern "C" { void __hwasan_enable_allocator_tagging(void); void __hwasan_disable_allocator_tagging(void); + // Mark region of memory with the given tag. Both address and size need to be + // 16-byte aligned. + void __hwasan_tag_memory(const volatile void *p, unsigned char tag, + size_t size); + + /// Set pointer tag. Previous tag is lost. + void *__hwasan_tag_pointer(const volatile void *p, unsigned char tag); + + // Print shadow and origin for the memory range to stderr in a human-readable + // format. + void __hwasan_print_shadow(const volatile void *x, size_t size); + int __sanitizer_posix_memalign(void **memptr, size_t alignment, size_t size); void * __sanitizer_memalign(size_t alignment, size_t size); void * __sanitizer_aligned_alloc(size_t alignment, size_t size); |