Lines Matching refs:tpl
2824 static __always_inline void *text_poke_addr(const struct smp_text_poke_loc *tpl) in text_poke_addr() argument
2826 return _stext + tpl->rel_addr; in text_poke_addr()
2840 struct smp_text_poke_loc *tpl; in smp_text_poke_int3_handler() local
2869 tpl = __inline_bsearch(ip, text_poke_array.vec, text_poke_array.nr_entries, in smp_text_poke_int3_handler()
2872 if (!tpl) in smp_text_poke_int3_handler()
2875 tpl = text_poke_array.vec; in smp_text_poke_int3_handler()
2876 if (text_poke_addr(tpl) != ip) in smp_text_poke_int3_handler()
2880 ip += tpl->len; in smp_text_poke_int3_handler()
2882 switch (tpl->opcode) { in smp_text_poke_int3_handler()
2895 int3_emulate_call(regs, (long)ip + tpl->disp); in smp_text_poke_int3_handler()
2900 int3_emulate_jmp(regs, (long)ip + tpl->disp); in smp_text_poke_int3_handler()
2904 int3_emulate_jcc(regs, tpl->opcode & 0xf, (long)ip, tpl->disp); in smp_text_poke_int3_handler()
3091 struct smp_text_poke_loc *tpl; in __smp_text_poke_batch_add() local
3095 tpl = &text_poke_array.vec[text_poke_array.nr_entries++]; in __smp_text_poke_batch_add()
3099 memcpy((void *)tpl->text, opcode+i, len-i); in __smp_text_poke_batch_add()
3106 tpl->rel_addr = addr - (void *)_stext; in __smp_text_poke_batch_add()
3107 tpl->len = len; in __smp_text_poke_batch_add()
3108 tpl->opcode = insn.opcode.bytes[0]; in __smp_text_poke_batch_add()
3114 tpl->opcode = insn.opcode.bytes[1] - 0x10; in __smp_text_poke_batch_add()
3117 switch (tpl->opcode) { in __smp_text_poke_batch_add()
3126 BUG_ON(tpl->text[i] != INT3_INSN_OPCODE); in __smp_text_poke_batch_add()
3133 switch (tpl->opcode) { in __smp_text_poke_batch_add()
3142 tpl->disp = insn.immediate.value; in __smp_text_poke_batch_add()
3149 tpl->opcode = JMP8_INSN_OPCODE; in __smp_text_poke_batch_add()
3150 tpl->disp = 0; in __smp_text_poke_batch_add()
3155 tpl->opcode = JMP32_INSN_OPCODE; in __smp_text_poke_batch_add()
3156 tpl->disp = 0; in __smp_text_poke_batch_add()