diff options
Diffstat (limited to 'compiler-rt/lib/asan/asan_internal.h')
| -rw-r--r-- | compiler-rt/lib/asan/asan_internal.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/compiler-rt/lib/asan/asan_internal.h b/compiler-rt/lib/asan/asan_internal.h index 79a4f05e84e..041aa3f6c03 100644 --- a/compiler-rt/lib/asan/asan_internal.h +++ b/compiler-rt/lib/asan/asan_internal.h @@ -83,11 +83,20 @@ bool DescribeAddrIfGlobal(uintptr_t addr); // asan_malloc_linux.cc / asan_malloc_mac.cc void ReplaceSystemMalloc(); +void OutOfMemoryMessageAndDie(const char *mem_type, size_t size); + // asan_linux.cc / asan_mac.cc void *AsanDoesNotSupportStaticLinkage(); +int AsanOpenReadonly(const char* filename); void *asan_mmap(void *addr, size_t length, int prot, int flags, int fd, uint64_t offset); -ssize_t asan_write(int fd, const void *buf, size_t count); + +void *AsanMmapSomewhereOrDie(size_t size, const char *where); +void AsanUnmapOrDie(void *ptr, size_t size); + +ssize_t AsanRead(int fd, void *buf, size_t count); +ssize_t AsanWrite(int fd, const void *buf, size_t count); +int AsanClose(int fd); // asan_printf.cc void RawWrite(const char *buffer); @@ -109,7 +118,6 @@ void PoisonShadowPartialRightRedzone(uintptr_t addr, uintptr_t redzone_size, uint8_t value); - extern size_t FLAG_quarantine_size; extern int FLAG_demangle; extern bool FLAG_symbolize; @@ -185,6 +193,16 @@ const int kAsanInternalHeapMagic = 0xfe; static const uintptr_t kCurrentStackFrameMagic = 0x41B58AB3; static const uintptr_t kRetiredStackFrameMagic = 0x45E0360E; +// --------------------------- Bit twiddling ------- {{{1 +inline bool IsPowerOfTwo(size_t x) { + return (x & (x - 1)) == 0; +} + +inline size_t RoundUpTo(size_t size, size_t boundary) { + CHECK(IsPowerOfTwo(boundary)); + return (size + boundary - 1) & ~(boundary - 1); +} + // -------------------------- LowLevelAllocator ----- {{{1 // A simple low-level memory allocator for internal use. class LowLevelAllocator { |

