tools/testing/selftests/bpf/trace_helpers.h
Source file repositories/reference/linux-study-clean/tools/testing/selftests/bpf/trace_helpers.h
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/bpf/trace_helpers.h- Extension
.h- Size
- 1849 bytes
- Lines
- 68
- Domain
- Support Tooling And Documentation
- Bucket
- tools
- Inferred role
- Support Tooling And Documentation: implementation source
- Status
- source implementation candidate
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
bpf/libbpf.h
Detected Declarations
struct ksymstruct ksyms
Annotated Snippet
struct ksym {
long addr;
char *name;
};
struct ksyms {
struct ksym *syms;
size_t sym_cap;
size_t sym_cnt;
char **filtered_syms;
size_t filtered_cnt;
};
typedef int (*ksym_cmp_t)(const void *p1, const void *p2);
typedef int (*ksym_search_cmp_t)(const void *p1, const struct ksym *p2);
int load_kallsyms(void);
struct ksym *ksym_search(long key);
long ksym_get_addr(const char *name);
struct ksyms *load_kallsyms_local(void);
struct ksym *ksym_search_local(struct ksyms *ksyms, long key);
long ksym_get_addr_local(struct ksyms *ksyms, const char *name);
void free_kallsyms_local(struct ksyms *ksyms);
struct ksyms *load_kallsyms_custom_local(ksym_cmp_t cmp_cb);
struct ksym *search_kallsyms_custom_local(struct ksyms *ksyms, const void *p1,
ksym_search_cmp_t cmp_cb);
/* open kallsyms and find addresses on the fly, faster than load + search. */
int kallsyms_find(const char *sym, unsigned long long *addr);
void read_trace_pipe(void);
int read_trace_pipe_iter(void (*cb)(const char *str, void *data),
void *data, int iter);
ssize_t get_uprobe_offset(const void *addr);
ssize_t get_rel_offset(uintptr_t addr);
int read_build_id(const char *path, char *build_id, size_t size);
int bpf_get_ksyms(struct ksyms **ksymsp, bool kernel);
int bpf_get_addrs(unsigned long **addrsp, size_t *cntp, bool kernel);
bool is_unsafe_function(const char *name);
#endif
Annotation
- Immediate include surface: `bpf/libbpf.h`.
- Detected declarations: `struct ksym`, `struct ksyms`.
- Atlas domain: Support Tooling And Documentation / tools.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.