ctdb-logging: Update to use Samba style debug.h/debug.c
[Samba.git] / ctdb / lib / util / debug.h
blobac5e2c77cfa2df4079cbbcf4c486625e38822c2d
1 /*
2 Unix SMB/CIFS implementation.
3 ctdb debug functions
4 Copyright (C) Volker Lendecke 2007
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, see <http://www.gnu.org/licenses/>.
20 #ifndef UTIL_DEBUG_H
21 #define UTIL_DEBUG_H
23 bool dbgtext( const char *, ... ) PRINTF_ATTRIBUTE(1,2);
24 bool dbghdr( int level, const char *location, const char *func);
25 void dump_data(int level, const uint8_t *buf1, size_t len);
27 extern int DEBUGLEVEL;
29 #define DEBUGLVL(lvl) ((lvl) <= DEBUGLEVEL)
30 #define DEBUG( lvl, body ) \
31 (void)( ((lvl) <= DEBUGLEVEL) \
32 && (dbghdr( lvl, __location__, __FUNCTION__ )) \
33 && (dbgtext body) )
34 #define DEBUGADD(lvl, body) DEBUG(lvl, body)
36 typedef void (*debug_callback_fn)(void *private_ptr, int level, const char *msg);
37 void debug_set_callback(void *private_ptr, debug_callback_fn fn);
39 #endif /* UTIL_DEBUG_H */