25 lines
890 B
C
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
|