Create an _mtime attribute for new root elements too.
[pwmd.git] / src / mem.h
blob233fdcb1cf0c9c22dce6685178b8e00483ecf7f7
1 /* vim:tw=78:ts=8:sw=4:set ft=c: */
2 /*
3 Copyright (C) 2007-2010 Ben Kibbey <bjk@luxsci.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02110-1301 USA
20 #ifndef MEM_H
21 #define MEM_H
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
27 #ifdef HAVE_CONFIG_H
28 #include <config.h>
29 #endif
31 #define USE_PTH_THREADS 1
32 #ifdef MEM_DEBUG
33 #define xfree free
34 #define xmalloc malloc
35 #define xrealloc realloc
36 #define xcalloc calloc
37 #define xstrdup strdup
38 #else
39 struct memlist_s {
40 void *ptr;
41 size_t size;
42 struct memlist_s *next;
45 void xmem_init(void);
46 void xfree(void *ptr) __attribute__ ((visibility ("hidden")));
47 void *xmalloc(size_t size) __attribute__ ((visibility ("hidden")));
48 void *xrealloc(void *ptr, size_t size) __attribute__ ((visibility ("hidden")));
49 char *xstrdup(const char *str) __attribute__ ((visibility ("hidden")));
50 void *xcalloc(size_t nmemb, size_t size) __attribute__ ((visibility ("hidden")));
51 void xpanic(void) __attribute__ ((visibility ("hidden")));
52 #ifdef DEBUG
53 void xdump(void) __attribute__ ((visibility ("hidden")));
54 #endif
55 #endif
57 #ifdef __cplusplus
59 #endif
61 #endif