58#define INTERNAL_ERROR(error, escope, fmt, ...) \
59 internal_error((error), (escope), __FILE__, __func__, \
60 __LINE__, fmt, ## __VA_ARGS__)
65#define RETURN_ERROR_IF(cond, error, escope, fmt, ...) \
67 if (unlikely((cond))) { \
68 return INTERNAL_ERROR((error), (escope), \
69 fmt, ## __VA_ARGS__); \
73#define EM_LOG(level, fmt, ...) \
75 em_log_func_t log_fn = em_locm.log_fn; \
77 log_fn((level), fmt, ## __VA_ARGS__); \
79 em_shm->log_fn((level), fmt, ## __VA_ARGS__); \
82#define EM_VLOG(level, fmt, args) \
84 em_vlog_func_t vlog_fn = em_locm.vlog_fn; \
86 vlog_fn((level), fmt, (args)); \
88 em_shm->vlog_fn((level), fmt, (args)); \
91#define EM_PRINT(fmt, ...) EM_LOG(EM_LOG_PRINT, fmt, ## __VA_ARGS__)
96#define EM_DBG(em_dbg_flag, fmt, ...) \
99 EM_LOG(EM_LOG_DBG, fmt, ##__VA_ARGS__); \
105#define DBG_PRINT(fmt, ...) \
106 EM_DBG(EM_DEBUG_PRINT_BASE, fmt, ## __VA_ARGS__)
110const char *escope_internal_str(
em_escope_t escope);
111const char *escope_addon_api_str(
em_escope_t escope);
114 const char *eo_str, va_list args,
bool early_mode,
115 char err_msg[],
size_t errmsg_sz);
132uint64_t load_global_err_cnt(
void);
134ODP_PRINTF_FORMAT(2, 3)
136int vdefault_log(
em_log_level_t level, const
char *fmt, va_list args);
em_status_t select_error_handler(em_status_t error, em_escope_t escope, va_list args_list)
em_status_t default_error_handler(em_eo_t eo, em_status_t error, em_escope_t escope, va_list args)
em_status_t internal_error(em_status_t error, em_escope_t escope,...)
int(* em_log_func_t)(em_log_level_t level, const char *fmt,...) __attribute__((format(printf
int(*) typedef int(* em_vlog_func_t)(em_log_level_t level, const char *fmt, va_list args)