#ifndef _MSG_H_INCLUDED_
#define _MSG_H_INCLUDED_
#include <stdarg.h>
#include <time.h>
typedef void (*MSG_CLEANUP_FN) (void);
extern int msg_verbose;
extern void PRINTFLIKE(1, 2) msg_info(const char *,...);
extern void PRINTFLIKE(1, 2) msg_warn(const char *,...);
extern void PRINTFLIKE(1, 2) msg_error(const char *,...);
extern NORETURN PRINTFLIKE(1, 2) msg_fatal(const char *,...);
extern NORETURN PRINTFLIKE(2, 3) msg_fatal_status(int, const char *,...);
extern NORETURN PRINTFLIKE(1, 2) msg_panic(const char *,...);
extern void vmsg_info(const char *, va_list);
extern void vmsg_warn(const char *, va_list);
extern void vmsg_error(const char *, va_list);
extern NORETURN vmsg_fatal(const char *, va_list);
extern NORETURN vmsg_fatal_status(int, const char *, va_list);
extern NORETURN vmsg_panic(const char *, va_list);
extern int msg_error_limit(int);
extern void msg_error_clear(void);
extern MSG_CLEANUP_FN msg_cleanup(MSG_CLEANUP_FN);
extern void PRINTFLIKE(4, 5) msg_rate_delay(time_t *, int,
void (*log_fn) (const char *,...),
const char *,...);
#endif