#ifndef _LTTNG_EVENTS_H
#define _LTTNG_EVENTS_H
-#include <linux/version.h>
+#include <lttng/kernel-version.h>
#include <linux/list.h>
#include <linux/kprobes.h>
#include <linux/kref.h>
* lttng_ctx_field because cpu hotplug needs fixed-location addresses.
*/
struct lttng_perf_counter_field {
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
+#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0))
struct lttng_cpuhp_node cpuhp_prepare;
struct lttng_cpuhp_node cpuhp_online;
#else
int has_enablers_without_bytecode;
};
+struct lttng_kernel_notifier_ctx {
+ int eval_capture;
+};
+
// FIXME: Really similar to lttng_event above. Could those be merged ?
struct lttng_event_notifier {
enum lttng_event_type evtype; /* First field. */
size_t num_captures;
struct list_head capture_bytecode_runtime_head;
int has_enablers_without_bytecode;
+ int eval_capture; /* Should evaluate capture */
void (*send_notification)(struct lttng_event_notifier *event_notifier,
struct lttng_probe_ctx *lttng_probe_ctx,
- const char *interpreter_stack_data);
+ const char *interpreter_stack_data,
+ struct lttng_kernel_notifier_ctx *notif_ctx);
struct lttng_event_notifier_group *group; /* Weak ref */
};
struct lttng_ctx *ctx,
struct list_head *instance_bytecode_runtime_head,
struct list_head *enabler_bytecode_runtime_head);
+void lttng_free_event_filter_runtime(struct lttng_event *event);
+void lttng_free_event_notifier_filter_runtime(struct lttng_event_notifier *event_notifier);
int lttng_probes_init(void);
int lttng_add_callstack_to_ctx(struct lttng_ctx **ctx, int type);
#if defined(CONFIG_CGROUPS) && \
- ((LINUX_VERSION_CODE >= KERNEL_VERSION(4,6,0)) || \
+ ((LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,6,0)) || \
LTTNG_UBUNTU_KERNEL_RANGE(4,4,0,0, 4,5,0,0))
int lttng_add_cgroup_ns_to_ctx(struct lttng_ctx **ctx);
#else
#endif
#if defined(CONFIG_IPC_NS) && \
- (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
+ (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
int lttng_add_ipc_ns_to_ctx(struct lttng_ctx **ctx);
#else
static inline
#endif
#if !defined(LTTNG_MNT_NS_MISSING_HEADER) && \
- (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
+ (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
int lttng_add_mnt_ns_to_ctx(struct lttng_ctx **ctx);
#else
static inline
#endif
#if defined(CONFIG_NET_NS) && \
- (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
+ (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
int lttng_add_net_ns_to_ctx(struct lttng_ctx **ctx);
#else
static inline
#endif
#if defined(CONFIG_PID_NS) && \
- (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
+ (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
int lttng_add_pid_ns_to_ctx(struct lttng_ctx **ctx);
#else
static inline
#endif
#if defined(CONFIG_USER_NS) && \
- (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
+ (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
int lttng_add_user_ns_to_ctx(struct lttng_ctx **ctx);
#else
static inline
#endif
#if defined(CONFIG_UTS_NS) && \
- (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0))
+ (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(3,8,0))
int lttng_add_uts_ns_to_ctx(struct lttng_ctx **ctx);
#else
static inline
#endif
#if defined(CONFIG_TIME_NS) && \
- (LINUX_VERSION_CODE >= KERNEL_VERSION(5,6,0))
+ (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,6,0))
int lttng_add_time_ns_to_ctx(struct lttng_ctx **ctx);
#else
static inline