Lines Matching defs:op

119 int arch_check_optimized_kprobe(struct optimized_kprobe *op)
140 __arch_remove_optimized_kprobe(struct optimized_kprobe *op, int dirty)
142 if (op->optinsn.insn) {
143 free_optinsn_slot(op->optinsn.insn, dirty);
144 op->optinsn.insn = NULL;
149 optimized_callback(struct optimized_kprobe *op, struct pt_regs *regs)
152 struct kprobe *p = &op->kp;
156 regs->ARM_pc = (unsigned long)op->kp.addr;
163 kprobes_inc_nmissed_count(&op->kp);
165 __this_cpu_write(current_kprobe, &op->kp);
167 opt_pre_handler(&op->kp, regs);
176 op->kp.ainsn.insn_singlestep(p->opcode, &p->ainsn, regs);
182 int arch_prepare_optimized_kprobe(struct optimized_kprobe *op, struct kprobe *orig)
228 * we have not fill any field in op.
252 val = (unsigned long)op;
264 (unsigned long)(op->kp.addr) + 4);
284 /* Set op->optinsn.insn means prepared. */
285 op->optinsn.insn = code;
291 struct optimized_kprobe *op, *tmp;
293 list_for_each_entry_safe(op, tmp, oplist, list) {
295 WARN_ON(kprobe_disabled(&op->kp));
301 memcpy(op->optinsn.copied_insn, op->kp.addr,
304 insn = arm_gen_branch((unsigned long)op->kp.addr,
305 (unsigned long)op->optinsn.insn);
313 op->optinsn.copied_insn[0]) & 0xf0000000) |
321 kprobes_remove_breakpoint(op->kp.addr, insn);
323 list_del_init(&op->list);
327 void arch_unoptimize_kprobe(struct optimized_kprobe *op)
329 arch_arm_kprobe(&op->kp);
339 struct optimized_kprobe *op, *tmp;
341 list_for_each_entry_safe(op, tmp, oplist, list) {
342 arch_unoptimize_kprobe(op);
343 list_move(&op->list, done_list);
347 int arch_within_optimized_kprobe(struct optimized_kprobe *op,
350 return (op->kp.addr <= addr &&
351 op->kp.addr + (RELATIVEJUMP_SIZE / sizeof(kprobe_opcode_t)) > addr);
355 void arch_remove_optimized_kprobe(struct optimized_kprobe *op)
357 __arch_remove_optimized_kprobe(op, 1);