00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef ISC_ERROR_H
00021 #define ISC_ERROR_H 1
00022
00023
00024
00025 #include <stdarg.h>
00026
00027 #include <isc/formatcheck.h>
00028 #include <isc/lang.h>
00029 #include <isc/platform.h>
00030
00031 ISC_LANG_BEGINDECLS
00032
00033 typedef void (*isc_errorcallback_t)(const char *, int, const char *, va_list);
00034
00035
00036 void
00037 isc_error_setunexpected(isc_errorcallback_t);
00038
00039
00040 void
00041 isc_error_setfatal(isc_errorcallback_t);
00042
00043
00044 void
00045 isc_error_unexpected(const char *, int, const char *, ...)
00046 ISC_FORMAT_PRINTF(3, 4);
00047
00048
00049 ISC_PLATFORM_NORETURN_PRE void
00050 isc_error_fatal(const char *, int, const char *, ...)
00051 ISC_FORMAT_PRINTF(3, 4) ISC_PLATFORM_NORETURN_POST;
00052
00053
00054 void
00055 isc_error_runtimecheck(const char *, int, const char *);
00056
00057 #define ISC_ERROR_RUNTIMECHECK(cond) \
00058 ((void) ((cond) || \
00059 ((isc_error_runtimecheck)(__FILE__, __LINE__, #cond), 0)))
00060
00061 ISC_LANG_ENDDECLS
00062
00063 #endif