Lines Matching defs:man
271 struct usdt_manager *man;
281 man = calloc(1, sizeof(*man));
282 if (!man)
285 man->specs_map = specs_map;
286 man->ip_to_spec_id_map = ip_to_spec_id_map;
292 man->has_bpf_cookie = kernel_supports(obj, FEAT_BPF_COOKIE);
298 man->has_sema_refcnt = faccessat(AT_FDCWD, ref_ctr_sysfs_path, F_OK, AT_EACCESS) == 0;
304 man->has_uprobe_multi = kernel_supports(obj, FEAT_UPROBE_MULTI_LINK);
305 return man;
308 void usdt_manager_free(struct usdt_manager *man)
310 if (IS_ERR_OR_NULL(man))
313 free(man->free_spec_ids);
314 free(man);
589 static int collect_usdt_targets(struct usdt_manager *man, Elf *elf, const char *path, pid_t pid,
699 if (ehdr.e_type == ET_DYN && !man->has_bpf_cookie) {
747 if (!man->has_sema_refcnt) {
836 struct usdt_manager *man = usdt_link->usdt_man;
851 if (!man->has_bpf_cookie) {
853 (void)bpf_map_delete_elem(bpf_map__fd(man->ip_to_spec_id_map),
861 if (!man->free_spec_ids) {
863 man->free_spec_ids = usdt_link->spec_ids;
864 man->free_spec_cnt = usdt_link->spec_cnt;
868 size_t new_cnt = man->free_spec_cnt + usdt_link->spec_cnt;
871 new_free_ids = libbpf_reallocarray(man->free_spec_ids, new_cnt,
883 memcpy(new_free_ids + man->free_spec_cnt, usdt_link->spec_ids,
885 man->free_spec_ids = new_free_ids;
886 man->free_spec_cnt = new_cnt;
912 static int allocate_spec_id(struct usdt_manager *man, struct hashmap *specs_hash,
936 if (man->free_spec_cnt) {
937 *spec_id = man->free_spec_ids[man->free_spec_cnt - 1];
944 man->free_spec_cnt--;
947 if (man->next_free_spec_id >= bpf_map__max_entries(man->specs_map))
950 *spec_id = man->next_free_spec_id;
957 man->next_free_spec_id++;
967 struct bpf_link *usdt_manager_attach_usdt(struct usdt_manager *man, const struct bpf_program *prog,
982 spec_map_fd = bpf_map__fd(man->specs_map);
983 ip_map_fd = bpf_map__fd(man->ip_to_spec_id_map);
1002 err = collect_usdt_targets(man, elf_fd.elf, path, pid, usdt_provider, usdt_name,
1021 link->usdt_man = man;
1025 if (man->has_uprobe_multi) {
1056 err = allocate_spec_id(man, specs_hash, link, target, &spec_id, &is_new);
1066 if (!man->has_bpf_cookie &&
1080 if (man->has_uprobe_multi) {
1086 opts.bpf_cookie = man->has_bpf_cookie ? spec_id : 0;
1102 if (man->has_uprobe_multi) {