1*3cab2bb3Spatrick //===-- sanitizer_allocator_interface.h ------------------------- C++ -----===// 2*3cab2bb3Spatrick // 3*3cab2bb3Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*3cab2bb3Spatrick // See https://llvm.org/LICENSE.txt for license information. 5*3cab2bb3Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*3cab2bb3Spatrick // 7*3cab2bb3Spatrick //===----------------------------------------------------------------------===// 8*3cab2bb3Spatrick // 9*3cab2bb3Spatrick // Re-declaration of functions from public sanitizer allocator interface. 10*3cab2bb3Spatrick // 11*3cab2bb3Spatrick //===----------------------------------------------------------------------===// 12*3cab2bb3Spatrick 13*3cab2bb3Spatrick #ifndef SANITIZER_ALLOCATOR_INTERFACE_H 14*3cab2bb3Spatrick #define SANITIZER_ALLOCATOR_INTERFACE_H 15*3cab2bb3Spatrick 16*3cab2bb3Spatrick #include "sanitizer_internal_defs.h" 17*3cab2bb3Spatrick 18*3cab2bb3Spatrick using __sanitizer::uptr; 19*3cab2bb3Spatrick 20*3cab2bb3Spatrick extern "C" { 21*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE 22*3cab2bb3Spatrick uptr __sanitizer_get_estimated_allocated_size(uptr size); 23*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE int __sanitizer_get_ownership(const void *p); 24*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE uptr 25*3cab2bb3Spatrick __sanitizer_get_allocated_size(const void *p); 26*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE uptr __sanitizer_get_current_allocated_bytes(); 27*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE uptr __sanitizer_get_heap_size(); 28*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE uptr __sanitizer_get_free_bytes(); 29*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE uptr __sanitizer_get_unmapped_bytes(); 30*3cab2bb3Spatrick 31*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE int __sanitizer_install_malloc_and_free_hooks( 32*3cab2bb3Spatrick void (*malloc_hook)(const void *, uptr), 33*3cab2bb3Spatrick void (*free_hook)(const void *)); 34*3cab2bb3Spatrick 35*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE 36*3cab2bb3Spatrick void __sanitizer_malloc_hook(void *ptr, uptr size); 37*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE 38*3cab2bb3Spatrick void __sanitizer_free_hook(void *ptr); 39*3cab2bb3Spatrick 40*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void 41*3cab2bb3Spatrick __sanitizer_purge_allocator(); 42*3cab2bb3Spatrick 43*3cab2bb3Spatrick SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void 44*3cab2bb3Spatrick __sanitizer_print_memory_profile(uptr top_percent, uptr max_number_of_contexts); 45*3cab2bb3Spatrick } // extern "C" 46*3cab2bb3Spatrick 47*3cab2bb3Spatrick #endif // SANITIZER_ALLOCATOR_INTERFACE_H 48