Lines Matching full:note
68 * .note.stapsdt ELF section. Here's an example USDT definition as emitted by
158 * Note that libbpf is using BPF cookie functionality for its own internal
161 * user-provided value that can be associated with USDT attachment. Note that
178 * note) as a lookup key in a hashmap. USDT spec string uniquely defines
181 * Note, this spec string deduplication is happening only during the same USDT
193 #define USDT_NOTE_SEC ".note.stapsdt"
576 static int parse_usdt_spec(struct usdt_spec *spec, const struct usdt_note *note, __u64 usdt_cookie);
623 struct usdt_note note; in collect_usdt_targets() local
627 err = parse_usdt_note(elf, path, &nhdr, data->d_buf, name_off, desc_off, ¬e); in collect_usdt_targets()
631 if (strcmp(note.provider, usdt_provider) != 0 || strcmp(note.name, usdt_name) != 0) in collect_usdt_targets()
637 * Each SDT probe also expands into a non-allocated ELF note. You can in collect_usdt_targets()
639 * see below for details. Because the note is non-allocated, it means in collect_usdt_targets()
643 * However, this means that prelink won't adjust the note's contents in collect_usdt_targets()
651 * Each probe note records the link-time address of the .stapsdt.base in collect_usdt_targets()
653 * base address stored in the note with the .stapsdt.base section's in collect_usdt_targets()
661 usdt_abs_ip = note.loc_addr; in collect_usdt_targets()
663 usdt_abs_ip += base_addr - note.base_addr; in collect_usdt_targets()
730 note.loc_addr, note.base_addr, usdt_abs_ip, usdt_rel_ip, note.args, in collect_usdt_targets()
734 if (note.sema_addr) { in collect_usdt_targets()
742 seg = find_elf_seg(segs, seg_cnt, note.sema_addr); in collect_usdt_targets()
746 usdt_provider, usdt_name, path, note.sema_addr); in collect_usdt_targets()
753 note.sema_addr); in collect_usdt_targets()
757 usdt_sema_off = note.sema_addr - seg->start + seg->offset; in collect_usdt_targets()
761 path, note.sema_addr, note.base_addr, usdt_sema_off, in collect_usdt_targets()
783 target->spec_str = note.args; in collect_usdt_targets()
785 err = parse_usdt_spec(&target->spec, ¬e, usdt_cookie); in collect_usdt_targets()
1130 /* Parse out USDT ELF note from '.note.stapsdt' section.
1135 struct usdt_note *note) in parse_usdt_note() argument
1141 /* sanity check USDT note name and type first */ in parse_usdt_note()
1147 /* sanity check USDT note contents ("description" in ELF terminology) */ in parse_usdt_note()
1175 note->provider = provider; in parse_usdt_note()
1176 note->name = name; in parse_usdt_note()
1178 note->args = ""; in parse_usdt_note()
1180 note->args = args; in parse_usdt_note()
1181 note->loc_addr = addrs[0]; in parse_usdt_note()
1182 note->base_addr = addrs[1]; in parse_usdt_note()
1183 note->sema_addr = addrs[2]; in parse_usdt_note()
1190 static int parse_usdt_spec(struct usdt_spec *spec, const struct usdt_note *note, __u64 usdt_cookie) in parse_usdt_spec() argument
1199 s = note->args; in parse_usdt_spec()
1203 USDT_MAX_ARG_CNT, note->provider, note->name, note->args); in parse_usdt_spec()