kretprobe
static struct kretprobe the_kretprobe = {
state->flags.kretprobe = 1;
kretprobe : 1;
flags.kretprobe ? "K" : "",
struct kretprobe my_kretprobe;
struct kretprobe __rcu *rp;
static nokprobe_inline struct kretprobe *get_kretprobe(struct kretprobe_instance *ri)
return (struct kretprobe *)ri->node.rethook->data;
static nokprobe_inline struct kretprobe *get_kretprobe(struct kretprobe_instance *ri)
static inline void arch_prepare_kretprobe(struct kretprobe *rp,
int register_kretprobe(struct kretprobe *rp);
void unregister_kretprobe(struct kretprobe *rp);
int register_kretprobes(struct kretprobe **rps, int num);
void unregister_kretprobes(struct kretprobe **rps, int num);
static inline int register_kretprobe(struct kretprobe *rp)
static inline int register_kretprobes(struct kretprobe **rps, int num)
static inline void unregister_kretprobe(struct kretprobe *rp)
static inline void unregister_kretprobes(struct kretprobe **rps, int num)
struct kretprobe;
static inline int disable_kretprobe(struct kretprobe *rp)
static inline int enable_kretprobe(struct kretprobe *rp)
struct kretprobe *rp = get_kretprobe(ri);
static inline void free_rp_inst(struct kretprobe *rp)
struct kretprobe *rp;
struct kretprobe *rp = container_of(p, struct kretprobe, kp);
struct kretprobe *rp = container_of(p, struct kretprobe, kp);
struct kretprobe *rp = (struct kretprobe *)data;
int register_kretprobe(struct kretprobe *rp)
int register_kretprobes(struct kretprobe **rps, int num)
void unregister_kretprobe(struct kretprobe *rp)
void unregister_kretprobes(struct kretprobe **rps, int num)
int register_kretprobe(struct kretprobe *rp)
int register_kretprobes(struct kretprobe **rps, int num)
void unregister_kretprobe(struct kretprobe *rp)
void unregister_kretprobes(struct kretprobe **rps, int num)
int __kprobe_event_gen_cmd_start(struct dynevent_cmd *cmd, bool kretprobe,
if (kretprobe)
struct kretprobe *rp = get_kretprobe(ri);
struct kretprobe *rp = get_kretprobe(ri);
struct kretprobe rp; /* Use rp.kp for kprobe use */
static struct kretprobe rp = {
static struct kretprobe rp2 = {
struct kretprobe *rps[2] = {&rp, &rp2};
static struct kretprobe rp3 = {
static struct kretprobe rp4 = {
struct kretprobe *rps[2] = {&rp3, &rp4};
static struct kretprobe my_kretprobe = {
static void attach_ksyms_all(struct bpf_program *empty, bool kretprobe)
opts.retprobe = kretprobe;
BENCH_TRIG_KERNEL(kretprobe, "kretprobe");