tools/testing/selftests/bpf/progs/tracing_struct_many_args.c
Source file repositories/reference/linux-study-clean/tools/testing/selftests/bpf/progs/tracing_struct_many_args.c
File Facts
- System
- Linux kernel
- Corpus path
tools/testing/selftests/bpf/progs/tracing_struct_many_args.c- Extension
.c- Size
- 2170 bytes
- Lines
- 96
- 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
vmlinux.hbpf/bpf_tracing.hbpf/bpf_helpers.h
Detected Declarations
struct bpf_testmod_struct_arg_4struct bpf_testmod_struct_arg_5function BPF_PROG2function BPF_PROG2function BPF_PROG2function BPF_PROG2function BPF_PROG2function BPF_PROG2
Annotated Snippet
struct bpf_testmod_struct_arg_4 {
u64 a;
int b;
};
struct bpf_testmod_struct_arg_5 {
char a;
short b;
int c;
long d;
};
long t7_a, t7_b, t7_c, t7_d, t7_e, t7_f_a, t7_f_b, t7_ret;
long t8_a, t8_b, t8_c, t8_d, t8_e, t8_f_a, t8_f_b, t8_g, t8_ret;
long t9_a, t9_b, t9_c, t9_d, t9_e, t9_f, t9_g, t9_h_a, t9_h_b, t9_h_c, t9_h_d, t9_i, t9_ret;
SEC("fentry/bpf_testmod_test_struct_arg_7")
int BPF_PROG2(test_struct_many_args_1, __u64, a, void *, b, short, c, int, d,
void *, e, struct bpf_testmod_struct_arg_4, f)
{
t7_a = a;
t7_b = (long)b;
t7_c = c;
t7_d = d;
t7_e = (long)e;
t7_f_a = f.a;
t7_f_b = f.b;
return 0;
}
SEC("fexit/bpf_testmod_test_struct_arg_7")
int BPF_PROG2(test_struct_many_args_2, __u64, a, void *, b, short, c, int, d,
void *, e, struct bpf_testmod_struct_arg_4, f, int, ret)
{
t7_ret = ret;
return 0;
}
SEC("fentry/bpf_testmod_test_struct_arg_8")
int BPF_PROG2(test_struct_many_args_3, __u64, a, void *, b, short, c, int, d,
void *, e, struct bpf_testmod_struct_arg_4, f, int, g)
{
t8_a = a;
t8_b = (long)b;
t8_c = c;
t8_d = d;
t8_e = (long)e;
t8_f_a = f.a;
t8_f_b = f.b;
t8_g = g;
return 0;
}
SEC("fexit/bpf_testmod_test_struct_arg_8")
int BPF_PROG2(test_struct_many_args_4, __u64, a, void *, b, short, c, int, d,
void *, e, struct bpf_testmod_struct_arg_4, f, int, g,
int, ret)
{
t8_ret = ret;
return 0;
}
SEC("fentry/bpf_testmod_test_struct_arg_9")
int BPF_PROG2(test_struct_many_args_5, __u64, a, void *, b, short, c, int, d, void *, e,
char, f, short, g, struct bpf_testmod_struct_arg_5, h, long, i)
{
t9_a = a;
t9_b = (long)b;
t9_c = c;
t9_d = d;
t9_e = (long)e;
t9_f = f;
t9_g = g;
t9_h_a = h.a;
t9_h_b = h.b;
t9_h_c = h.c;
t9_h_d = h.d;
t9_i = i;
return 0;
}
SEC("fexit/bpf_testmod_test_struct_arg_9")
int BPF_PROG2(test_struct_many_args_6, __u64, a, void *, b, short, c, int, d, void *, e,
char, f, short, g, struct bpf_testmod_struct_arg_5, h, long, i, int, ret)
{
t9_ret = ret;
return 0;
}
char _license[] SEC("license") = "GPL";
Annotation
- Immediate include surface: `vmlinux.h`, `bpf/bpf_tracing.h`, `bpf/bpf_helpers.h`.
- Detected declarations: `struct bpf_testmod_struct_arg_4`, `struct bpf_testmod_struct_arg_5`, `function BPF_PROG2`, `function BPF_PROG2`, `function BPF_PROG2`, `function BPF_PROG2`, `function BPF_PROG2`, `function BPF_PROG2`.
- 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.