/linux-master/arch/arm/probes/uprobes/ |
H A D | core.c | 29 int set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, argument 32 return uprobe_write_opcode(auprobe, mm, vaddr, 33 __opcode_to_mem_arm(auprobe->bpinsn)); 36 bool arch_uprobe_ignore(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 38 if (!auprobe->asi.insn_check_cc(regs->ARM_cpsr)) { 46 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 50 if (!auprobe->simulate) 53 opcode = __mem_to_opcode_arm(*(unsigned int *) auprobe->insn); 55 auprobe->asi.insn_singlestep(opcode, &auprobe 72 arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long addr) argument 133 arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 147 arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 170 arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument [all...] |
H A D | actions-arm.c | 66 static void uprobe_set_pc(struct arch_uprobe *auprobe, argument 70 u32 pcreg = auprobe->pcreg; 76 static void uprobe_unset_pc(struct arch_uprobe *auprobe, argument 81 regs->uregs[auprobe->pcreg] = autask->backup; 84 static void uprobe_aluwrite_pc(struct arch_uprobe *auprobe, argument 88 u32 pcreg = auprobe->pcreg; 94 static void uprobe_write_pc(struct arch_uprobe *auprobe, argument 98 u32 pcreg = auprobe->pcreg; 108 struct arch_uprobe *auprobe = container_of(asi, struct arch_uprobe, local 114 reg = uprobes_substitute_pc(&auprobe 132 struct arch_uprobe *auprobe = container_of(asi, struct arch_uprobe, local 163 struct arch_uprobe *auprobe = container_of(asi, struct arch_uprobe, local [all...] |
/linux-master/arch/x86/kernel/ |
H A D | uprobes.c | 277 static int uprobe_init_insn(struct arch_uprobe *auprobe, struct insn *insn, bool x86_64) argument 283 ret = insn_decode(insn, auprobe->insn, sizeof(auprobe->insn), m); 335 static void riprel_analyze(struct arch_uprobe *auprobe, struct insn *insn) argument 350 cursor = auprobe->insn + insn_offset_rex_prefix(insn); 369 cursor = auprobe->insn + insn_offset_vex_prefix(insn) + 1; 433 auprobe->defparam.fixups |= UPROBE_FIX_RIP_SI; 436 auprobe->defparam.fixups |= UPROBE_FIX_RIP_DI; 440 auprobe->defparam.fixups |= UPROBE_FIX_RIP_BX; 447 cursor = auprobe 457 scratch_reg(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 470 riprel_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 481 riprel_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 494 riprel_analyze(struct arch_uprobe *auprobe, struct insn *insn) argument 497 riprel_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 500 riprel_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 520 default_pre_xol_op(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 554 default_post_xol_op(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 574 default_abort_op(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 585 branch_is_call(struct arch_uprobe *auprobe) argument 619 check_jmp_cond(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 638 branch_emulate_op(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 663 push_emulate_op(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 673 branch_post_xol_op(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 686 branch_clear_offset(struct arch_uprobe *auprobe, struct insn *insn) argument 716 branch_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn) argument 767 push_setup_xol_ops(struct arch_uprobe *auprobe, struct insn *insn) argument 854 arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long addr) argument 916 arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 963 arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 1036 arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 1050 __skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 1057 arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument [all...] |
/linux-master/arch/csky/kernel/probes/ |
H A D | uprobes.c | 24 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, argument 29 insn = *(probe_opcode_t *)(&auprobe->insn[0]); 31 auprobe->insn_size = is_insn32(insn) ? 4 : 2; 33 switch (csky_probe_decode_insn(&insn, &auprobe->api)) { 38 auprobe->simulate = true; 48 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 62 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 69 instruction_pointer_set(regs, utask->vaddr + auprobe->insn_size); 84 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 89 if (!auprobe 101 arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument [all...] |
/linux-master/arch/loongarch/kernel/ |
H A D | uprobes.c | 10 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, argument 19 for (idx = ARRAY_SIZE(auprobe->insn) - 1; idx >= 0; idx--) { 20 insn.word = auprobe->insn[idx]; 26 auprobe->ixol[0] = larch_insn_gen_nop(); 27 auprobe->simulate = true; 29 auprobe->ixol[0] = auprobe->insn[0]; 30 auprobe->simulate = false; 33 auprobe->ixol[1] = UPROBE_XOLBP_INSN; 38 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struc argument 50 arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 67 arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 84 arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument [all...] |
/linux-master/arch/riscv/kernel/probes/ |
H A D | uprobes.c | 31 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, argument 36 opcode = *(probe_opcode_t *)(&auprobe->insn[0]); 38 auprobe->insn_size = GET_INSN_LENGTH(opcode); 40 switch (riscv_probe_decode_insn(&opcode, &auprobe->api)) { 45 auprobe->simulate = true; 49 auprobe->simulate = false; 59 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 71 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 78 instruction_pointer_set(regs, utask->vaddr + auprobe->insn_size); 91 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struc argument 108 arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument [all...] |
/linux-master/arch/powerpc/kernel/ |
H A D | uprobes.c | 38 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, argument 45 ppc_inst_prefixed(ppc_inst_read(auprobe->insn)) && 51 if (!can_single_step(ppc_inst_val(ppc_inst_read(auprobe->insn)))) { 61 * @auprobe: the probepoint information. 64 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 112 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 127 regs_set_return_ip(regs, (unsigned long)ppc_inst_next((void *)utask->vaddr, auprobe->insn)); 168 void arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 182 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 190 ret = emulate_step(regs, ppc_inst_read(auprobe [all...] |
/linux-master/arch/arm64/kernel/probes/ |
H A D | uprobes.c | 34 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, argument 45 insn = *(probe_opcode_t *)(&auprobe->insn[0]); 47 switch (arm_probe_decode_insn(insn, &auprobe->api)) { 52 auprobe->simulate = true; 62 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 77 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 103 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 108 if (!auprobe->simulate) 111 insn = *(probe_opcode_t *)(&auprobe->insn[0]); 114 if (auprobe 120 arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument [all...] |
/linux-master/arch/arm/include/asm/ |
H A D | uprobes.h | 33 void (*prehandler)(struct arch_uprobe *auprobe, 36 void (*posthandler)(struct arch_uprobe *auprobe,
|
/linux-master/arch/s390/kernel/ |
H A D | uprobes.c | 22 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, argument 25 return probe_is_prohibited_opcode(auprobe->insn); 28 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 35 auprobe->saved_per = psw_bits(regs->psw).per; 36 auprobe->saved_int_code = regs->int_code; 77 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 79 int fixup = probe_get_fixup_type(auprobe->insn); 84 psw_bits(regs->psw).per = auprobe->saved_per; 85 regs->int_code = auprobe->saved_int_code; 90 int reg = (auprobe 135 arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 263 handle_insn_ril(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 373 arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument [all...] |
/linux-master/arch/sparc/kernel/ |
H A D | uprobes.c | 76 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, argument 169 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 174 if (auprobe->ixol == (1 << 24)) { 190 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 216 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument 220 u32 insn = auprobe->ixol; 293 void arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) argument
|
/linux-master/include/linux/ |
H A D | uprobes.h | 112 extern int uprobe_write_opcode(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr, uprobe_opcode_t);
|
/linux-master/arch/mips/kernel/ |
H A D | uprobes.c | 102 * @auprobe: the probepoint information. 243 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) argument
|
/linux-master/kernel/events/ |
H A D | uprobes.c | 451 * @auprobe: arch specific probepoint information. 459 int uprobe_write_opcode(struct arch_uprobe *auprobe, struct mm_struct *mm, argument 470 uprobe = container_of(auprobe, struct uprobe, arch); 562 * @auprobe: arch specific probepoint information. 569 int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr) argument 571 return uprobe_write_opcode(auprobe, mm, vaddr, UPROBE_SWBP_INSN); 577 * @auprobe: arch specific probepoint information. 584 set_orig_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr) argument 586 return uprobe_write_opcode(auprobe, mm, vaddr, 587 *(uprobe_opcode_t *)&auprobe [all...] |