xref: /php-src/ext/dom/lexbor/lexbor/core/lexbor.h (revision bffab33a)
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