btf_kind_str
static const char * const btf_kind_str[NR_BTF_KINDS] = {
return btf_kind_str[BTF_INFO_KIND(t->info)];
btf_kind_str[cc->kind], cc->name, cc->cands[i].id);
jsonw_string_field(w, "kind", btf_kind_str[btf_kind_safe(kind)]);
printf("[%u] %s '%s'", id, btf_kind_str[btf_kind_safe(kind)],
static const char * const btf_kind_str[NR_BTF_KINDS] = {
btf_kind_str[btf_kind_safe(btf_kind(vt))],
p_err("unsupported kind: %s (%u)", btf_kind_str(btf_type), type_id);
btf_kind_str(btf_type), btf_type->type);
p_err("unsupported kind: %s (%u)", btf_kind_str(btf_type), type_id);
map_name, name, btf_kind_str(t));
map_name, name, btf_kind_str(arr_t));
map_name, name, btf_kind_str(t));
map_name, btf_kind_str(t));
map_name, btf_kind_str(t));
map_name, desc, btf_kind_str(t));
map_name, btf_kind_str(t));
map_name, btf_kind_str(t));
map_name, btf_kind_str(var));
map_name, btf_kind_str(var));
btf_kind_str(vt), ext_name);
local_cand->id, btf_kind_str(local_t),
local_name, i, btf_kind_str(t), targ_name,
prog_name, relo_idx, local_id, btf_kind_str(local_type),
btf_kind_str(local_type), local_name, targ_type_id,
btf_kind_str(targ_type), targ_name);
ext->name, id, btf_kind_str(targ_var), targ_var_name);
const char *btf_kind_str(const struct btf_type *t);
sym_name, btf_kflag(t1) ? "union" : "struct", btf_kind_str(t2));
sym_name, btf_kflag(t2) ? "union" : "struct", btf_kind_str(t1));
sym_name, btf_kind_str(t1), btf_kind_str(t2));
sym_name, btf_kind_str(t1), n1, n2);
sym_name, btf_kind_str(t1), n1, t1->size, t2->size);
sym_name, btf_kind_str(t1), btf_vlen(t1), btf_vlen(t2));
sym_name, btf_kind_str(t1), btf_vlen(t1), btf_vlen(t2));
sym_name, btf_kind_str(t1));
btf_kind_str(src_t), sym_name);
type_id, btf_kind_str(t), str_is_empty(s) ? "<anon>" : s);
prog_name, relo_idx, local_id, btf_kind_str(local_type),
btf_kind_str(local_t), local_id, targ_id);
btf_kind_str(local_type), local_id, targ_id);
prog_name, relo->type_id, spec_str, i, id, btf_kind_str(t));
fprintf(out, "[%u] %s '%s'", id, btf_kind_str(kind), btf_str(btf, t->name_off));