Add PWMD_OPTION_SSH_PASSPHRASE.
[libpwmd.git] / src / mem.h
blobcb0f9c43fda729bf632091034c2635d986438067
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 /* To avoid that a compiler optimizes certain memset calls away, these
29 macros may be used instead. Thanks g10Code. */
30 #define wipememory(_ptr,_set,_len) do { \
31 volatile char *_vptr=(volatile char *)(_ptr); \
32 size_t _vlen=(_len); \
33 while(_vlen) { *_vptr=(_set); _vptr++; _vlen--; } \
34 } while(0)
36 #ifdef __cplusplus
37 extern "C"
39 #endif
41 #ifdef MEM_DEBUG
42 #define _xfree free
43 #define _xmalloc malloc
44 #define _xrealloc realloc
45 #define _xcalloc calloc
46 void *xrealloc_gpgrt (void *, size_t);
47 #else
48 void _xfree (void *ptr)
49 __attribute__ ((visibility ("hidden")));
50 void *_xmalloc (size_t size)
51 __attribute__ ((visibility ("hidden")));
52 void *_xrealloc (void *ptr, size_t size)
53 __attribute__ ((visibility ("hidden")));
54 void *_xcalloc (size_t nmemb, size_t size)
55 __attribute__ ((visibility ("hidden")));
56 void *_xrealloc_gpgrt (void *, size_t)
57 __attribute__ ((visibility ("hidden")));
58 #endif
60 #ifdef __cplusplus
62 #endif
64 #endif