mips/include/merror.h

38 lines
993 B
C

/* Copyright (c) 2024 Freya Murphy */
#ifndef __MERROR_H__
#define __MERROR_H__
/* Error codes
*/
#define M_SUCCESS 0
#define M_EOF 1
#define M_ERROR -1
#define __DEBUG 1
#define __WARNING 2
#define __ERROR 3
__attribute__((format(printf, 4, 5)))
void __log_impl_pos(int line, int column, int type, const char *format, ...);
void __log_impl(int type, const char *format, ...);
#define DEBUG(format, ...) \
__log_impl(__DEBUG, format, ##__VA_ARGS__)
#define WARNING(format, ...) \
__log_impl(__WARNING, format, ##__VA_ARGS__)
#define ERROR(format, ...) \
__log_impl(__ERROR, format, ##__VA_ARGS__)
#define DEBUG_POS(pos, format, ...) \
__log_impl_pos(pos.y, pos.x, __DEBUG, format, ##__VA_ARGS__)
#define WARNING_POS(pos, format, ...) \
__log_impl_pos(pos.y, pos.x, __WARNING, format, ##__VA_ARGS__)
#define ERROR_POS(pos, format, ...) \
__log_impl_pos(pos.y, pos.x, __ERROR, format, ##__VA_ARGS__)
#endif /* __MERROR_H__ */