Home
last modified time | relevance | path

Searched refs:auprobe (Results 1 – 13 of 13) sorted by relevance

/linux-6.3-rc2/arch/x86/kernel/
A Duprobes.c283 ret = insn_decode(insn, auprobe->insn, sizeof(auprobe->insn), m); in uprobe_init_insn()
758 auprobe->branch.opc1 = opc1; in branch_setup_xol_ops()
843 auprobe->ops = &push_xol_ops; in push_setup_xol_ops()
920 if (auprobe->ops->pre_xol) { in arch_uprobe_pre_xol()
921 int err = auprobe->ops->pre_xol(auprobe, regs); in arch_uprobe_pre_xol()
972 if (auprobe->ops->post_xol) { in arch_uprobe_post_xol()
973 err = auprobe->ops->post_xol(auprobe, regs); in arch_uprobe_post_xol()
1040 if (auprobe->ops->abort) in arch_uprobe_abort_xol()
1041 auprobe->ops->abort(auprobe, regs); in arch_uprobe_abort_xol()
1052 if (auprobe->ops->emulate) in __skip_sstep()
[all …]
/linux-6.3-rc2/arch/arm/probes/uprobes/
A Dcore.c32 return uprobe_write_opcode(auprobe, mm, vaddr, in set_swbp()
33 __opcode_to_mem_arm(auprobe->bpinsn)); in set_swbp()
50 if (!auprobe->simulate) in arch_uprobe_skip_sstep()
55 auprobe->asi.insn_singlestep(opcode, &auprobe->asi, regs); in arch_uprobe_skip_sstep()
84 auprobe->ixol[0] = __opcode_to_mem_arm(insn); in arch_uprobe_analyze_insn()
94 auprobe->simulate = true; in arch_uprobe_analyze_insn()
108 auprobe->bpinsn = bpinsn; in arch_uprobe_analyze_insn()
137 if (auprobe->prehandler) in arch_uprobe_pre_xol()
138 auprobe->prehandler(auprobe, &utask->autask, regs); in arch_uprobe_pre_xol()
156 if (auprobe->posthandler) in arch_uprobe_post_xol()
[all …]
A Dactions-arm.c70 u32 pcreg = auprobe->pcreg; in uprobe_set_pc()
81 regs->uregs[auprobe->pcreg] = autask->backup; in uprobe_unset_pc()
88 u32 pcreg = auprobe->pcreg; in uprobe_aluwrite_pc()
98 u32 pcreg = auprobe->pcreg; in uprobe_write_pc()
121 auprobe->pcreg = reg; in decode_pc_ro()
122 auprobe->prehandler = uprobe_set_pc; in decode_pc_ro()
123 auprobe->posthandler = uprobe_unset_pc; in decode_pc_ro()
182 auprobe->pcreg = 14; in uprobe_decode_ldmstm()
185 auprobe->prehandler = uprobe_set_pc; in uprobe_decode_ldmstm()
187 auprobe->posthandler = uprobe_write_pc; in uprobe_decode_ldmstm()
[all …]
/linux-6.3-rc2/arch/csky/kernel/probes/
A Duprobes.c29 insn = *(probe_opcode_t *)(&auprobe->insn[0]); in arch_uprobe_analyze_insn()
31 auprobe->insn_size = is_insn32(insn) ? 4 : 2; in arch_uprobe_analyze_insn()
33 switch (csky_probe_decode_insn(&insn, &auprobe->api)) { in arch_uprobe_analyze_insn()
38 auprobe->simulate = true; in arch_uprobe_analyze_insn()
48 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_pre_xol() argument
62 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_post_xol() argument
68 instruction_pointer_set(regs, utask->vaddr + auprobe->insn_size); in arch_uprobe_post_xol()
88 if (!auprobe->simulate) in arch_uprobe_skip_sstep()
91 insn = *(probe_opcode_t *)(&auprobe->insn[0]); in arch_uprobe_skip_sstep()
94 if (auprobe->api.handler) in arch_uprobe_skip_sstep()
[all …]
/linux-6.3-rc2/arch/riscv/kernel/probes/
A Duprobes.c30 opcode = *(probe_opcode_t *)(&auprobe->insn[0]); in arch_uprobe_analyze_insn()
32 auprobe->insn_size = GET_INSN_LENGTH(opcode); in arch_uprobe_analyze_insn()
34 switch (riscv_probe_decode_insn(&opcode, &auprobe->api)) { in arch_uprobe_analyze_insn()
39 auprobe->simulate = true; in arch_uprobe_analyze_insn()
43 auprobe->simulate = false; in arch_uprobe_analyze_insn()
53 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_pre_xol() argument
71 instruction_pointer_set(regs, utask->vaddr + auprobe->insn_size); in arch_uprobe_post_xol()
89 if (!auprobe->simulate) in arch_uprobe_skip_sstep()
92 insn = *(probe_opcode_t *)(&auprobe->insn[0]); in arch_uprobe_skip_sstep()
95 if (auprobe->api.handler) in arch_uprobe_skip_sstep()
[all …]
/linux-6.3-rc2/arch/arm64/kernel/probes/
A Duprobes.c34 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, in arch_uprobe_analyze_insn() argument
45 insn = *(probe_opcode_t *)(&auprobe->insn[0]); in arch_uprobe_analyze_insn()
47 switch (arm_probe_decode_insn(insn, &auprobe->api)) { in arch_uprobe_analyze_insn()
52 auprobe->simulate = true; in arch_uprobe_analyze_insn()
62 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_pre_xol() argument
77 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_post_xol() argument
108 if (!auprobe->simulate) in arch_uprobe_skip_sstep()
111 insn = *(probe_opcode_t *)(&auprobe->insn[0]); in arch_uprobe_skip_sstep()
114 if (auprobe->api.handler) in arch_uprobe_skip_sstep()
115 auprobe->api.handler(insn, addr, regs); in arch_uprobe_skip_sstep()
[all …]
/linux-6.3-rc2/arch/powerpc/kernel/
A Duprobes.c38 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, in arch_uprobe_analyze_insn() argument
45 ppc_inst_prefixed(ppc_inst_read(auprobe->insn)) && in arch_uprobe_analyze_insn()
51 if (!can_single_step(ppc_inst_val(ppc_inst_read(auprobe->insn)))) { in arch_uprobe_analyze_insn()
64 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_pre_xol() argument
112 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_post_xol() argument
127 regs_set_return_ip(regs, (unsigned long)ppc_inst_next((void *)utask->vaddr, auprobe->insn)); in arch_uprobe_post_xol()
168 void arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_abort_xol() argument
182 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_skip_sstep() argument
190 ret = emulate_step(regs, ppc_inst_read(auprobe->insn)); in arch_uprobe_skip_sstep()
/linux-6.3-rc2/arch/s390/kernel/
A Duprobes.c26 return probe_is_prohibited_opcode(auprobe->insn); in arch_uprobe_analyze_insn()
36 auprobe->saved_per = psw_bits(regs->psw).per; in arch_uprobe_pre_xol()
37 auprobe->saved_int_code = regs->int_code; in arch_uprobe_pre_xol()
80 int fixup = probe_get_fixup_type(auprobe->insn); in arch_uprobe_post_xol()
85 psw_bits(regs->psw).per = auprobe->saved_per; in arch_uprobe_post_xol()
86 regs->int_code = auprobe->saved_int_code; in arch_uprobe_post_xol()
91 int reg = (auprobe->insn[0] & 0xf0) >> 4; in arch_uprobe_post_xol()
96 int ilen = insn_length(auprobe->insn[0] >> 8); in arch_uprobe_post_xol()
139 regs->int_code = auprobe->saved_int_code; in arch_uprobe_abort_xol()
272 insn = (struct insn_ril *) &auprobe->insn; in handle_insn_ril()
[all …]
/linux-6.3-rc2/arch/sparc/kernel/
A Duprobes.c76 int arch_uprobe_analyze_insn(struct arch_uprobe *auprobe, in arch_uprobe_analyze_insn() argument
169 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_skip_sstep() argument
174 if (auprobe->ixol == (1 << 24)) { in arch_uprobe_skip_sstep()
190 int arch_uprobe_pre_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_pre_xol() argument
216 int arch_uprobe_post_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_post_xol() argument
220 u32 insn = auprobe->ixol; in arch_uprobe_post_xol()
293 void arch_uprobe_abort_xol(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_abort_xol() argument
/linux-6.3-rc2/arch/arm/include/asm/
A Duprobes.h33 void (*prehandler)(struct arch_uprobe *auprobe,
36 void (*posthandler)(struct arch_uprobe *auprobe,
/linux-6.3-rc2/arch/mips/kernel/
A Duprobes.c222 int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, in set_swbp() argument
225 return uprobe_write_opcode(auprobe, mm, vaddr, UPROBE_SWBP_INSN); in set_swbp()
260 bool arch_uprobe_skip_sstep(struct arch_uprobe *auprobe, struct pt_regs *regs) in arch_uprobe_skip_sstep() argument
/linux-6.3-rc2/kernel/events/
A Duprobes.c460 int uprobe_write_opcode(struct arch_uprobe *auprobe, struct mm_struct *mm, in uprobe_write_opcode() argument
471 uprobe = container_of(auprobe, struct uprobe, arch); in uprobe_write_opcode()
571 int __weak set_swbp(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr) in set_swbp() argument
573 return uprobe_write_opcode(auprobe, mm, vaddr, UPROBE_SWBP_INSN); in set_swbp()
586 set_orig_insn(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vaddr) in set_orig_insn() argument
588 return uprobe_write_opcode(auprobe, mm, vaddr, in set_orig_insn()
589 *(uprobe_opcode_t *)&auprobe->insn); in set_orig_insn()
/linux-6.3-rc2/include/linux/
A Duprobes.h112 extern int uprobe_write_opcode(struct arch_uprobe *auprobe, struct mm_struct *mm, unsigned long vad…

Completed in 23 milliseconds