Lines Matching refs:info

130 	struct bpf_prog_info info = {};
131 __u32 len = sizeof(info);
136 info.nr_map_ids = num_maps;
137 info.map_ids = ptr_to_u64(map_ids);
139 err = bpf_obj_get_info_by_fd(fd, &info, &len);
140 if (err || !info.nr_map_ids)
146 for (i = 0; i < info.nr_map_ids; i++)
151 for (i = 0; i < info.nr_map_ids; i++)
153 i == info.nr_map_ids - 1 ? "" : ",");
351 static void print_prog_header_json(struct bpf_prog_info *info)
353 jsonw_uint_field(json_wtr, "id", info->id);
354 if (info->type < ARRAY_SIZE(prog_type_name))
356 prog_type_name[info->type]);
358 jsonw_uint_field(json_wtr, "type", info->type);
360 if (*info->name)
361 jsonw_string_field(json_wtr, "name", info->name);
365 info->tag[0], info->tag[1], info->tag[2], info->tag[3],
366 info->tag[4], info->tag[5], info->tag[6], info->tag[7]);
368 jsonw_bool_field(json_wtr, "gpl_compatible", info->gpl_compatible);
369 if (info->run_time_ns) {
370 jsonw_uint_field(json_wtr, "run_time_ns", info->run_time_ns);
371 jsonw_uint_field(json_wtr, "run_cnt", info->run_cnt);
375 static void print_prog_json(struct bpf_prog_info *info, int fd)
380 print_prog_header_json(info);
381 print_dev_json(info->ifindex, info->netns_dev, info->netns_ino);
383 if (info->load_time) {
386 print_boot_time(info->load_time, buf, sizeof(buf));
391 jsonw_uint_field(json_wtr, "uid", info->created_by_uid);
394 jsonw_uint_field(json_wtr, "bytes_xlated", info->xlated_prog_len);
396 if (info->jited_prog_len) {
398 jsonw_uint_field(json_wtr, "bytes_jited", info->jited_prog_len);
408 if (info->nr_map_ids)
409 show_prog_maps(fd, info->nr_map_ids);
411 if (info->btf_id)
412 jsonw_int_field(json_wtr, "btf_id", info->btf_id);
419 hash_for_each_possible(prog_table.table, obj, hash, info->id) {
420 if (obj->id == info->id)
426 emit_obj_refs_json(&refs_table, info->id, json_wtr);
428 show_prog_metadata(fd, info->nr_map_ids);
433 static void print_prog_header_plain(struct bpf_prog_info *info)
435 printf("%u: ", info->id);
436 if (info->type < ARRAY_SIZE(prog_type_name))
437 printf("%s ", prog_type_name[info->type]);
439 printf("type %u ", info->type);
441 if (*info->name)
442 printf("name %s ", info->name);
445 fprint_hex(stdout, info->tag, BPF_TAG_SIZE, "");
446 print_dev_plain(info->ifindex, info->netns_dev, info->netns_ino);
447 printf("%s", info->gpl_compatible ? " gpl" : "");
448 if (info->run_time_ns)
450 info->run_time_ns, info->run_cnt);
454 static void print_prog_plain(struct bpf_prog_info *info, int fd)
458 print_prog_header_plain(info);
460 if (info->load_time) {
463 print_boot_time(info->load_time, buf, sizeof(buf));
466 printf("\tloaded_at %s uid %u\n", buf, info->created_by_uid);
469 printf("\txlated %uB", info->xlated_prog_len);
471 if (info->jited_prog_len)
472 printf(" jited %uB", info->jited_prog_len);
481 if (info->nr_map_ids)
482 show_prog_maps(fd, info->nr_map_ids);
487 hash_for_each_possible(prog_table.table, obj, hash, info->id) {
488 if (obj->id == info->id)
493 if (info->btf_id)
494 printf("\n\tbtf_id %d", info->btf_id);
496 emit_obj_refs_plain(&refs_table, info->id, "\n\tpids ");
500 show_prog_metadata(fd, info->nr_map_ids);
505 struct bpf_prog_info info = {};
506 __u32 len = sizeof(info);
509 err = bpf_obj_get_info_by_fd(fd, &info, &len);
511 p_err("can't get prog info: %s", strerror(errno));
516 print_prog_json(&info, fd);
518 print_prog_plain(&info, fd);
613 prog_dump(struct bpf_prog_info *info, enum dump_mode mode,
628 if (info->jited_prog_len == 0 || !info->jited_prog_insns) {
632 buf = u64_to_ptr(info->jited_prog_insns);
633 member_len = info->jited_prog_len;
635 if (info->xlated_prog_len == 0 || !info->xlated_prog_insns) {
639 buf = u64_to_ptr(info->xlated_prog_insns);
640 member_len = info->xlated_prog_len;
643 if (info->btf_id && btf__get_from_id(info->btf_id, &btf)) {
648 func_info = u64_to_ptr(info->func_info);
650 if (info->nr_line_info) {
651 prog_linfo = bpf_prog_linfo__new(info);
677 if (info->ifindex) {
678 name = ifindex_to_bfd_params(info->ifindex,
679 info->netns_dev,
680 info->netns_ino,
686 if (info->nr_jited_func_lens && info->jited_func_lens) {
694 if (info->nr_jited_ksyms) {
696 ksyms = u64_to_ptr(info->jited_ksyms);
702 lens = u64_to_ptr(info->jited_func_lens);
703 for (i = 0; i < info->nr_jited_func_lens; i++) {
715 record = func_info + i * info->func_info_rec_size;
762 dd.nr_jited_ksyms = info->nr_jited_ksyms;
763 dd.jited_ksyms = u64_to_ptr(info->jited_ksyms);
766 dd.finfo_rec_size = info->func_info_rec_size;
868 p_err("can't get prog info: %s", strerror(errno));
874 print_prog_header_json(&info_linear->info);
877 print_prog_header_plain(&info_linear->info);
880 err = prog_dump(&info_linear->info, mode, filepath, opcodes,
1879 if (info_linear->info.btf_id == 0 ||
1880 btf__get_from_id(info_linear->info.btf_id, &btf)) {
1885 func_info = u64_to_ptr(info_linear->info.func_info);
1889 info_linear->info.btf_id, func_info[0].type_id);