68 if (!
EM_ESCOPE(escope) || !err_msg || (ssize_t)errmsg_sz <= 0)
79 snprintf(eo_str,
sizeof(eo_str),
80 "EO:%" PRI_EO "-\"%s\" ", eo, eo_name);
84 size_t len = format_errmsg(error, escope, eo_str, args,
false,
114 odp_rwlock_read_lock(&core_map->
rwlock);
116 odp_rwlock_read_unlock(&core_map->
rwlock);
118 if (unlikely(path[0] ==
'\0'))
121 FILE *file = fopen(path,
"r");
124 EM_LOG(EM_LOG_ERR,
"fopen(%s) failed: %s (%d)\n",
125 path, strerror(errno), errno);
129 phys_core = read_proc_cpuid(file);
144 if (unlikely(mask_cnt <= 0 || mask_cnt >
EM_MAX_CORES || core_em < 0))
147 char paths[mask_cnt][32];
149 odp_rwlock_read_lock(&core_map->
rwlock);
153 while (core_em >= 0 && f_cnt < mask_cnt) {
155 sizeof(paths[f_cnt]));
157 if (unlikely(paths[f_cnt][0] ==
'\0')) {
158 odp_rwlock_read_unlock(&core_map->
rwlock);
165 odp_rwlock_read_unlock(&core_map->
rwlock);
167 for (
int i = 0; i < f_cnt; i++) {
168 FILE *file = fopen(paths[i],
"r");
172 EM_LOG(EM_LOG_ERR,
"fopen(%s) failed: %s (%d)\n",
173 paths[i], strerror(errno), errno);
176 phys_core = read_proc_cpuid(file);
189 if (unlikely(tsp >= EM_DEBUG_TSP_LAST || tsp < 0))
ENV_LOCAL em_locm_t em_locm
#define EM_DEBUG_TIMESTAMP_ENABLE
int em_core_mask_count(const em_core_mask_t *mask)
int em_core_mask_first(const em_core_mask_t *mask)
void em_core_mask_set(int core, em_core_mask_t *mask)
int em_core_mask_next(const em_core_mask_t *mask, int idx)
void em_core_mask_zero(em_core_mask_t *mask)
uint64_t em_debug_timestamp(em_debug_tsp_t tsp)
void em_core_mask_physical(em_core_mask_t *phys, const em_core_mask_t *logic)
void em_version_print(void)
Print EM related version information.
int em_core_id_physical(int core)
void em_info_print(void)
Print miscellaneous EM information.
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)
size_t em_eo_name(em_eo_t eo, char *name, size_t maxlen)
#define EM_ESCOPE(escope)
char proc_tid_stat_paths[EM_MAX_CORES][32]
uint64_t debug_ts[EM_DEBUG_TSP_LAST]