/linux/arch/powerpc/include/asm/ |
A D | kprobes.h | 32 typedef ppc_opcode_t kprobe_opcode_t; typedef 34 extern kprobe_opcode_t optinsn_slot; 37 extern kprobe_opcode_t optprobe_template_entry[]; 38 extern kprobe_opcode_t optprobe_template_op_address[]; 39 extern kprobe_opcode_t optprobe_template_call_handler[]; 40 extern kprobe_opcode_t optprobe_template_insn[]; 42 extern kprobe_opcode_t optprobe_template_ret[]; 43 extern kprobe_opcode_t optprobe_template_end[]; 60 kprobe_opcode_t *insn; 82 kprobe_opcode_t copied_insn[1]; [all …]
|
/linux/arch/arm/include/asm/ |
A D | kprobes.h | 24 typedef u32 kprobe_opcode_t; typedef 47 extern __visible kprobe_opcode_t optprobe_template_entry[]; 48 extern __visible kprobe_opcode_t optprobe_template_val[]; 49 extern __visible kprobe_opcode_t optprobe_template_call[]; 50 extern __visible kprobe_opcode_t optprobe_template_end[]; 51 extern __visible kprobe_opcode_t optprobe_template_sub_sp[]; 52 extern __visible kprobe_opcode_t optprobe_template_add_sp[]; 53 extern __visible kprobe_opcode_t optprobe_template_restore_begin[]; 55 extern __visible kprobe_opcode_t optprobe_template_restore_end[]; 69 kprobe_opcode_t copied_insn[MAX_COPIED_INSN]; [all …]
|
/linux/arch/sh/kernel/ |
A D | kprobes.c | 42 kprobe_opcode_t opcode = *(kprobe_opcode_t *) (p->addr); in arch_prepare_kprobe() 162 (kprobe_opcode_t *) (regs->pc + 4 + disp * 2); in prepare_singlestep() 167 (kprobe_opcode_t *) (regs->pc + 4 + in prepare_singlestep() 171 op1->addr = (kprobe_opcode_t *) regs->pr; in prepare_singlestep() 179 (kprobe_opcode_t *) (regs->pc + 4 + disp * 2); in prepare_singlestep() 206 ri->ret_addr = (kprobe_opcode_t *) regs->pr; in arch_prepare_kretprobe() 217 kprobe_opcode_t *addr = NULL; in kprobe_handler() 227 addr = (kprobe_opcode_t *) (regs->pc); in kprobe_handler() 315 kprobe_opcode_t *addr = NULL; in post_kprobe_handler() 415 kprobe_opcode_t *addr = NULL; in kprobe_exceptions_notify() [all …]
|
/linux/arch/x86/include/asm/ |
A D | kprobes.h | 26 typedef u8 kprobe_opcode_t; typedef 38 extern __visible kprobe_opcode_t optprobe_template_entry[]; 39 extern __visible kprobe_opcode_t optprobe_template_clac[]; 40 extern __visible kprobe_opcode_t optprobe_template_val[]; 41 extern __visible kprobe_opcode_t optprobe_template_call[]; 42 extern __visible kprobe_opcode_t optprobe_template_end[]; 58 kprobe_opcode_t *insn; 89 kprobe_opcode_t copied_insn[DISP32_SIZE]; 91 kprobe_opcode_t *insn;
|
/linux/arch/arc/kernel/ |
A D | kprobes.c | 42 (unsigned long)p->addr + sizeof(kprobe_opcode_t)); in arch_arm_kprobe() 50 (unsigned long)p->addr + sizeof(kprobe_opcode_t)); in arch_disarm_kprobe() 63 sizeof(kprobe_opcode_t)); in arch_remove_kprobe() 73 sizeof(kprobe_opcode_t)); in arch_remove_kprobe() 107 sizeof(kprobe_opcode_t)); in resume_execution() 117 sizeof(kprobe_opcode_t)); in resume_execution() 174 p->ainsn.t1_addr = (kprobe_opcode_t *) next_pc; in setup_singlestep() 180 sizeof(kprobe_opcode_t)); in setup_singlestep() 183 p->ainsn.t2_addr = (kprobe_opcode_t *) tgt_if_br; in setup_singlestep() 189 sizeof(kprobe_opcode_t)); in setup_singlestep() [all …]
|
/linux/include/linux/ |
A D | kprobes.h | 43 typedef int kprobe_opcode_t; typedef 69 kprobe_opcode_t *addr; 84 kprobe_opcode_t opcode; 165 kprobe_opcode_t *ret_addr; 194 kprobe_opcode_t *correct_ret_addr); 286 extern kprobe_opcode_t *__get_insn_slot(struct kprobe_insn_cache *c); 288 kprobe_opcode_t *slot, int dirty); 296 static inline kprobe_opcode_t *get_##__name##_slot(void) \ 301 static inline void free_##__name##_slot(kprobe_opcode_t *slot, int dirty)\ 345 kprobe_opcode_t *addr); [all …]
|
/linux/arch/powerpc/kernel/ |
A D | kprobes.c | 46 kprobe_opcode_t *addr = NULL; in kprobe_lookup_name() 50 addr = (kprobe_opcode_t *)kallsyms_lookup_name(name); in kprobe_lookup_name() 61 addr = (kprobe_opcode_t *)faddr; in kprobe_lookup_name() 64 addr = (kprobe_opcode_t *)ppc_function_entry(addr); in kprobe_lookup_name() 96 addr = (kprobe_opcode_t *)kallsyms_lookup_name(dot_name); in kprobe_lookup_name() 100 addr = (kprobe_opcode_t *)kallsyms_lookup_name(name); in kprobe_lookup_name() 102 addr = (kprobe_opcode_t *)kallsyms_lookup_name(name); in kprobe_lookup_name() 236 ri->ret_addr = (kprobe_opcode_t *)regs->link; in arch_prepare_kretprobe() 336 kprobe_opcode_t insn = *p->ainsn.insn; in kprobe_handler() 546 .addr = (kprobe_opcode_t *) &__kretprobe_trampoline, [all …]
|
A D | optprobes.c | 59 if (p->addr == (kprobe_opcode_t *)&__kretprobe_trampoline) in can_optimize() 60 return addr + sizeof(kprobe_opcode_t); in can_optimize() 127 static void patch_imm32_load_insns(unsigned long val, int reg, kprobe_opcode_t *addr) in patch_imm32_load_insns() 137 static void patch_imm64_load_insns(unsigned long long val, int reg, kprobe_opcode_t *addr) in patch_imm64_load_insns() 146 static void patch_imm_load_insns(unsigned long val, int reg, kprobe_opcode_t *addr) in patch_imm_load_insns() 158 kprobe_opcode_t *buff; in arch_prepare_optimized_kprobe() 192 size = (TMPL_END_IDX * sizeof(kprobe_opcode_t)) / sizeof(int); in arch_prepare_optimized_kprobe() 304 int arch_within_optimized_kprobe(struct optimized_kprobe *op, kprobe_opcode_t *addr) in arch_within_optimized_kprobe() 307 op->kp.addr + (RELATIVEJUMP_SIZE / sizeof(kprobe_opcode_t)) > addr); in arch_within_optimized_kprobe()
|
/linux/arch/arm64/kernel/probes/ |
A D | decode-insn.c | 119 is_probed_address_atomic(kprobe_opcode_t *scan_start, kprobe_opcode_t *scan_end) in is_probed_address_atomic() 137 arm_kprobe_decode_insn(kprobe_opcode_t *addr, struct arch_specific_insn *asi) in arm_kprobe_decode_insn() 155 if (offset < (MAX_ATOMIC_CONTEXT_SIZE*sizeof(kprobe_opcode_t))) in arm_kprobe_decode_insn() 156 scan_end = addr - (offset / sizeof(kprobe_opcode_t)); in arm_kprobe_decode_insn()
|
A D | decode-insn.h | 18 #define MAX_ATOMIC_CONTEXT_SIZE (128 / sizeof(kprobe_opcode_t)) 28 arm_kprobe_decode_insn(kprobe_opcode_t *addr, struct arch_specific_insn *asi);
|
/linux/arch/parisc/include/asm/ |
A D | kprobes.h | 24 typedef u32 kprobe_opcode_t; typedef 32 sizeof(kprobe_opcode_t)) 37 kprobe_opcode_t *insn;
|
/linux/arch/arc/include/asm/ |
A D | kprobes.h | 13 typedef u16 kprobe_opcode_t; typedef 23 kprobe_opcode_t *t1_addr, *t2_addr; 24 kprobe_opcode_t t1_opcode, t2_opcode;
|
/linux/arch/mips/include/asm/ |
A D | kprobes.h | 28 typedef union mips_instruction kprobe_opcode_t; typedef 37 (MAX_INSN_SIZE * sizeof(kprobe_opcode_t))); \ 49 kprobe_opcode_t *insn;
|
/linux/arch/x86/kernel/kprobes/ |
A D | common.h | 82 extern unsigned long recover_probed_instruction(kprobe_opcode_t *buf, 96 extern unsigned long __recover_optprobed_insn(kprobe_opcode_t *buf, unsigned long addr); 102 static inline unsigned long __recover_optprobed_insn(kprobe_opcode_t *buf, unsigned long addr) in __recover_optprobed_insn()
|
A D | core.c | 141 kprobe_opcode_t opcode; in can_boost() 193 __recover_probed_insn(kprobe_opcode_t *buf, unsigned long addr) in __recover_probed_insn() 234 MAX_INSN_SIZE * sizeof(kprobe_opcode_t))) in __recover_probed_insn() 266 kprobe_opcode_t buf[MAX_INSN_SIZE]; in can_probe() 313 kprobe_opcode_t buf[MAX_INSN_SIZE]; in __copy_instruction() 372 static int prepare_singlestep(kprobe_opcode_t *buf, struct kprobe *p, in prepare_singlestep() 692 kprobe_opcode_t buf[MAX_INSN_SIZE]; in arch_copy_kprobe() 808 ri->ret_addr = (kprobe_opcode_t *) *sara; in arch_prepare_kretprobe() 949 kprobe_opcode_t *addr; in kprobe_int3_handler() 956 addr = (kprobe_opcode_t *)(regs->ip - sizeof(kprobe_opcode_t)); in kprobe_int3_handler() [all …]
|
A D | opt.c | 36 unsigned long __recover_optprobed_insn(kprobe_opcode_t *buf, unsigned long addr) in __recover_optprobed_insn() 62 MAX_INSN_SIZE * sizeof(kprobe_opcode_t))) in __recover_optprobed_insn() 76 static void synthesize_clac(kprobe_opcode_t *addr) in synthesize_clac() 92 static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val) in synthesize_set_arg1() 293 kprobe_opcode_t buf[MAX_INSN_SIZE]; in can_optimize() 370 kprobe_opcode_t *addr) in arch_within_optimized_kprobe()
|
/linux/arch/arm/probes/kprobes/ |
A D | core.c | 50 kprobe_opcode_t insn; in arch_prepare_kprobe() 51 kprobe_opcode_t tmp_insn[MAX_INSN_SIZE]; in arch_prepare_kprobe() 134 kprobe_opcode_t insn = p->opcode; in arch_arm_kprobe() 250 p = get_kprobe((kprobe_opcode_t *)(regs->ARM_pc | 1)); in kprobe_handler() 252 p = get_kprobe((kprobe_opcode_t *)regs->ARM_pc); in kprobe_handler() 255 p = get_kprobe((kprobe_opcode_t *)regs->ARM_pc); in kprobe_handler() 423 ri->ret_addr = (kprobe_opcode_t *)regs->ARM_lr; in arch_prepare_kretprobe()
|
A D | opt-arm.c | 186 kprobe_opcode_t *code; in NOKPROBE_SYMBOL() 238 TMPL_END_IDX * sizeof(kprobe_opcode_t)); in NOKPROBE_SYMBOL() 264 kprobe_opcode_t final_branch = arm_gen_branch( in NOKPROBE_SYMBOL() 350 kprobe_opcode_t *addr) in arch_within_optimized_kprobe() 353 op->kp.addr + (RELATIVEJUMP_SIZE / sizeof(kprobe_opcode_t)) > addr); in arch_within_optimized_kprobe()
|
A D | test-core.c | 336 the_kprobe.addr = (kprobe_opcode_t *)func; in test_kprobe() 386 the_kretprobe.kp.addr = (kprobe_opcode_t *)func; in test_kretprobe() 521 .addr = (kprobe_opcode_t *)((uintptr_t)fn + offset), in kprobe_benchmark() 775 coverage_add_registers(struct coverage_entry *entry, kprobe_opcode_t insn) in coverage_add_registers() 842 static void coverage_add(kprobe_opcode_t insn) in coverage_add() 1000 static kprobe_opcode_t current_instruction; 1346 test_before_probe.kprobe.addr = (kprobe_opcode_t *)test_code; in kprobes_test_case_start() 1349 test_case_probe.kprobe.addr = (kprobe_opcode_t *)test_code; in kprobes_test_case_start() 1370 test_after_probe.kprobe.addr = (kprobe_opcode_t *)test_code; in kprobes_test_case_start() 1412 (kprobe_opcode_t *)current_branch_target; in kprobes_test_case_start()
|
/linux/arch/mips/kernel/ |
A D | kprobes.c | 125 memcpy(&p->ainsn.insn[0], p->addr + 1, sizeof(kprobe_opcode_t)); in arch_prepare_kprobe() 127 memcpy(&p->ainsn.insn[0], p->addr, sizeof(kprobe_opcode_t)); in arch_prepare_kprobe() 276 kprobe_opcode_t *addr; in kprobe_handler() 279 addr = (kprobe_opcode_t *) regs->cp0_epc; in kprobe_handler() 475 ri->ret_addr = (kprobe_opcode_t *) regs->regs[31]; in arch_prepare_kretprobe() 499 if (p->addr == (kprobe_opcode_t *)__kretprobe_trampoline) in arch_trampoline_kprobe() 506 .addr = (kprobe_opcode_t *)__kretprobe_trampoline,
|
/linux/arch/ia64/kernel/ |
A D | kprobes.c | 413 ri->ret_addr = (kprobe_opcode_t *)regs->b0; in arch_prepare_kretprobe() 500 bundle = &((kprobe_opcode_t *)kprobe_addr)->bundle; in arch_prepare_kprobe() 520 memcpy(&p->opcode, kprobe_addr, sizeof(kprobe_opcode_t)); in arch_prepare_kprobe() 521 memcpy(p->ainsn.insn, kprobe_addr, sizeof(kprobe_opcode_t)); in arch_prepare_kprobe() 536 dest = &((kprobe_opcode_t *)arm_addr)->bundle; in arch_arm_kprobe() 541 sizeof(kprobe_opcode_t) * MAX_INSN_SIZE); in arch_arm_kprobe() 554 flush_icache_range(arm_addr, arm_addr + sizeof(kprobe_opcode_t)); in arch_arm_kprobe() 563 dest = &((kprobe_opcode_t *)arm_addr)->bundle; in arch_disarm_kprobe() 577 flush_icache_range(arm_addr, arm_addr + sizeof(kprobe_opcode_t)); in arch_disarm_kprobe() 700 kprobe_opcode_t *addr = (kprobe_opcode_t *)instruction_pointer(regs); in pre_kprobes_handler()
|
/linux/kernel/ |
A D | kprobes.c | 70 return ((kprobe_opcode_t *)(kallsyms_lookup_name(name))); in kprobe_lookup_name() 88 kprobe_opcode_t *insns; /* Page of instruction slots */ 144 kprobe_opcode_t *slot = NULL; in __get_insn_slot() 254 kprobe_opcode_t *slot, int dirty) in __free_insn_slot() 263 (c->insn_size * sizeof(kprobe_opcode_t)); in __free_insn_slot() 1476 static kprobe_opcode_t *_kprobe_addr(kprobe_opcode_t *addr, in _kprobe_addr() 1488 addr = (kprobe_opcode_t *)(((char *)addr) + offset); in _kprobe_addr() 1616 kprobe_opcode_t *addr; in register_kprobe() 1909 kprobe_opcode_t *ret; in kretprobe_find_ret_addr() 1926 kprobe_opcode_t *correct_ret_addr) in arch_kretprobe_fixup_return() [all …]
|
/linux/arch/sh/include/asm/ |
A D | kprobes.h | 14 typedef insn_size_t kprobe_opcode_t; typedef 34 kprobe_opcode_t insn[MAX_INSN_SIZE];
|
/linux/arch/sparc/include/asm/ |
A D | kprobes.h | 14 typedef u32 kprobe_opcode_t; typedef 32 kprobe_opcode_t insn[MAX_INSN_SIZE];
|
/linux/arch/s390/include/asm/ |
A D | kprobes.h | 41 typedef u16 kprobe_opcode_t; typedef 56 kprobe_opcode_t *insn;
|