Lines Matching defs:info

60 show_link_header_json(struct bpf_link_info *info, json_writer_t *wtr)
62 jsonw_uint_field(wtr, "id", info->id);
63 if (info->type < ARRAY_SIZE(link_type_name))
64 jsonw_string_field(wtr, "type", link_type_name[info->type]);
66 jsonw_uint_field(wtr, "type", info->type);
68 jsonw_uint_field(json_wtr, "prog_id", info->prog_id);
86 static void show_iter_json(struct bpf_link_info *info, json_writer_t *wtr)
88 const char *target_name = u64_to_ptr(info->iter.target_name);
93 jsonw_uint_field(wtr, "map_id", info->iter.map.map_id);
96 static int get_prog_info(int prog_id, struct bpf_prog_info *info)
98 __u32 len = sizeof(*info);
105 memset(info, 0, sizeof(*info));
106 err = bpf_obj_get_info_by_fd(prog_fd, info, &len);
108 p_err("can't get prog info: %s", strerror(errno));
113 static int show_link_close_json(int fd, struct bpf_link_info *info)
120 show_link_header_json(info, json_wtr);
122 switch (info->type) {
125 u64_to_ptr(info->raw_tracepoint.tp_name));
128 err = get_prog_info(info->prog_id, &prog_info);
139 show_link_attach_type_json(info->tracing.attach_type,
144 info->cgroup.cgroup_id);
145 show_link_attach_type_json(info->cgroup.attach_type, json_wtr);
148 show_iter_json(info, json_wtr);
152 info->netns.netns_ino);
153 show_link_attach_type_json(info->netns.attach_type, json_wtr);
164 hash_for_each_possible(link_table.table, obj, hash, info->id) {
165 if (obj->id == info->id)
171 emit_obj_refs_json(&refs_table, info->id, json_wtr);
178 static void show_link_header_plain(struct bpf_link_info *info)
180 printf("%u: ", info->id);
181 if (info->type < ARRAY_SIZE(link_type_name))
182 printf("%s ", link_type_name[info->type]);
184 printf("type %u ", info->type);
186 printf("prog %u ", info->prog_id);
197 static void show_iter_plain(struct bpf_link_info *info)
199 const char *target_name = u64_to_ptr(info->iter.target_name);
204 printf("map_id %u ", info->iter.map.map_id);
207 static int show_link_close_plain(int fd, struct bpf_link_info *info)
212 show_link_header_plain(info);
214 switch (info->type) {
217 (const char *)u64_to_ptr(info->raw_tracepoint.tp_name));
220 err = get_prog_info(info->prog_id, &prog_info);
230 show_link_attach_type_plain(info->tracing.attach_type);
233 printf("\n\tcgroup_id %zu ", (size_t)info->cgroup.cgroup_id);
234 show_link_attach_type_plain(info->cgroup.attach_type);
237 show_iter_plain(info);
240 printf("\n\tnetns_ino %u ", info->netns.netns_ino);
241 show_link_attach_type_plain(info->netns.attach_type);
250 hash_for_each_possible(link_table.table, obj, hash, info->id) {
251 if (obj->id == info->id)
255 emit_obj_refs_plain(&refs_table, info->id, "\n\tpids ");
264 struct bpf_link_info info;
265 __u32 len = sizeof(info);
269 memset(&info, 0, sizeof(info));
271 err = bpf_obj_get_info_by_fd(fd, &info, &len);
273 p_err("can't get link info: %s",
278 if (info.type == BPF_LINK_TYPE_RAW_TRACEPOINT &&
279 !info.raw_tracepoint.tp_name) {
280 info.raw_tracepoint.tp_name = (unsigned long)&buf;
281 info.raw_tracepoint.tp_name_len = sizeof(buf);
284 if (info.type == BPF_LINK_TYPE_ITER &&
285 !info.iter.target_name) {
286 info.iter.target_name = (unsigned long)&buf;
287 info.iter.target_name_len = sizeof(buf);
292 show_link_close_json(fd, &info);
294 show_link_close_plain(fd, &info);