1 /* 2 * Copyright (C) 2018 Alexander Borisov 3 * 4 * Author: Alexander Borisov <borisov@lexbor.com> 5 */ 6 7 #ifndef LEXBOR_H 8 #define LEXBOR_H 9 10 #ifdef __cplusplus 11 extern "C" { 12 #endif 13 14 #include "lexbor/core/def.h" 15 16 typedef void *(*lexbor_memory_malloc_f)(size_t size); 17 typedef void *(*lexbor_memory_realloc_f)(void *dst, size_t size); 18 typedef void *(*lexbor_memory_calloc_f)(size_t num, size_t size); 19 typedef void (*lexbor_memory_free_f)(void *dst); 20 21 LXB_API void * 22 lexbor_malloc(size_t size); 23 24 LXB_API void * 25 lexbor_realloc(void *dst, size_t size); 26 27 LXB_API void * 28 lexbor_calloc(size_t num, size_t size); 29 30 LXB_API void * 31 lexbor_free(void *dst); 32 33 LXB_API lxb_status_t 34 lexbor_memory_setup(lexbor_memory_malloc_f new_malloc, lexbor_memory_realloc_f new_realloc, 35 lexbor_memory_calloc_f new_calloc, lexbor_memory_free_f new_free); 36 37 38 #ifdef __cplusplus 39 } /* extern "C" */ 40 #endif 41 42 #endif /* LEXBOR_H */ 43 44