00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #pragma once
00025 #ifndef _OSCAP_ERROR_H
00026 #define _OSCAP_ERROR_H
00027
00028 #include <errno.h>
00029 #include <libxml/xmlerror.h>
00030 #include "public/error.h"
00031
00032 #define oscap_assert_errno(cond, etype, desc) \
00033 { if (!(cond)) { if ((errno)) oscap_seterr(OSCAP_EFAMILY_GLIBC, errno, desc); \
00034 else oscap_seterr(OSCAP_EFAMILY_OSCAP, (etype), desc); } }
00035
00036 #define oscap_seterr_errno(etype, desc) \
00037 { if ((errno)) oscap_seterr(OSCAP_EFAMILY_GLIBC, errno, desc); \
00038 else oscap_seterr(OSCAP_EFAMILY_OSCAP, (etype), desc); }
00039
00040 #define oscap_setxmlerr(error) __oscap_setxmlerr (__FILE__, __LINE__, __PRETTY_FUNCTION__, error)
00041
00042 void __oscap_setxmlerr(const char *file, uint32_t line, const char *func, xmlErrorPtr error);
00043
00044 struct oscap_err_t {
00045 oscap_errfamily_t family;
00046 oscap_errcode_t code;
00047 char *desc;
00048 const char *func;
00049 const char *file;
00050 uint32_t line;
00051 };
00052
00053 #endif