xref: /minix3/external/bsd/libevent/dist/log-internal.h (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1*0a6a1f1dSLionel Sambuc /*	$NetBSD: log-internal.h,v 1.4 2015/01/29 07:26:02 spz Exp $	*/
2e985b929SDavid van Moolenbroek /*
3e985b929SDavid van Moolenbroek  * Copyright (c) 2000-2007 Niels Provos <provos@citi.umich.edu>
4e985b929SDavid van Moolenbroek  * Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
5e985b929SDavid van Moolenbroek  *
6e985b929SDavid van Moolenbroek  * Redistribution and use in source and binary forms, with or without
7e985b929SDavid van Moolenbroek  * modification, are permitted provided that the following conditions
8e985b929SDavid van Moolenbroek  * are met:
9e985b929SDavid van Moolenbroek  * 1. Redistributions of source code must retain the above copyright
10e985b929SDavid van Moolenbroek  *    notice, this list of conditions and the following disclaimer.
11e985b929SDavid van Moolenbroek  * 2. Redistributions in binary form must reproduce the above copyright
12e985b929SDavid van Moolenbroek  *    notice, this list of conditions and the following disclaimer in the
13e985b929SDavid van Moolenbroek  *    documentation and/or other materials provided with the distribution.
14e985b929SDavid van Moolenbroek  * 3. The name of the author may not be used to endorse or promote products
15e985b929SDavid van Moolenbroek  *    derived from this software without specific prior written permission.
16e985b929SDavid van Moolenbroek  *
17e985b929SDavid van Moolenbroek  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18e985b929SDavid van Moolenbroek  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19e985b929SDavid van Moolenbroek  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20e985b929SDavid van Moolenbroek  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21e985b929SDavid van Moolenbroek  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22e985b929SDavid van Moolenbroek  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23e985b929SDavid van Moolenbroek  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24e985b929SDavid van Moolenbroek  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25e985b929SDavid van Moolenbroek  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26e985b929SDavid van Moolenbroek  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27e985b929SDavid van Moolenbroek  */
28e985b929SDavid van Moolenbroek #ifndef _LOG_H_
29e985b929SDavid van Moolenbroek #define _LOG_H_
30e985b929SDavid van Moolenbroek 
31e985b929SDavid van Moolenbroek #include "event2/util.h"
32e985b929SDavid van Moolenbroek 
33e985b929SDavid van Moolenbroek #ifdef __GNUC__
34e985b929SDavid van Moolenbroek #define EV_CHECK_FMT(a,b) __attribute__((format(printf, a, b)))
35e985b929SDavid van Moolenbroek #define EV_NORETURN __attribute__((noreturn))
36e985b929SDavid van Moolenbroek #else
37e985b929SDavid van Moolenbroek #define EV_CHECK_FMT(a,b)
38e985b929SDavid van Moolenbroek #define EV_NORETURN
39e985b929SDavid van Moolenbroek #endif
40e985b929SDavid van Moolenbroek 
41e985b929SDavid van Moolenbroek #define _EVENT_ERR_ABORT ((int)0xdeaddead)
42e985b929SDavid van Moolenbroek 
43e985b929SDavid van Moolenbroek void event_err(int eval, const char *fmt, ...) EV_CHECK_FMT(2,3) EV_NORETURN;
44e985b929SDavid van Moolenbroek void event_warn(const char *fmt, ...) EV_CHECK_FMT(1,2);
45e985b929SDavid van Moolenbroek void event_sock_err(int eval, evutil_socket_t sock, const char *fmt, ...) EV_CHECK_FMT(3,4) EV_NORETURN;
46e985b929SDavid van Moolenbroek void event_sock_warn(evutil_socket_t sock, const char *fmt, ...) EV_CHECK_FMT(2,3);
47e985b929SDavid van Moolenbroek void event_errx(int eval, const char *fmt, ...) EV_CHECK_FMT(2,3) EV_NORETURN;
48e985b929SDavid van Moolenbroek void event_warnx(const char *fmt, ...) EV_CHECK_FMT(1,2);
49e985b929SDavid van Moolenbroek void event_msgx(const char *fmt, ...) EV_CHECK_FMT(1,2);
50e985b929SDavid van Moolenbroek void _event_debugx(const char *fmt, ...) EV_CHECK_FMT(1,2);
51e985b929SDavid van Moolenbroek 
52e985b929SDavid van Moolenbroek #ifdef USE_DEBUG
53e985b929SDavid van Moolenbroek #define event_debug(x) _event_debugx x
54e985b929SDavid van Moolenbroek #else
55e985b929SDavid van Moolenbroek #define event_debug(x) do {;} while (/*CONSTCOND*/0)
56e985b929SDavid van Moolenbroek #endif
57e985b929SDavid van Moolenbroek 
58e985b929SDavid van Moolenbroek #undef EV_CHECK_FMT
59e985b929SDavid van Moolenbroek 
60e985b929SDavid van Moolenbroek #endif
61