X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fevents.h;h=09ab3cf21b544133832cc9bc09b424ac85b69ccc;hb=754d534a316149de6b19f5f0d2a1dd3b246bd1c9;hp=ff0a48ff1f6b766054edf2b1209fe03b4271a70a;hpb=83b802dc7f83a776bc9aea34562ab591ba7a65ee;p=lttng-modules.git diff --git a/include/lttng/events.h b/include/lttng/events.h index ff0a48ff..09ab3cf2 100644 --- a/include/lttng/events.h +++ b/include/lttng/events.h @@ -10,12 +10,12 @@ #ifndef _LTTNG_EVENTS_H #define _LTTNG_EVENTS_H -#include #include #include #include #include #include +#include #include #include #include @@ -272,6 +272,7 @@ struct lttng_enabler_ref { struct lttng_uprobe_handler { union { struct lttng_event *event; + struct lttng_event_notifier *event_notifier; } u; loff_t offset; struct uprobe_consumer up_consumer; @@ -349,6 +350,7 @@ struct lttng_event_notifier { enum lttng_kernel_instrumentation instrumentation; union { struct lttng_kprobe kprobe; + struct lttng_uprobe uprobe; } u; /* Backward references: list of lttng_enabler_ref (ref to enablers) */ @@ -769,22 +771,24 @@ void lttng_clock_ref(void); void lttng_clock_unref(void); #if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS) -int lttng_syscalls_register(struct lttng_channel *chan, void *filter); -int lttng_syscalls_unregister(struct lttng_channel *chan); -int lttng_syscalls_destroy(struct lttng_channel *chan); -int lttng_syscall_filter_enable(struct lttng_channel *chan, +int lttng_syscalls_register_event(struct lttng_channel *chan, void *filter); +int lttng_syscalls_unregister_event(struct lttng_channel *chan); +int lttng_syscalls_destroy_event(struct lttng_channel *chan); +int lttng_syscall_filter_enable_event(struct lttng_channel *chan, struct lttng_event *event); -int lttng_syscall_filter_disable(struct lttng_channel *chan, +int lttng_syscall_filter_disable_event(struct lttng_channel *chan, struct lttng_event *event); long lttng_channel_syscall_mask(struct lttng_channel *channel, struct lttng_kernel_syscall_mask __user *usyscall_mask); + #else -static inline int lttng_syscalls_register(struct lttng_channel *chan, void *filter) +static inline int lttng_syscalls_register_event( + struct lttng_channel *chan, void *filter) { return -ENOSYS; } -static inline int lttng_syscalls_unregister(struct lttng_channel *chan) +static inline int lttng_syscalls_unregister_event(struct lttng_channel *chan) { return 0; } @@ -794,13 +798,13 @@ static inline int lttng_syscalls_destroy(struct lttng_channel *chan) return 0; } -static inline int lttng_syscall_filter_enable(struct lttng_channel *chan, +static inline int lttng_syscall_filter_enable_event(struct lttng_channel *chan, struct lttng_event *event); { return -ENOSYS; } -static inline int lttng_syscall_filter_disable(struct lttng_channel *chan, +static inline int lttng_syscall_filter_disable_event(struct lttng_channel *chan, struct lttng_event *event); { return -ENOSYS; @@ -1074,6 +1078,9 @@ void lttng_kprobes_destroy_event_notifier_private(struct lttng_event_notifier *e int lttng_event_add_callsite(struct lttng_event *event, struct lttng_kernel_event_callsite *callsite); +int lttng_event_notifier_add_callsite(struct lttng_event_notifier *event_notifier, + struct lttng_kernel_event_callsite *callsite); + #ifdef CONFIG_UPROBES int lttng_uprobes_register_event(const char *name, int fd, struct lttng_event *event); @@ -1081,6 +1088,12 @@ int lttng_uprobes_event_add_callsite(struct lttng_event *event, struct lttng_kernel_event_callsite *callsite); void lttng_uprobes_unregister_event(struct lttng_event *event); void lttng_uprobes_destroy_event_private(struct lttng_event *event); +int lttng_uprobes_register_event_notifier(const char *name, + int fd, struct lttng_event_notifier *event_notifier); +int lttng_uprobes_event_notifier_add_callsite(struct lttng_event_notifier *event_notifier, + struct lttng_kernel_event_callsite *callsite); +void lttng_uprobes_unregister_event_notifier(struct lttng_event_notifier *event_notifier); +void lttng_uprobes_destroy_event_notifier_private(struct lttng_event_notifier *event_notifier); #else static inline int lttng_uprobes_register_event(const char *name, @@ -1105,6 +1118,30 @@ static inline void lttng_uprobes_destroy_event_private(struct lttng_event *event) { } + +static inline +int lttng_uprobes_register_event_notifier(const char *name, + int fd, struct lttng_event_notifier *event_notifier) +{ + return -ENOSYS; +} + +static inline +int lttng_uprobes_event_notifier_add_callsite(struct lttng_event_notifier *event_notifier, + struct lttng_kernel_event_callsite *callsite) +{ + return -ENOSYS; +} + +static inline +void lttng_uprobes_unregister_event_notifier(struct lttng_event_notifier *event_notifier) +{ +} + +static inline +void lttng_uprobes_destroy_event_notifier_private(struct lttng_event_notifier *event_notifier) +{ +} #endif #ifdef CONFIG_KRETPROBES