| /linux/arch/arm64/include/asm/ |
| H A D | ftrace.h | 63 #define arch_ftrace_regs(fregs) ((struct __arch_ftrace_regs *)(fregs)) argument 89 ftrace_regs_get_instruction_pointer(const struct ftrace_regs *fregs) in ftrace_regs_get_instruction_pointer() argument 91 return arch_ftrace_regs(fregs)->pc; in ftrace_regs_get_instruction_pointer() 95 ftrace_regs_set_instruction_pointer(struct ftrace_regs *fregs, in ftrace_regs_set_instruction_pointer() argument 98 arch_ftrace_regs(fregs)->pc = pc; in ftrace_regs_set_instruction_pointer() 102 ftrace_regs_get_stack_pointer(const struct ftrace_regs *fregs) in ftrace_regs_get_stack_pointer() argument 104 return arch_ftrace_regs(fregs)->sp; in ftrace_regs_get_stack_pointer() 108 ftrace_regs_get_argument(struct ftrace_regs *fregs, unsigned int n) in ftrace_regs_get_argument() argument 111 return arch_ftrace_regs(fregs)->regs[n]; in ftrace_regs_get_argument() 116 ftrace_regs_get_return_value(const struct ftrace_regs *fregs) in ftrace_regs_get_return_value() argument [all …]
|
| /linux/arch/riscv/include/asm/ |
| H A D | ftrace.h | 125 #define arch_ftrace_regs(fregs) ((struct __arch_ftrace_regs *)(fregs)) argument 159 *fregs) in ftrace_regs_get_instruction_pointer() 161 return arch_ftrace_regs(fregs)->epc; in ftrace_regs_get_instruction_pointer() 164 static __always_inline void ftrace_regs_set_instruction_pointer(struct ftrace_regs *fregs, in ftrace_regs_set_instruction_pointer() argument 167 arch_ftrace_regs(fregs)->epc = pc; in ftrace_regs_set_instruction_pointer() 170 static __always_inline unsigned long ftrace_regs_get_stack_pointer(const struct ftrace_regs *fregs) in ftrace_regs_get_stack_pointer() argument 172 return arch_ftrace_regs(fregs)->sp; in ftrace_regs_get_stack_pointer() 175 static __always_inline unsigned long ftrace_regs_get_frame_pointer(const struct ftrace_regs *fregs) in ftrace_regs_get_frame_pointer() argument 177 return arch_ftrace_regs(fregs)->s0; in ftrace_regs_get_frame_pointer() 180 static __always_inline unsigned long ftrace_regs_get_argument(struct ftrace_regs *fregs, in ftrace_regs_get_argument() argument [all …]
|
| /linux/include/linux/ |
| H A D | ftrace_regs.h | 15 #define arch_ftrace_regs(fregs) ((struct __arch_ftrace_regs *)(fregs)) argument 19 #define ftrace_regs_get_instruction_pointer(fregs) \ argument 20 instruction_pointer(&arch_ftrace_regs(fregs)->regs) 21 #define ftrace_regs_get_argument(fregs, n) \ argument 22 regs_get_kernel_argument(&arch_ftrace_regs(fregs)->regs, n) 23 #define ftrace_regs_get_stack_pointer(fregs) \ argument 24 kernel_stack_pointer(&arch_ftrace_regs(fregs)->regs) 25 #define ftrace_regs_get_return_value(fregs) \ argument 26 regs_return_value(&arch_ftrace_regs(fregs)->regs) 27 #define ftrace_regs_set_return_value(fregs, ret) \ argument [all …]
|
| H A D | ftrace.h | 47 unsigned long ftrace_return_to_handler(struct ftrace_regs *fregs); 67 struct ftrace_ops *op, struct ftrace_regs *fregs); 166 static inline struct pt_regs *arch_ftrace_get_regs(struct ftrace_regs *fregs) in arch_ftrace_get_regs() argument 168 return &arch_ftrace_regs(fregs)->regs; in arch_ftrace_get_regs() 176 #define ftrace_regs_set_instruction_pointer(fregs, ip) do { } while (0) argument 185 static __always_inline struct pt_regs *ftrace_get_regs(struct ftrace_regs *fregs) in ftrace_get_regs() argument 187 if (!fregs) in ftrace_get_regs() 190 return arch_ftrace_get_regs(fregs); in ftrace_get_regs() 197 ftrace_partial_regs(struct ftrace_regs *fregs, struct pt_regs *regs) in ftrace_partial_regs() argument 205 return &arch_ftrace_regs(fregs)->regs; in ftrace_partial_regs() [all …]
|
| /linux/arch/sh/math-emu/ |
| H A D | math.c | 28 #define FPUL (fregs->fpul) 29 #define FPSCR (fregs->fpscr) 38 #define FR ((unsigned long*)(fregs->fp_regs)) 42 #define DR ((unsigned long long*)(fregs->fp_regs)) 81 fcmp_gt(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n) in fcmp_gt() argument 92 fcmp_eq(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n) in fcmp_eq() argument 108 fadd(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n) in fadd() argument 115 fsub(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n) in fsub() argument 122 fmul(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n) in fmul() argument 129 fdiv(struct sh_fpu_soft_struct *fregs, struct pt_regs *regs, int m, int n) in fdiv() argument [all …]
|
| /linux/arch/powerpc/include/asm/ |
| H A D | ftrace.h | 40 static __always_inline struct pt_regs *arch_ftrace_get_regs(struct ftrace_regs *fregs) in arch_ftrace_get_regs() argument 43 return arch_ftrace_regs(fregs)->regs.msr ? &arch_ftrace_regs(fregs)->regs : NULL; in arch_ftrace_get_regs() 46 #define arch_ftrace_fill_perf_regs(fregs, _regs) do { \ argument 48 (_regs)->nip = arch_ftrace_regs(fregs)->regs.nip; \ 49 (_regs)->gpr[1] = arch_ftrace_regs(fregs)->regs.gpr[1]; \ 55 ftrace_regs_get_return_value(const struct ftrace_regs *fregs) in ftrace_regs_get_return_value() argument 57 return arch_ftrace_regs(fregs)->regs.gpr[3]; in ftrace_regs_get_return_value() 63 ftrace_regs_get_frame_pointer(const struct ftrace_regs *fregs) in ftrace_regs_get_frame_pointer() argument 65 return arch_ftrace_regs(fregs)->regs.gpr[1]; in ftrace_regs_get_frame_pointer() 69 ftrace_regs_set_instruction_pointer(struct ftrace_regs *fregs, in ftrace_regs_set_instruction_pointer() argument [all …]
|
| /linux/arch/s390/include/asm/ |
| H A D | ftrace.h | 58 static __always_inline struct pt_regs *arch_ftrace_get_regs(struct ftrace_regs *fregs) in arch_ftrace_get_regs() argument 60 struct pt_regs *regs = &arch_ftrace_regs(fregs)->regs; in arch_ftrace_get_regs() 68 ftrace_regs_set_instruction_pointer(struct ftrace_regs *fregs, in ftrace_regs_set_instruction_pointer() argument 71 arch_ftrace_regs(fregs)->regs.psw.addr = ip; in ftrace_regs_set_instruction_pointer() 76 ftrace_regs_get_frame_pointer(struct ftrace_regs *fregs) in ftrace_regs_get_frame_pointer() argument 78 return ftrace_regs_get_stack_pointer(fregs); in ftrace_regs_get_frame_pointer() 82 ftrace_regs_get_return_address(const struct ftrace_regs *fregs) in ftrace_regs_get_return_address() argument 84 return arch_ftrace_regs(fregs)->regs.gprs[14]; in ftrace_regs_get_return_address() 87 #define arch_ftrace_fill_perf_regs(fregs, _regs) do { \ argument 89 (_regs)->psw.addr = arch_ftrace_regs(fregs)->regs.psw.addr; \ [all …]
|
| /linux/arch/loongarch/include/asm/ |
| H A D | ftrace.h | 49 static __always_inline struct pt_regs *arch_ftrace_get_regs(struct ftrace_regs *fregs) in arch_ftrace_get_regs() argument 51 return &arch_ftrace_regs(fregs)->regs; in arch_ftrace_get_regs() 55 ftrace_regs_set_instruction_pointer(struct ftrace_regs *fregs, unsigned long ip) in ftrace_regs_set_instruction_pointer() argument 57 instruction_pointer_set(&arch_ftrace_regs(fregs)->regs, ip); in ftrace_regs_set_instruction_pointer() 61 #define ftrace_regs_get_frame_pointer(fregs) \ argument 62 (arch_ftrace_regs(fregs)->regs.regs[22]) 65 ftrace_regs_get_return_address(struct ftrace_regs *fregs) in ftrace_regs_get_return_address() argument 67 return *(unsigned long *)(arch_ftrace_regs(fregs)->regs.regs[1]); in ftrace_regs_get_return_address() 72 struct ftrace_ops *op, struct ftrace_regs *fregs); 81 #define arch_ftrace_set_direct_caller(fregs, addr) \ argument [all …]
|
| /linux/arch/x86/include/asm/ |
| H A D | ftrace.h | 51 arch_ftrace_get_regs(struct ftrace_regs *fregs) in arch_ftrace_get_regs() argument 54 if (!arch_ftrace_regs(fregs)->regs.cs) in arch_ftrace_get_regs() 56 return &arch_ftrace_regs(fregs)->regs; in arch_ftrace_get_regs() 59 #define arch_ftrace_fill_perf_regs(fregs, _regs) do { \ argument 60 (_regs)->ip = arch_ftrace_regs(fregs)->regs.ip; \ 61 (_regs)->sp = arch_ftrace_regs(fregs)->regs.sp; \ 66 #define ftrace_regs_set_instruction_pointer(fregs, _ip) \ argument 67 do { arch_ftrace_regs(fregs)->regs.ip = (_ip); } while (0) 71 ftrace_regs_get_return_address(struct ftrace_regs *fregs) in ftrace_regs_get_return_address() argument 73 return *(unsigned long *)ftrace_regs_get_stack_pointer(fregs); in ftrace_regs_get_return_address() [all …]
|
| /linux/kernel/trace/ |
| H A D | trace_fprobe.c | 281 struct ftrace_regs *fregs = rec; in process_fetch_insn() local 289 val = ftrace_regs_get_kernel_stack_nth(fregs, code->param); in process_fetch_insn() 292 val = ftrace_regs_get_stack_pointer(fregs); in process_fetch_insn() 295 val = ftrace_regs_get_return_value(fregs); in process_fetch_insn() 299 val = ftrace_regs_get_argument(fregs, code->param); in process_fetch_insn() 322 struct ftrace_regs *fregs, in NOKPROBE_SYMBOL() 336 dsize = __get_data_size(&tf->tp, fregs, NULL); in NOKPROBE_SYMBOL() 343 fbuffer.regs = ftrace_get_regs(fregs); in NOKPROBE_SYMBOL() 346 store_trace_args(&entry[1], &tf->tp, fregs, NULL, sizeof(*entry), dsize); in NOKPROBE_SYMBOL() 353 struct ftrace_regs *fregs) in fentry_trace_func() argument [all …]
|
| H A D | trace_functions.c | 26 struct ftrace_ops *op, struct ftrace_regs *fregs); 29 struct ftrace_ops *op, struct ftrace_regs *fregs); 32 struct ftrace_ops *op, struct ftrace_regs *fregs); 35 struct ftrace_ops *op, struct ftrace_regs *fregs); 39 struct ftrace_regs *fregs); 188 function_get_true_parent_ip(unsigned long parent_ip, struct ftrace_regs *fregs) in function_get_true_parent_ip() argument 194 if (unlikely(parent_ip == (unsigned long)&return_to_handler) && fregs) in function_get_true_parent_ip() 196 (unsigned long *)ftrace_regs_get_stack_pointer(fregs)); in function_get_true_parent_ip() 201 function_get_true_parent_ip(unsigned long parent_ip, struct ftrace_regs *fregs) in function_get_true_parent_ip() argument 209 struct ftrace_ops *op, struct ftrace_regs *fregs) in function_trace_call() argument [all …]
|
| H A D | fgraph.c | 296 struct ftrace_regs *fregs) in entry_run() argument 303 struct ftrace_regs *fregs) in return_run() argument 526 struct ftrace_regs *fregs) in ftrace_graph_entry_stub() argument 533 struct ftrace_regs *fregs) in ftrace_graph_ret_stub() argument 653 struct ftrace_regs *fregs) in function_graph_enter_regs() argument 676 if (static_call(fgraph_func)(&trace, fgraph_direct_gops, fregs)) in function_graph_enter_regs() 694 gops->entryfunc(&trace, gops, fregs)) in function_graph_enter_regs() 811 __ftrace_return_to_handler(struct ftrace_regs *fregs, unsigned long frame_pointer) in __ftrace_return_to_handler() argument 830 if (fregs) in __ftrace_return_to_handler() 831 ftrace_regs_set_instruction_pointer(fregs, ret); in __ftrace_return_to_handler() [all …]
|
| H A D | fprobe.c | 218 struct fprobe *fp, struct ftrace_regs *fregs, in __fprobe_handler() argument 224 return fp->entry_handler(fp, ip, parent_ip, fregs, data); in __fprobe_handler() 228 struct fprobe *fp, struct ftrace_regs *fregs, in __fprobe_kprobe_handler() argument 244 ret = __fprobe_handler(ip, parent_ip, fp, fregs, data); in __fprobe_kprobe_handler() 250 struct ftrace_regs *fregs) in fprobe_entry() argument 260 if (WARN_ON_ONCE(!fregs)) in fprobe_entry() 300 ret_ip = ftrace_regs_get_return_address(fregs); in fprobe_entry() 319 ret = __fprobe_kprobe_handler(func, ret_ip, fp, fregs, data); in fprobe_entry() 321 ret = __fprobe_handler(func, ret_ip, fp, fregs, data); in fprobe_entry() 341 struct ftrace_regs *fregs) in fprobe_return() argument [all …]
|
| H A D | trace_selftest.c | 111 struct ftrace_regs *fregs) in trace_selftest_test_probe1_func() argument 120 struct ftrace_regs *fregs) in trace_selftest_test_probe2_func() argument 129 struct ftrace_regs *fregs) in trace_selftest_test_probe3_func() argument 138 struct ftrace_regs *fregs) in trace_selftest_test_global_func() argument 147 struct ftrace_regs *fregs) in trace_selftest_test_dyn_func() argument 452 struct ftrace_regs *fregs) in trace_selftest_test_recursion_func() argument 467 struct ftrace_regs *fregs) in trace_selftest_test_recursion_safe_func() argument 586 struct ftrace_regs *fregs) in trace_selftest_test_regs_func() argument 588 struct pt_regs *regs = ftrace_get_regs(fregs); in trace_selftest_test_regs_func() 778 struct ftrace_regs *fregs) in store_entry() argument [all …]
|
| /linux/arch/mips/kernel/ |
| H A D | ptrace32.c | 95 union fpureg *fregs; in compat_arch_ptrace() local 102 fregs = get_fpu_regs(child); in compat_arch_ptrace() 109 tmp = get_fpr32(&fregs[(addr & ~1) - FPR_BASE], in compat_arch_ptrace() 113 tmp = get_fpr64(&fregs[addr - FPR_BASE], 0); in compat_arch_ptrace() 211 union fpureg *fregs = get_fpu_regs(child); in compat_arch_ptrace() local 225 set_fpr32(&fregs[(addr & ~1) - FPR_BASE], in compat_arch_ptrace() 229 set_fpr64(&fregs[addr - FPR_BASE], 0, data); in compat_arch_ptrace()
|
| H A D | ptrace.c | 367 union fpureg *fregs = get_fpu_regs(child); in ptrace_getfpregs() local 369 __put_user(get_fpr64(&fregs[i], 0), in ptrace_getfpregs() 384 union fpureg *fregs; in ptrace_setfpregs() local 393 fregs = get_fpu_regs(child); in ptrace_setfpregs() 397 set_fpr64(&fregs[i], 0, fpr_val); in ptrace_setfpregs() 1113 union fpureg *fregs; in arch_ptrace() local 1120 fregs = get_fpu_regs(child); in arch_ptrace() 1129 tmp = get_fpr32(&fregs[(addr & ~1) - FPR_BASE], in arch_ptrace() 1134 tmp = get_fpr64(&fregs[addr - FPR_BASE], 0); in arch_ptrace() 1217 union fpureg *fregs = get_fpu_regs(child); in arch_ptrace() local [all …]
|
| /linux/arch/s390/kernel/ |
| H A D | ftrace.c | 267 struct ftrace_ops *op, struct ftrace_regs *fregs) in ftrace_graph_func() argument 269 unsigned long *parent = &arch_ftrace_regs(fregs)->regs.gprs[14]; in ftrace_graph_func() 270 unsigned long sp = arch_ftrace_regs(fregs)->regs.gprs[15]; in ftrace_graph_func() 276 if (!function_graph_enter_regs(*parent, ip, 0, (unsigned long *)sp, fregs)) in ftrace_graph_func() 284 struct ftrace_ops *ops, struct ftrace_regs *fregs) in kprobe_ftrace_handler() argument 298 kmsan_unpoison_memory(fregs, ftrace_regs_size()); in kprobe_ftrace_handler() 299 regs = ftrace_get_regs(fregs); in kprobe_ftrace_handler()
|
| /linux/arch/parisc/kernel/ |
| H A D | ftrace.c | 59 struct ftrace_regs *fregs) in ftrace_function_trampoline() argument 63 ftrace_func(self_addr, parent, function_trace_op, fregs); in ftrace_function_trampoline() 202 struct ftrace_ops *ops, struct ftrace_regs *fregs) in kprobe_ftrace_handler() argument 216 regs = ftrace_get_regs(fregs); in kprobe_ftrace_handler()
|
| /linux/arch/loongarch/kernel/ |
| H A D | ftrace_dyn.c | 241 struct ftrace_ops *op, struct ftrace_regs *fregs) in ftrace_graph_func() argument 243 struct pt_regs *regs = &arch_ftrace_regs(fregs)->regs; in ftrace_graph_func() 253 if (!function_graph_enter_regs(old, ip, 0, parent, fregs)) in ftrace_graph_func() 290 struct ftrace_ops *ops, struct ftrace_regs *fregs) in kprobe_ftrace_handler() argument 308 regs = ftrace_get_regs(fregs); in kprobe_ftrace_handler()
|
| /linux/arch/riscv/kernel/ |
| H A D | ftrace.c | 251 struct ftrace_ops *op, struct ftrace_regs *fregs) in ftrace_graph_func() argument 254 unsigned long frame_pointer = arch_ftrace_regs(fregs)->s0; in ftrace_graph_func() 255 unsigned long *parent = &arch_ftrace_regs(fregs)->ra; in ftrace_graph_func() 267 if (!function_graph_enter_regs(old, ip, frame_pointer, parent, fregs)) in ftrace_graph_func()
|
| /linux/arch/powerpc/kernel/ |
| H A D | kprobes-ftrace.c | 17 struct ftrace_ops *ops, struct ftrace_regs *fregs) in kprobe_ftrace_handler() argument 31 regs = ftrace_get_regs(fregs); in kprobe_ftrace_handler()
|
| /linux/arch/x86/kernel/kprobes/ |
| H A D | ftrace.c | 18 struct ftrace_ops *ops, struct ftrace_regs *fregs) in kprobe_ftrace_handler() argument 20 struct pt_regs *regs = ftrace_get_regs(fregs); in kprobe_ftrace_handler()
|
| /linux/arch/sparc/math-emu/ |
| H A D | math_32.c | 133 static int do_one_mathemu(u32 insn, unsigned long *fsr, unsigned long *fregs); 275 static int do_one_mathemu(u32 insn, unsigned long *pfsr, unsigned long *fregs) in do_one_mathemu() argument 369 rs1 = (argp)&fregs[freg]; in do_one_mathemu() 390 rs2 = (argp)&fregs[freg]; in do_one_mathemu() 419 rd = (void *)&fregs[freg]; in do_one_mathemu()
|
| /linux/arch/csky/kernel/probes/ |
| H A D | ftrace.c | 7 struct ftrace_ops *ops, struct ftrace_regs *fregs) in kprobe_ftrace_handler() argument 22 regs = ftrace_get_regs(fregs); in kprobe_ftrace_handler()
|
| /linux/arch/arm64/kernel/ |
| H A D | ftrace.c | 551 struct ftrace_ops *op, struct ftrace_regs *fregs) in ftrace_graph_func() argument 554 unsigned long frame_pointer = arch_ftrace_regs(fregs)->fp; in ftrace_graph_func() 555 unsigned long *parent = &arch_ftrace_regs(fregs)->lr; in ftrace_graph_func() 564 (void *)frame_pointer, fregs)) { in ftrace_graph_func()
|