Commit b0c47807d31deccdfb78a22a0d04dd9785bdb9d3
1 parent
7a12b5031c
Exists in
smarc_imx_lf-5.15.y
and in
20 other branches
bpf: Add sparc support to tools and samples.
Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Showing 3 changed files with 24 additions and 0 deletions Side-by-side Diff
samples/bpf/bpf_helpers.h
... | ... | @@ -146,10 +146,29 @@ |
146 | 146 | #define PT_REGS_SP(x) ((x)->sp) |
147 | 147 | #define PT_REGS_IP(x) ((x)->nip) |
148 | 148 | |
149 | +#elif defined(__sparc__) | |
150 | + | |
151 | +#define PT_REGS_PARM1(x) ((x)->u_regs[UREG_I0]) | |
152 | +#define PT_REGS_PARM2(x) ((x)->u_regs[UREG_I1]) | |
153 | +#define PT_REGS_PARM3(x) ((x)->u_regs[UREG_I2]) | |
154 | +#define PT_REGS_PARM4(x) ((x)->u_regs[UREG_I3]) | |
155 | +#define PT_REGS_PARM5(x) ((x)->u_regs[UREG_I4]) | |
156 | +#define PT_REGS_RET(x) ((x)->u_regs[UREG_I7]) | |
157 | +#define PT_REGS_RC(x) ((x)->u_regs[UREG_I0]) | |
158 | +#define PT_REGS_SP(x) ((x)->u_regs[UREG_FP]) | |
159 | +#if defined(__arch64__) | |
160 | +#define PT_REGS_IP(x) ((x)->tpc) | |
161 | +#else | |
162 | +#define PT_REGS_IP(x) ((x)->pc) | |
149 | 163 | #endif |
150 | 164 | |
165 | +#endif | |
166 | + | |
151 | 167 | #ifdef __powerpc__ |
152 | 168 | #define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = (ctx)->link; }) |
169 | +#define BPF_KRETPROBE_READ_RET_IP BPF_KPROBE_READ_RET_IP | |
170 | +#elif defined(__sparc__) | |
171 | +#define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ (ip) = PT_REGS_RET(ctx); }) | |
153 | 172 | #define BPF_KRETPROBE_READ_RET_IP BPF_KPROBE_READ_RET_IP |
154 | 173 | #else |
155 | 174 | #define BPF_KPROBE_READ_RET_IP(ip, ctx) ({ \ |
tools/build/feature/test-bpf.c
tools/lib/bpf/bpf.c