44 if (!
EM_ESCOPE(escope) || (ssize_t)size <= 0)
51 char *file = va_arg(args,
char*);
52 const char *func = va_arg(args,
const char*);
53 const int line = va_arg(args,
const int);
54 const char *format = va_arg(args,
const char*);
55 const char *base = basename(file);
58 const uint64_t glob_err_cnt = load_global_err_cnt();
69 snprintf(eo_str,
sizeof(eo_str),
70 "EO:%" PRI_EO "-\"%s\" ", eo, eo_name);
71 eo_str[
sizeof(eo_str) - 1] =
'\0';
75 snprintf(str, size,
"\n"
76 "EM ERROR:0x%08X ESCOPE:0x%08X %s\n"
77 "core:%02i ecount:%" PRIu64
"(%" PRIu64
") %s:%i %s()\n",
79 glob_err_cnt, loc_err_cnt, base, line, func);
81 if (ret > 0 && ret < (int64_t)size) {
82 #pragma GCC diagnostic push
83 #pragma GCC diagnostic ignored "-Wformat-nonliteral"
84 ret += vsnprintf(str + ret, size - ret, format, args);
85 #pragma GCC diagnostic pop
86 if (ret > 0 && ret < (int64_t)size)
87 ret += snprintf(str + ret, size - ret,
"\n");
92 return MIN((int64_t)size, ret + 1);
118 for (
int i = 0; i < EM_MAX_CORES; i++) {
122 phys_core = logic_to_phys_core_id(i);
134 if (unlikely(tsp >= EM_DEBUG_TSP_LAST || tsp < 0))
ENV_LOCAL em_locm_t em_locm
#define EM_DEBUG_TIMESTAMP_ENABLE
uint64_t em_debug_timestamp(em_debug_tsp_t tsp)
void em_version_print(void)
Print EM related version information.
void em_core_mask_get_physical(em_core_mask_t *phys, const em_core_mask_t *logic)
void em_info_print(void)
Print miscellaneous EM information.
int em_core_id_get_physical(int core)
int em_error_format_string(char *str, size_t size, em_eo_t eo, em_status_t error, em_escope_t escope, va_list args)
int em_core_mask_equal(const em_core_mask_t *mask1, const em_core_mask_t *mask2)
void em_core_mask_copy(em_core_mask_t *dst, const em_core_mask_t *src)
void em_core_mask_set(int core, em_core_mask_t *mask)
int em_core_mask_isset(int core, const em_core_mask_t *mask)
void em_core_mask_zero(em_core_mask_t *mask)
#define EM_ESCOPE(escope)
size_t em_eo_get_name(em_eo_t eo, char *name, size_t maxlen)
uint64_t debug_ts[EM_DEBUG_TSP_LAST]