X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=sidebyside;f=probes%2Flttng-kretprobes.c;h=52b3f78138f94978427eedc8e197175527270274;hb=a0493bef1367458230b0319401f8533b0400cea2;hp=6b5e046f4cf363aa6d64279b4b7443178bd74d76;hpb=06254b0fe2a909dabb889fb0d022384906f6f37a;p=lttng-modules.git diff --git a/probes/lttng-kretprobes.c b/probes/lttng-kretprobes.c index 6b5e046f..52b3f781 100644 --- a/probes/lttng-kretprobes.c +++ b/probes/lttng-kretprobes.c @@ -285,6 +285,30 @@ void lttng_kretprobes_destroy_private(struct lttng_event *event) } EXPORT_SYMBOL_GPL(lttng_kretprobes_destroy_private); +int lttng_kretprobes_event_enable_state(struct lttng_event *event, + int enable) +{ + struct lttng_event *event_return; + struct lttng_krp *lttng_krp; + + if (event->instrumentation != LTTNG_KERNEL_KRETPROBE) { + return -EINVAL; + } + if (event->enabled == enable) { + return -EBUSY; + } + lttng_krp = event->u.kretprobe.lttng_krp; + event_return = lttng_krp->event[EVENT_RETURN]; + ACCESS_ONCE(event->enabled) = enable; + ACCESS_ONCE(event_return->enabled) = enable; + return 0; +} +EXPORT_SYMBOL_GPL(lttng_kretprobes_event_enable_state); + MODULE_LICENSE("GPL and additional rights"); MODULE_AUTHOR("Mathieu Desnoyers"); MODULE_DESCRIPTION("Linux Trace Toolkit Kretprobes Support"); +MODULE_VERSION(__stringify(LTTNG_MODULES_MAJOR_VERSION) "." + __stringify(LTTNG_MODULES_MINOR_VERSION) "." + __stringify(LTTNG_MODULES_PATCHLEVEL_VERSION) + LTTNG_MODULES_EXTRAVERSION);