/linux/include/linux/ |
H A D | kprobes.h | 49 struct kprobe; 53 typedef int (*kprobe_pre_handler_t) (struct kprobe *, struct pt_regs *); 54 typedef void (*kprobe_post_handler_t) (struct kprobe *, struct pt_regs *, 59 struct kprobe { struct 108 static inline bool kprobe_gone(struct kprobe *p) in kprobe_gone() 114 static inline bool kprobe_disabled(struct kprobe *p) in kprobe_disabled() 120 static inline bool kprobe_optimized(struct kprobe *p) in kprobe_optimized() 126 static inline bool kprobe_ftrace(struct kprobe *p) in kprobe_ftrace() 147 struct kprobe kp; 187 DECLARE_PER_CPU(struct kprobe *, current_kprobe); [all …]
|
/linux/arch/riscv/kernel/probes/ |
H A D | kprobes.c | 19 DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; 23 post_kprobe_handler(struct kprobe *, struct kprobe_ctlblk *, struct pt_regs *); 25 static void __kprobes arch_prepare_ss_slot(struct kprobe *p) in arch_prepare_ss_slot() 36 static void __kprobes arch_prepare_simulate(struct kprobe *p) in arch_prepare_simulate() 41 static void __kprobes arch_simulate_insn(struct kprobe *p, struct pt_regs *regs) in arch_simulate_insn() 52 static bool __kprobes arch_check_kprobe(struct kprobe *p) in arch_check_kprobe() 67 int __kprobes arch_prepare_kprobe(struct kprobe *p) in arch_prepare_kprobe() 108 void __kprobes arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() 117 void __kprobes arch_disarm_kprobe(struct kprobe *p) in arch_disarm_kprobe() 124 void __kprobes arch_remove_kprobe(struct kprobe *p) in arch_remove_kprobe() [all …]
|
/linux/arch/sh/kernel/ |
H A D | kprobes.c | 17 DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; 20 static DEFINE_PER_CPU(struct kprobe, saved_current_opcode); 21 static DEFINE_PER_CPU(struct kprobe, saved_next_opcode); 22 static DEFINE_PER_CPU(struct kprobe, saved_next_opcode2); 40 int __kprobes arch_prepare_kprobe(struct kprobe *p) in arch_prepare_kprobe() 53 void __kprobes arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() 60 void __kprobes arch_disarm_kprobe(struct kprobe *p) in arch_disarm_kprobe() 67 int __kprobes arch_trampoline_kprobe(struct kprobe *p) in arch_trampoline_kprobe() 83 struct kprobe *p = get_kprobe((kprobe_opcode_t *) pc + 1); in kprobe_handle_illslot() 95 void __kprobes arch_remove_kprobe(struct kprobe *p) in arch_remove_kprobe() [all …]
|
/linux/arch/loongarch/kernel/ |
H A D | kprobes.c | 10 DEFINE_PER_CPU(struct kprobe *, current_kprobe); 13 static void arch_prepare_ss_slot(struct kprobe *p) in arch_prepare_ss_slot() 21 static void arch_prepare_simulate(struct kprobe *p) in arch_prepare_simulate() 27 int arch_prepare_kprobe(struct kprobe *p) in arch_prepare_kprobe() 61 void arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() 69 void arch_disarm_kprobe(struct kprobe *p) in arch_disarm_kprobe() 76 void arch_remove_kprobe(struct kprobe *p) in arch_remove_kprobe() 99 static void set_current_kprobe(struct kprobe *p) in set_current_kprobe() 128 static void post_kprobe_handler(struct kprobe *cur, struct kprobe_ctlblk *kcb, in post_kprobe_handler() 155 static void setup_singlestep(struct kprobe *p, struct pt_regs *regs, in setup_singlestep() [all …]
|
/linux/arch/csky/kernel/probes/ |
H A D | kprobes.c | 16 DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; 54 static void __kprobes arch_prepare_ss_slot(struct kprobe *p) in arch_prepare_ss_slot() 63 static void __kprobes arch_prepare_simulate(struct kprobe *p) in arch_prepare_simulate() 68 static void __kprobes arch_simulate_insn(struct kprobe *p, struct pt_regs *regs) in arch_simulate_insn() 78 int __kprobes arch_prepare_kprobe(struct kprobe *p) in arch_prepare_kprobe() 114 void __kprobes arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() 120 void __kprobes arch_disarm_kprobe(struct kprobe *p) in arch_disarm_kprobe() 125 void __kprobes arch_remove_kprobe(struct kprobe *p) in arch_remove_kprobe() 145 static void __kprobes set_current_kprobe(struct kprobe *p) in set_current_kprobe() 172 set_ss_context(struct kprobe_ctlblk *kcb, unsigned long addr, struct kprobe *p) in set_ss_context() [all …]
|
/linux/arch/arc/kernel/ |
H A D | kprobes.c | 20 DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; 23 int __kprobes arch_prepare_kprobe(struct kprobe *p) in arch_prepare_kprobe() 37 void __kprobes arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() 45 void __kprobes arch_disarm_kprobe(struct kprobe *p) in arch_disarm_kprobe() 53 void __kprobes arch_remove_kprobe(struct kprobe *p) in arch_remove_kprobe() 91 static inline void __kprobes set_current_kprobe(struct kprobe *p) in set_current_kprobe() 96 static void __kprobes resume_execution(struct kprobe *p, unsigned long addr, in resume_execution() 125 static void __kprobes setup_singlestep(struct kprobe *p, struct pt_regs *regs) in setup_singlestep() 196 struct kprobe *p; in arc_kprobe_handler() 248 struct kprobe *cur = kprobe_running(); in arc_post_kprobe_handler() [all …]
|
/linux/arch/sparc/kernel/ |
H A D | kprobes.c | 45 DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; 50 int __kprobes arch_prepare_kprobe(struct kprobe *p) in arch_prepare_kprobe() 65 void __kprobes arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() 71 void __kprobes arch_disarm_kprobe(struct kprobe *p) in arch_disarm_kprobe() 93 static void __kprobes set_current_kprobe(struct kprobe *p, struct pt_regs *regs, in set_current_kprobe() 101 static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs, in prepare_singlestep() 118 struct kprobe *p; in kprobe_handler() 201 static unsigned long __kprobes relbranch_fixup(u32 insn, struct kprobe *p, in relbranch_fixup() 277 static void __kprobes resume_execution(struct kprobe *p, in resume_execution() 295 struct kprobe *cur = kprobe_running(); in post_kprobe_handler() [all …]
|
/linux/arch/mips/kernel/ |
H A D | kprobes.c | 44 DEFINE_PER_CPU(struct kprobe *, current_kprobe); 78 int arch_prepare_kprobe(struct kprobe *p) in arch_prepare_kprobe() 139 void arch_arm_kprobe(struct kprobe *p) in arch_arm_kprobe() 146 void arch_disarm_kprobe(struct kprobe *p) in arch_disarm_kprobe() 153 void arch_remove_kprobe(struct kprobe *p) in arch_remove_kprobe() 180 static void set_current_kprobe(struct kprobe *p, struct pt_regs *regs, in set_current_kprobe() 201 static int evaluate_branch_instruction(struct kprobe *p, struct pt_regs *regs, in evaluate_branch_instruction() 235 static void prepare_singlestep(struct kprobe *p, struct pt_regs *regs, in prepare_singlestep() 266 static void resume_execution(struct kprobe *p, in resume_execution() 281 struct kprobe *p; in kprobe_handler() [all …]
|
/linux/arch/arm/probes/kprobes/ |
H A D | test-core.c | 310 static int __kprobes pre_handler(struct kprobe *p, struct pt_regs *regs) in pre_handler() 318 static void __kprobes post_handler(struct kprobe *p, struct pt_regs *regs, in post_handler() 326 static struct kprobe the_kprobe = { 498 benchmark_pre_handler(struct kprobe *p, struct pt_regs *regs) in benchmark_pre_handler() 520 struct kprobe k = { in kprobe_benchmark() 1161 struct kprobe kprobe; member 1169 unregister_kprobe(&probe->kprobe); in unregister_test_probe() 1170 probe->kprobe.flags = 0; /* Clear disable flag to allow reuse */ in unregister_test_probe() 1182 ret = register_kprobe(&probe->kprobe); in register_test_probe() 1191 test_before_pre_handler(struct kprobe *p, struct pt_regs *regs) in test_before_pre_handler() [all …]
|
/linux/arch/x86/kernel/kprobes/ |
H A D | core.c | 61 DEFINE_PER_CPU(struct kprobe *, current_kprobe) = NULL; 207 struct kprobe *kp; in __recover_probed_insn() 465 static int prepare_singlestep(kprobe_opcode_t *buf, struct kprobe *p, in prepare_singlestep() 513 static void kprobe_emulate_ifmodifiers(struct kprobe *p, struct pt_regs *regs) in kprobe_emulate_ifmodifiers() 533 static void kprobe_emulate_ret(struct kprobe *p, struct pt_regs *regs) in kprobe_emulate_ret() 539 static void kprobe_emulate_call(struct kprobe *p, struct pt_regs *regs) in kprobe_emulate_call() 548 static void kprobe_emulate_jmp(struct kprobe *p, struct pt_regs *regs) in kprobe_emulate_jmp() 557 static void kprobe_emulate_jcc(struct kprobe *p, struct pt_regs *regs) in kprobe_emulate_jcc() 565 static void kprobe_emulate_loop(struct kprobe *p, struct pt_regs *regs) in kprobe_emulate_loop() 622 static void kprobe_emulate_call_indirect(struct kprobe *p, struct pt_regs *regs) in kprobe_emulate_call_indirect() [all …]
|
/linux/drivers/misc/lkdtm/ |
H A D | core.c | 40 static int lkdtm_kprobe_handler(struct kprobe *kp, struct pt_regs *regs); 45 .kprobe = { \ 60 struct kprobe kprobe; member 105 static struct kprobe *lkdtm_kprobe; 175 if (!crashpoint->kprobe.symbol_name) in lkdtm_register_cpoint() 183 lkdtm_kprobe = &crashpoint->kprobe; in lkdtm_register_cpoint() 187 crashpoint->kprobe.symbol_name); in lkdtm_register_cpoint() 202 static int lkdtm_kprobe_handler(struct kprobe *kp, struct pt_regs *regs) in lkdtm_kprobe_handler()
|
/linux/Documentation/trace/ |
H A D | kprobes.rst | 37 (also called return probes). A kprobe can be inserted on virtually 64 When a kprobe is registered, Kprobes makes a copy of the probed 71 associated with the kprobe, passing the handler the addresses of the 72 kprobe struct and the saved registers. 81 "post_handler," if any, that is associated with the kprobe. 110 When you call register_kretprobe(), Kprobes establishes a kprobe at 115 At boot time, Kprobes registers a kprobe at the trampoline. 147 field of the kretprobe struct. Whenever the kprobe placed by kretprobe at the 182 Kprobes inserts an ordinary, breakpoint-based kprobe at the specified 235 If the kprobe can be optimized, Kprobes enqueues the kprobe to an [all …]
|
/linux/arch/x86/include/asm/ |
H A D | kprobes.h | 24 struct kprobe; 51 void arch_remove_kprobe(struct kprobe *p); 80 void (*emulate_op)(struct kprobe *p, struct pt_regs *regs); 101 struct kprobe *kp;
|
/linux/Documentation/bpf/libbpf/ |
H A D | program_types.rst | 86 …BE`` | | ``kprobe+`` [#kprobe]_ … 88 … | | ``kretprobe+`` [#kprobe]_ | … 104 | | ``BPF_TRACE_KPROBE_MULTI`` | ``kprobe.mul… 217 .. [#kprobe] The ``kprobe`` attach format is ``kprobe/<function>[+<offset>]``. Valid 223 .. [#kpmulti] The ``kprobe.multi`` attach format is ``kprobe.multi/<pattern>`` where ``pattern``
|
/linux/lib/ |
H A D | test_kprobes.c | 36 static int kp_pre_handler(struct kprobe *p, struct pt_regs *regs) in kp_pre_handler() 44 static void kp_post_handler(struct kprobe *p, struct pt_regs *regs, in kp_post_handler() 55 static struct kprobe kp = { 103 static int kp_pre_handler2(struct kprobe *p, struct pt_regs *regs) in kp_pre_handler2() 109 static void kp_post_handler2(struct kprobe *p, struct pt_regs *regs, in kp_post_handler2() 116 static struct kprobe kp2 = { 124 struct kprobe *kps[2] = {&kp, &kp2}; in test_kprobes() 149 static struct kprobe kp_missed = {
|
/linux/arch/sh/include/asm/ |
H A D | kprobes.h | 26 struct kprobe; 28 void arch_remove_kprobe(struct kprobe *); 38 struct kprobe *kp;
|
/linux/arch/arc/include/asm/ |
H A D | kprobes.h | 31 struct kprobe; 33 void arch_remove_kprobe(struct kprobe *p); 36 struct kprobe *kp;
|
/linux/arch/parisc/include/asm/ |
H A D | kprobes.h | 27 struct kprobe; 29 void arch_remove_kprobe(struct kprobe *p); 43 struct kprobe *kp;
|
/linux/arch/mips/include/asm/ |
H A D | kprobes.h | 25 struct kprobe; 43 void arch_remove_kprobe(struct kprobe *p); 53 struct kprobe *kp;
|
/linux/arch/s390/include/asm/ |
H A D | kprobes.h | 40 struct kprobe; 61 struct kprobe *kp; 73 void arch_remove_kprobe(struct kprobe *p);
|
/linux/tools/testing/selftests/bpf/prog_tests/ |
H A D | fill_link_info.c | 61 ASSERT_EQ(info.perf_event.kprobe.offset, offset, "kprobe_offset"); in verify_perf_link_info() 65 ASSERT_EQ(info.perf_event.kprobe.addr, addr + entry_offset, in verify_perf_link_info() 68 ASSERT_EQ(info.perf_event.kprobe.cookie, PERF_EVENT_COOKIE, "kprobe_cookie"); in verify_perf_link_info() 70 ASSERT_EQ(info.perf_event.kprobe.name_len, strlen(KPROBE_FUNC) + 1, in verify_perf_link_info() 72 if (!info.perf_event.kprobe.func_name) { in verify_perf_link_info() 73 info.perf_event.kprobe.func_name = ptr_to_u64(&buf); in verify_perf_link_info() 74 info.perf_event.kprobe.name_len = sizeof(buf); in verify_perf_link_info() 78 err = strncmp(u64_to_ptr(info.perf_event.kprobe.func_name), KPROBE_FUNC, in verify_perf_link_info() 135 info.perf_event.kprobe.func_name = 0x1; /* invalid address */ in kprobe_fill_invalid_user_buffer() 139 info.perf_event.kprobe.name_len = 64; in kprobe_fill_invalid_user_buffer() [all …]
|
/linux/arch/arm/include/asm/ |
H A D | kprobes.h | 25 struct kprobe; 31 struct kprobe *kp; 41 void arch_remove_kprobe(struct kprobe *);
|
/linux/arch/s390/lib/ |
H A D | test_kprobes.c | 9 static struct kprobe kp; 11 static void setup_kprobe(struct kunit *test, struct kprobe *kp, in setup_kprobe() 19 static void test_kprobe_offset(struct kunit *test, struct kprobe *kp, in test_kprobe_offset()
|
/linux/tools/bpf/bpftool/ |
H A D | link.c | 367 jsonw_uint_field(wtr, "addr", info->perf_event.kprobe.addr); in show_perf_event_kprobe_json() 369 u64_to_ptr(info->perf_event.kprobe.func_name)); in show_perf_event_kprobe_json() 370 jsonw_uint_field(wtr, "offset", info->perf_event.kprobe.offset); in show_perf_event_kprobe_json() 371 jsonw_uint_field(wtr, "missed", info->perf_event.kprobe.missed); in show_perf_event_kprobe_json() 372 jsonw_uint_field(wtr, "cookie", info->perf_event.kprobe.cookie); in show_perf_event_kprobe_json() 791 buf = u64_to_ptr(info->perf_event.kprobe.func_name); in show_perf_event_kprobe_plain() 792 if (buf[0] == '\0' && !info->perf_event.kprobe.addr) in show_perf_event_kprobe_plain() 799 if (info->perf_event.kprobe.addr) in show_perf_event_kprobe_plain() 800 printf("%llx ", info->perf_event.kprobe.addr); in show_perf_event_kprobe_plain() 802 if (info->perf_event.kprobe.offset) in show_perf_event_kprobe_plain() [all …]
|
/linux/arch/arm64/include/asm/ |
H A D | kprobes.h | 27 struct kprobe *kp; 38 void arch_remove_kprobe(struct kprobe *);
|