brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 1fd0748 Raw
79 lines · c
1//===-- memprof_interface_internal.h ---------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file is a part of MemProfiler, a memory profiler.10//11// This header declares the MemProfiler runtime interface functions.12// The runtime library has to define these functions so the instrumented program13// could call them.14//15// See also include/sanitizer/memprof_interface.h16//===----------------------------------------------------------------------===//17#ifndef MEMPROF_INTERFACE_INTERNAL_H18#define MEMPROF_INTERFACE_INTERNAL_H19 20#include "sanitizer_common/sanitizer_internal_defs.h"21 22#include "memprof_init_version.h"23 24using __sanitizer::u32;25using __sanitizer::u64;26using __sanitizer::uptr;27 28extern "C" {29// This function should be called at the very beginning of the process,30// before any instrumented code is executed and before any call to malloc.31SANITIZER_INTERFACE_ATTRIBUTE void __memprof_init();32SANITIZER_INTERFACE_ATTRIBUTE void __memprof_preinit();33SANITIZER_INTERFACE_ATTRIBUTE void __memprof_version_mismatch_check_v1();34 35SANITIZER_INTERFACE_ATTRIBUTE36void __memprof_record_access(void const volatile *addr);37 38SANITIZER_INTERFACE_ATTRIBUTE39void __memprof_record_access_hist(void const volatile *addr);40 41SANITIZER_INTERFACE_ATTRIBUTE42void __memprof_record_access_range(void const volatile *addr, uptr size);43 44SANITIZER_INTERFACE_ATTRIBUTE45void __memprof_record_access_range_hist(void const volatile *addr, uptr size);46 47SANITIZER_INTERFACE_ATTRIBUTE void __memprof_print_accumulated_stats();48 49SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE extern char50    __memprof_default_options_str[1];51 52SANITIZER_INTERFACE_ATTRIBUTE53const char *__memprof_default_options();54 55SANITIZER_INTERFACE_ATTRIBUTE56extern uptr __memprof_shadow_memory_dynamic_address;57 58SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE extern char59    __memprof_profile_filename[1];60 61SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE extern bool62    __memprof_histogram;63 64SANITIZER_INTERFACE_ATTRIBUTE int __memprof_profile_dump();65SANITIZER_INTERFACE_ATTRIBUTE void __memprof_profile_reset();66 67SANITIZER_INTERFACE_ATTRIBUTE void __memprof_load(uptr p);68SANITIZER_INTERFACE_ATTRIBUTE void __memprof_store(uptr p);69 70SANITIZER_INTERFACE_ATTRIBUTE71void *__memprof_memcpy(void *dst, const void *src, uptr size);72SANITIZER_INTERFACE_ATTRIBUTE73void *__memprof_memset(void *s, int c, uptr n);74SANITIZER_INTERFACE_ATTRIBUTE75void *__memprof_memmove(void *dest, const void *src, uptr n);76} // extern "C"77 78#endif // MEMPROF_INTERFACE_INTERNAL_H79