File indexing completed on 2024-05-12 17:15:55

0001 /*
0002     SPDX-FileCopyrightText: 2014-2017 Milian Wolff <mail@milianw.de>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-or-later
0005 */
0006 
0007 #include <stddef.h>
0008 #include <stdint.h>
0009 #include <stdio.h>
0010 
0011 #ifdef __cplusplus
0012 typedef class LineWriter linewriter_t;
0013 extern "C" {
0014 #else
0015 typedef struct LineWriter linewriter_t;
0016 #endif
0017 
0018 typedef void (*heaptrack_callback_t)();
0019 typedef void (*heaptrack_callback_initialized_t)(linewriter_t&);
0020 
0021 void heaptrack_init(const char* outputFileName, heaptrack_callback_t initCallbackBefore,
0022                     heaptrack_callback_initialized_t initCallbackAfter, heaptrack_callback_t stopCallback);
0023 
0024 void heaptrack_stop();
0025 
0026 void heaptrack_pause();
0027 
0028 void heaptrack_resume();
0029 
0030 void heaptrack_malloc(void* ptr, size_t size);
0031 
0032 void heaptrack_free(void* ptr);
0033 
0034 void heaptrack_realloc(void* ptr_in, size_t size, void* ptr_out);
0035 void heaptrack_realloc2(uintptr_t ptr_in, size_t size, uintptr_t ptr_out);
0036 
0037 void heaptrack_invalidate_module_cache();
0038 
0039 typedef void (*heaptrack_warning_callback_t)(FILE*);
0040 void heaptrack_warning(heaptrack_warning_callback_t callback);
0041 
0042 #ifdef __cplusplus
0043 }
0044 #endif