New memory allocators.
[libpwmd.git] / src / mem.h
bloba3b82393261ca77570ff5d2a95e8444934497774
1 /*
2 Copyright (C) 2016
3 Ben Kibbey <bjk@luxsci.net>
5 This file is part of libpwmd.
7 Libpwmd is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 2 of the License, or
10 (at your option) any later version.
12 Libpwmd is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
17 You should have received a copy of the GNU General Public License
18 along with libpwmd. If not, see <http://www.gnu.org/licenses/>.
20 #ifndef MEM_H
21 #define MEM_H
22 #ifdef HAVE_CONFIG_H
23 #include <config.h>
24 #endif
26 #include <stdlib.h>
28 #ifdef __cplusplus
29 extern "C"
31 #endif
33 #ifdef MEM_DEBUG
34 #define _xfree free
35 #define _xmalloc malloc
36 #define _xrealloc realloc
37 #define _xcalloc calloc
38 void *xrealloc_gpgrt (void *, size_t);
39 #else
40 void _xfree (void *ptr)
41 __attribute__ ((visibility ("hidden")));
42 void *_xmalloc (size_t size)
43 __attribute__ ((visibility ("hidden")));
44 void *_xrealloc (void *ptr, size_t size)
45 __attribute__ ((visibility ("hidden")));
46 void *_xcalloc (size_t nmemb, size_t size)
47 __attribute__ ((visibility ("hidden")));
48 void *_xrealloc_gpgrt (void *, size_t)
49 __attribute__ ((visibility ("hidden")));
50 #endif
52 #ifdef __cplusplus
54 #endif
56 #endif