Lines Matching refs:d

24 static int btf_dumper_do_type(const struct btf_dumper *d, __u32 type_id,
31 static int dump_prog_id_as_func_ptr(const struct btf_dumper *d, in dump_prog_id_as_func_ptr() argument
47 func_sig_len = btf_dump_func(d->btf, prog_str, func_proto, NULL, 0, in dump_prog_id_as_func_ptr()
100 jsonw_string(d->jw, prog_str); in dump_prog_id_as_func_ptr()
107 static void btf_dumper_ptr(const struct btf_dumper *d, in btf_dumper_ptr() argument
115 if (!d->prog_id_as_func_ptr || value > UINT32_MAX) in btf_dumper_ptr()
118 ptr_type_id = btf__resolve_type(d->btf, t->type); in btf_dumper_ptr()
121 ptr_type = btf__type_by_id(d->btf, ptr_type_id); in btf_dumper_ptr()
125 if (!dump_prog_id_as_func_ptr(d, ptr_type, value)) in btf_dumper_ptr()
129 if (d->is_plain_text) in btf_dumper_ptr()
130 jsonw_printf(d->jw, "\"%p\"", (void *)value); in btf_dumper_ptr()
132 jsonw_printf(d->jw, "%lu", value); in btf_dumper_ptr()
135 static int btf_dumper_modifier(const struct btf_dumper *d, __u32 type_id, in btf_dumper_modifier() argument
140 actual_type_id = btf__resolve_type(d->btf, type_id); in btf_dumper_modifier()
144 return btf_dumper_do_type(d, actual_type_id, bit_offset, data); in btf_dumper_modifier()
147 static int btf_dumper_enum(const struct btf_dumper *d, in btf_dumper_enum() argument
174 jsonw_string(d->jw, in btf_dumper_enum()
175 btf__name_by_offset(d->btf, in btf_dumper_enum()
181 jsonw_int(d->jw, value); in btf_dumper_enum()
185 static int btf_dumper_enum64(const struct btf_dumper *d, in btf_dumper_enum64() argument
200 jsonw_string(d->jw, in btf_dumper_enum64()
201 btf__name_by_offset(d->btf, in btf_dumper_enum64()
207 jsonw_int(d->jw, value); in btf_dumper_enum64()
247 static int btf_dumper_array(const struct btf_dumper *d, __u32 type_id, in btf_dumper_array() argument
250 const struct btf_type *t = btf__type_by_id(d->btf, type_id); in btf_dumper_array()
256 if (is_str_array(d->btf, arr, data)) { in btf_dumper_array()
257 jsonw_string(d->jw, data); in btf_dumper_array()
261 elem_size = btf__resolve_size(d->btf, arr->type); in btf_dumper_array()
265 jsonw_start_array(d->jw); in btf_dumper_array()
267 ret = btf_dumper_do_type(d, arr->type, 0, in btf_dumper_array()
273 jsonw_end_array(d->jw); in btf_dumper_array()
465 static int btf_dumper_struct(const struct btf_dumper *d, __u32 type_id, in btf_dumper_struct() argument
475 t = btf__type_by_id(d->btf, type_id); in btf_dumper_struct()
481 jsonw_start_object(d->jw); in btf_dumper_struct()
493 jsonw_name(d->jw, btf__name_by_offset(d->btf, m[i].name_off)); in btf_dumper_struct()
498 data_off, d->jw, d->is_plain_text); in btf_dumper_struct()
500 ret = btf_dumper_do_type(d, m[i].type, in btf_dumper_struct()
508 jsonw_end_object(d->jw); in btf_dumper_struct()
513 static int btf_dumper_var(const struct btf_dumper *d, __u32 type_id, in btf_dumper_var() argument
516 const struct btf_type *t = btf__type_by_id(d->btf, type_id); in btf_dumper_var()
519 jsonw_start_object(d->jw); in btf_dumper_var()
520 jsonw_name(d->jw, btf__name_by_offset(d->btf, t->name_off)); in btf_dumper_var()
521 ret = btf_dumper_do_type(d, t->type, bit_offset, data); in btf_dumper_var()
522 jsonw_end_object(d->jw); in btf_dumper_var()
527 static int btf_dumper_datasec(const struct btf_dumper *d, __u32 type_id, in btf_dumper_datasec() argument
534 t = btf__type_by_id(d->btf, type_id); in btf_dumper_datasec()
541 jsonw_start_object(d->jw); in btf_dumper_datasec()
542 jsonw_name(d->jw, btf__name_by_offset(d->btf, t->name_off)); in btf_dumper_datasec()
543 jsonw_start_array(d->jw); in btf_dumper_datasec()
545 ret = btf_dumper_do_type(d, vsi[i].type, 0, data + vsi[i].offset); in btf_dumper_datasec()
549 jsonw_end_array(d->jw); in btf_dumper_datasec()
550 jsonw_end_object(d->jw); in btf_dumper_datasec()
555 static int btf_dumper_do_type(const struct btf_dumper *d, __u32 type_id, in btf_dumper_do_type() argument
558 const struct btf_type *t = btf__type_by_id(d->btf, type_id); in btf_dumper_do_type()
562 return btf_dumper_int(t, bit_offset, data, d->jw, in btf_dumper_do_type()
563 d->is_plain_text); in btf_dumper_do_type()
566 return btf_dumper_struct(d, type_id, data); in btf_dumper_do_type()
568 return btf_dumper_array(d, type_id, data); in btf_dumper_do_type()
570 return btf_dumper_enum(d, t, data); in btf_dumper_do_type()
572 return btf_dumper_enum64(d, t, data); in btf_dumper_do_type()
574 btf_dumper_ptr(d, t, data); in btf_dumper_do_type()
577 jsonw_printf(d->jw, "(unknown)"); in btf_dumper_do_type()
581 jsonw_printf(d->jw, "(fwd-kind-invalid)"); in btf_dumper_do_type()
587 return btf_dumper_modifier(d, type_id, bit_offset, data); in btf_dumper_do_type()
589 return btf_dumper_var(d, type_id, bit_offset, data); in btf_dumper_do_type()
591 return btf_dumper_datasec(d, type_id, data); in btf_dumper_do_type()
593 jsonw_printf(d->jw, "(unsupported-kind"); in btf_dumper_do_type()
598 int btf_dumper_type(const struct btf_dumper *d, __u32 type_id, in btf_dumper_type() argument
601 return btf_dumper_do_type(d, type_id, 0, data); in btf_dumper_type()