Removed Vim modeline since I now use Emacs.
[libpwmd.git] / src / mem.h
blob17ffa6f52efc01fdf8dfc04a486692c54193a7a4
1 /*
2 Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012
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
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
27 #ifdef MEM_DEBUG
28 #define _xfree free
29 #define _xmalloc malloc
30 #define _xrealloc realloc
31 #define _xcalloc calloc
32 #define _xstrdup strdup
33 #else
34 struct memlist_s {
35 void *ptr;
36 size_t size;
37 struct memlist_s *next;
40 void _xmem_init(void);
41 void _xfree(void *ptr);
42 void *_xmalloc(size_t size);
43 void *_xrealloc(void *ptr, size_t size);
44 char *_xstrdup(const char *str);
45 void *_xcalloc(size_t nmemb, size_t size);
46 void _xpanic(void);
48 #ifdef DEBUG
49 void _xdump(void);
50 #endif
51 #endif
53 #ifdef __cplusplus
55 #endif
57 #endif