Lines Matching refs:slot
100 static void __kprobes update_kprobe_inst_flag(uint template, uint slot, in update_kprobe_inst_flag() argument
107 p->ainsn.slot = slot; in update_kprobe_inst_flag()
120 if (bundle_encoding[template][slot] == B) { in update_kprobe_inst_flag()
136 } else if (bundle_encoding[template][slot] == X) { in update_kprobe_inst_flag()
153 static uint __kprobes is_cmp_ctype_unc_inst(uint template, uint slot, in is_cmp_ctype_unc_inst() argument
160 if (!((bundle_encoding[template][slot] == I) || in is_cmp_ctype_unc_inst()
161 (bundle_encoding[template][slot] == M))) in is_cmp_ctype_unc_inst()
189 static int __kprobes unsupported_inst(uint template, uint slot, in unsupported_inst() argument
197 if (is_cmp_ctype_unc_inst(template, slot, major_opcode, kprobe_inst)) { in unsupported_inst()
198 if (slot == 1 && qp) { in unsupported_inst()
207 else if (bundle_encoding[template][slot] == I) { in unsupported_inst()
237 if (slot == 1 && qp) { in unsupported_inst()
246 else if (bundle_encoding[template][slot] == B) { in unsupported_inst()
268 else if (unlikely(bundle_encoding[template][slot] == F)) { in unsupported_inst()
272 if (slot == 1 && qp) { in unsupported_inst()
284 if (slot == 1 && qp) { in unsupported_inst()
300 static void __kprobes prepare_break_inst(uint template, uint slot, in prepare_break_inst() argument
315 switch (slot) { in prepare_break_inst()
333 update_kprobe_inst_flag(template, slot, major_opcode, kprobe_inst, p); in prepare_break_inst()
336 static void __kprobes get_kprobe_inst(bundle_t *bundle, uint slot, in get_kprobe_inst() argument
344 switch (slot) { in get_kprobe_inst()
369 static int __kprobes valid_kprobe_addr(int template, int slot, in valid_kprobe_addr() argument
372 if ((slot > 2) || ((bundle_encoding[template][1] == L) && slot > 1)) { in valid_kprobe_addr()
512 static int __kprobes __is_ia64_break_inst(bundle_t *bundle, uint slot) in __is_ia64_break_inst() argument
519 if (slot == 1 && bundle_encoding[template][1] == L) in __is_ia64_break_inst()
520 slot++; in __is_ia64_break_inst()
523 get_kprobe_inst(bundle, slot, &kprobe_inst, &major_opcode); in __is_ia64_break_inst()
543 static int __kprobes can_boost(bundle_t *bundle, uint slot, in can_boost() argument
549 if (search_exception_tables(bundle_addr + slot) || in can_boost()
550 __is_ia64_break_inst(bundle, slot)) in can_boost()
552 } while ((++slot) < 3); in can_boost()
566 unsigned int slot = (unsigned long)p->addr & 0xf; in prepare_booster() local
569 if (can_boost(&p->ainsn.insn[0].bundle, slot, addr)) { in prepare_booster()
587 unsigned int slot = addr & 0xf, template, major_opcode = 0; in arch_prepare_kprobe() local
594 if(valid_kprobe_addr(template, slot, addr)) in arch_prepare_kprobe()
598 if (slot == 1 && bundle_encoding[template][1] == L) in arch_prepare_kprobe()
599 slot++; in arch_prepare_kprobe()
602 get_kprobe_inst(bundle, slot, &kprobe_inst, &major_opcode); in arch_prepare_kprobe()
604 qp = unsupported_inst(template, slot, major_opcode, kprobe_inst, addr); in arch_prepare_kprobe()
614 prepare_break_inst(template, slot, major_opcode, kprobe_inst, p, qp); in arch_prepare_kprobe()
634 switch (p->ainsn.slot) { in arch_arm_kprobe()
657 switch (p->ainsn.slot) { in arch_disarm_kprobe()
692 int slot = ((unsigned long)p->addr & 0xf); in resume_execution() local
696 if (slot == 1 && bundle_encoding[template][1] == L) in resume_execution()
697 slot = 2; in resume_execution()
740 if (slot == 2) { in resume_execution()
758 unsigned long slot = (unsigned long)p->addr & 0xf; in prepare_ss() local
766 if (slot > 2) in prepare_ss()
767 slot = 0; in prepare_ss()
769 ia64_psr(regs)->ri = slot; in prepare_ss()
777 unsigned int slot = ia64_psr(regs)->ri; in is_ia64_break_inst() local
783 return __is_ia64_break_inst(&bundle, slot); in is_ia64_break_inst()
876 ia64_psr(regs)->ri = p->ainsn.slot; in pre_kprobes_handler()