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 | a2aff5eb165470d8d27bc07375631cb900b47619 (patch) | |
tree | 1af2a70131146fa9a3156d8d0c4b841e856781f3 /include/sanitizer | |
parent | 486fbebb67c20076c8e329b6b39c66cb50ff5789 (diff) | |
download | compiler-rt-a2aff5eb165470d8d27bc07375631cb900b47619.tar.gz |
[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
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@339746 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/sanitizer')
-rw-r--r-- | include/sanitizer/hwasan_interface.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/include/sanitizer/hwasan_interface.h b/include/sanitizer/hwasan_interface.h index 75d31a6c3..9ca73bc10 100644 --- a/include/sanitizer/hwasan_interface.h +++ b/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); |