xref: /openbsd-src/usr.bin/aucat/utils.h (revision b4d5e3c92baf7ae1b3dcb69a4c795856a3c74115)
1 /*	$OpenBSD: utils.h,v 1.4 2024/12/22 14:17:45 ratchov Exp $	*/
2 /*
3  * Copyright (c) 2003-2012 Alexandre Ratchov <alex@caoua.org>
4  *
5  * Permission to use, copy, modify, and distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 #ifndef UTILS_H
19 #define UTILS_H
20 
21 #include <stddef.h>
22 
23 #define logx(n, ...)						\
24 	do {							\
25 		if (log_level >= (n))				\
26 			log_do(__VA_ARGS__);			\
27 	} while (0)
28 
29 void panic(void);
30 void log_flush(void);
31 void log_do(const char *, ...) __attribute__((__format__ (printf, 1, 2)));
32 
33 void *xmalloc(size_t);
34 char *xstrdup(char *);
35 void xfree(void *);
36 
37 /*
38  * Log levels:
39  *
40  * 0 - fatal errors: bugs, asserts, internal errors.
41  * 1 - warnings: bugs in clients, failed allocations, non-fatal errors.
42  * 2 - misc information (hardware parameters, incoming clients)
43  * 3 - structural changes (eg. new streams, new parameters ...)
44  * 4 - data blocks and messages
45  */
46 extern unsigned int log_level;
47 extern unsigned int log_sync;
48 
49 #endif
50