gargoyle/include/gargoyle/delusion.h

25 lines
890 B
C

#ifndef __GARGOYLE_DELUSION_H_
#define __GARGOYLE_DELUSION_H_
#include <gargoyle/codex.h>
#define GARGOYLE_MAX_ERR_SZ 256
#define GARGOYLE_MAX_FUNC_SZ 33
struct gargoyle_err {
gargoyle_err_type code;
int errno_code;
char func[GARGOYLE_MAX_FUNC_SZ];
char errno_func[GARGOYLE_MAX_FUNC_SZ];
char msg[GARGOYLE_MAX_ERR_SZ];
};
void gargoyle_emit_err(struct gargoyle_err *err);
void gargoyle_fill_err(struct gargoyle_err *err, gargoyle_err_type code, int errno_code, const char *func, const char *errno_func, const char *fmt, ...);
#define GARGOYLE_MK_ERR(err, code, fmt, ...) gargoyle_fill_err(err, code, 0, __func__, NULL, fmt, __VA_ARGS__)
#define GARGOYLE_NEW_ERR(err) gargoyle_fill_err(err, 0, 0, __func__, NULL, "")
#define GARGOYLE_SYS_ERR(err, code, errno_code, errno_func, fmt, ...) gargoyle_fill_err(err, code, errno_code, __func__, errno_func, fmt, __VA_ARGS__)
#endif