Lines Matching refs:id
179 static int btf_dump_order_type(struct btf_dump *d, __u32 id, bool through_ptr);
180 static void btf_dump_emit_type(struct btf_dump *d, __u32 id, __u32 cont_id);
198 int btf_dump__dump_type(struct btf_dump *d, __u32 id) in btf_dump__dump_type() argument
202 if (id > btf__get_nr_types(d->btf)) in btf_dump__dump_type()
227 err = btf_dump_order_type(d, id, false); in btf_dump__dump_type()
310 static int btf_dump_add_emit_queue_id(struct btf_dump *d, __u32 id) in btf_dump_add_emit_queue_id() argument
325 d->emit_queue[d->emit_queue_cnt++] = id; in btf_dump_add_emit_queue_id()
403 static int btf_dump_order_type(struct btf_dump *d, __u32 id, bool through_ptr) in btf_dump_order_type() argument
416 struct btf_dump_type_aux_state *tstate = &d->type_states[id]; in btf_dump_order_type()
425 t = btf__type_by_id(d->btf, id); in btf_dump_order_type()
431 pr_warning("unsatisfiable type cycle, id:[%u]\n", id); in btf_dump_order_type()
469 err = btf_dump_add_emit_queue_id(d, id); in btf_dump_order_type()
485 err = btf_dump_add_emit_queue_id(d, id); in btf_dump_order_type()
504 err = btf_dump_add_emit_queue_id(d, id); in btf_dump_order_type()
508 d->type_states[id].order_state = ORDERED; in btf_dump_order_type()
538 d->type_states[id].order_state = ORDERED; in btf_dump_order_type()
546 static void btf_dump_emit_struct_fwd(struct btf_dump *d, __u32 id,
548 static void btf_dump_emit_struct_def(struct btf_dump *d, __u32 id,
551 static void btf_dump_emit_enum_fwd(struct btf_dump *d, __u32 id,
553 static void btf_dump_emit_enum_def(struct btf_dump *d, __u32 id,
556 static void btf_dump_emit_fwd_def(struct btf_dump *d, __u32 id,
559 static void btf_dump_emit_typedef_def(struct btf_dump *d, __u32 id,
568 static void btf_dump_emit_type_decl(struct btf_dump *d, __u32 id,
574 static const char *btf_dump_type_name(struct btf_dump *d, __u32 id);
575 static const char *btf_dump_ident_name(struct btf_dump *d, __u32 id);
579 static bool btf_dump_is_blacklisted(struct btf_dump *d, __u32 id) in btf_dump_is_blacklisted() argument
581 const struct btf_type *t = btf__type_by_id(d->btf, id); in btf_dump_is_blacklisted()
612 static void btf_dump_emit_type(struct btf_dump *d, __u32 id, __u32 cont_id) in btf_dump_emit_type() argument
614 struct btf_dump_type_aux_state *tstate = &d->type_states[id]; in btf_dump_emit_type()
622 t = btf__type_by_id(d->btf, id); in btf_dump_emit_type()
636 if (id == cont_id) in btf_dump_emit_type()
640 id); in btf_dump_emit_type()
643 btf_dump_emit_struct_fwd(d, id, t); in btf_dump_emit_type()
653 if (!btf_dump_is_blacklisted(d, id)) { in btf_dump_emit_type()
654 btf_dump_emit_typedef_def(d, id, t, 0); in btf_dump_emit_type()
672 btf_dump_emit_enum_def(d, id, t, 0); in btf_dump_emit_type()
687 btf_dump_emit_fwd_def(d, id, t); in btf_dump_emit_type()
693 btf_dump_emit_type(d, t->type, id); in btf_dump_emit_type()
701 if (!tstate->fwd_emitted && !btf_dump_is_blacklisted(d, id)) { in btf_dump_emit_type()
702 btf_dump_emit_typedef_def(d, id, t, 0); in btf_dump_emit_type()
722 new_cont_id = t->name_off == 0 ? cont_id : id; in btf_dump_emit_type()
725 } else if (!tstate->fwd_emitted && id != cont_id) { in btf_dump_emit_type()
726 btf_dump_emit_struct_fwd(d, id, t); in btf_dump_emit_type()
732 btf_dump_emit_struct_def(d, id, t, 0); in btf_dump_emit_type()
755 static int btf_align_of(const struct btf *btf, __u32 id) in btf_align_of() argument
757 const struct btf_type *t = btf__type_by_id(btf, id); in btf_align_of()
790 static bool btf_is_struct_packed(const struct btf *btf, __u32 id, in btf_is_struct_packed() argument
797 align = btf_align_of(btf, id); in btf_is_struct_packed()
860 static void btf_dump_emit_struct_fwd(struct btf_dump *d, __u32 id, in btf_dump_emit_struct_fwd() argument
865 btf_dump_type_name(d, id)); in btf_dump_emit_struct_fwd()
869 __u32 id, in btf_dump_emit_struct_def() argument
878 packed = is_struct ? btf_is_struct_packed(d->btf, id, t) : 0; in btf_dump_emit_struct_def()
883 btf_dump_type_name(d, id)); in btf_dump_emit_struct_def()
910 align = packed ? 1 : btf_align_of(d->btf, id); in btf_dump_emit_struct_def()
922 static void btf_dump_emit_enum_fwd(struct btf_dump *d, __u32 id, in btf_dump_emit_enum_fwd() argument
925 btf_dump_printf(d, "enum %s", btf_dump_type_name(d, id)); in btf_dump_emit_enum_fwd()
928 static void btf_dump_emit_enum_def(struct btf_dump *d, __u32 id, in btf_dump_emit_enum_def() argument
940 btf_dump_type_name(d, id)); in btf_dump_emit_enum_def()
962 static void btf_dump_emit_fwd_def(struct btf_dump *d, __u32 id, in btf_dump_emit_fwd_def() argument
965 const char *name = btf_dump_type_name(d, id); in btf_dump_emit_fwd_def()
973 static void btf_dump_emit_typedef_def(struct btf_dump *d, __u32 id, in btf_dump_emit_typedef_def() argument
976 const char *name = btf_dump_ident_name(d, id); in btf_dump_emit_typedef_def()
982 static int btf_dump_push_decl_stack_id(struct btf_dump *d, __u32 id) in btf_dump_push_decl_stack_id() argument
997 d->decl_stack[d->decl_stack_cnt++] = id; in btf_dump_push_decl_stack_id()
1043 static void btf_dump_emit_type_decl(struct btf_dump *d, __u32 id, in btf_dump_emit_type_decl() argument
1052 err = btf_dump_push_decl_stack_id(d, id); in btf_dump_emit_type_decl()
1065 if (id == 0) in btf_dump_emit_type_decl()
1068 t = btf__type_by_id(d->btf, id); in btf_dump_emit_type_decl()
1075 id = t->type; in btf_dump_emit_type_decl()
1078 id = btf_array(t)->type; in btf_dump_emit_type_decl()
1089 btf_kind(t), id); in btf_dump_emit_type_decl()
1121 __u32 id; in btf_dump_emit_mods() local
1124 id = decl_stack->ids[decl_stack->cnt - 1]; in btf_dump_emit_mods()
1125 t = btf__type_by_id(d->btf, id); in btf_dump_emit_mods()
1147 __u32 id; in btf_dump_drop_mods() local
1150 id = decl_stack->ids[decl_stack->cnt - 1]; in btf_dump_drop_mods()
1151 t = btf__type_by_id(d->btf, id); in btf_dump_drop_mods()
1183 __u32 id; in btf_dump_emit_type_chain() local
1186 id = decls->ids[--decls->cnt]; in btf_dump_emit_type_chain()
1187 if (id == 0) { in btf_dump_emit_type_chain()
1195 t = btf__type_by_id(d->btf, id); in btf_dump_emit_type_chain()
1209 btf_dump_emit_struct_def(d, id, t, lvl); in btf_dump_emit_type_chain()
1211 btf_dump_emit_struct_fwd(d, id, t); in btf_dump_emit_type_chain()
1217 btf_dump_emit_enum_def(d, id, t, lvl); in btf_dump_emit_type_chain()
1219 btf_dump_emit_enum_fwd(d, id, t); in btf_dump_emit_type_chain()
1223 btf_dump_emit_fwd_def(d, id, t); in btf_dump_emit_type_chain()
1227 btf_dump_printf(d, "%s", btf_dump_ident_name(d, id)); in btf_dump_emit_type_chain()
1331 kind, id); in btf_dump_emit_type_chain()
1354 static const char *btf_dump_resolve_name(struct btf_dump *d, __u32 id, in btf_dump_resolve_name() argument
1357 struct btf_dump_type_aux_state *s = &d->type_states[id]; in btf_dump_resolve_name()
1358 const struct btf_type *t = btf__type_by_id(d->btf, id); in btf_dump_resolve_name()
1360 const char **cached_name = &d->cached_names[id]; in btf_dump_resolve_name()
1387 static const char *btf_dump_type_name(struct btf_dump *d, __u32 id) in btf_dump_type_name() argument
1389 return btf_dump_resolve_name(d, id, d->type_names); in btf_dump_type_name()
1392 static const char *btf_dump_ident_name(struct btf_dump *d, __u32 id) in btf_dump_ident_name() argument
1394 return btf_dump_resolve_name(d, id, d->ident_names); in btf_dump_ident_name()