X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Fevents.h;h=09b4c6724833a41479bd97bbe218b0fd64e715a3;hb=6c8c025bf7552b6073c5c1884e1493badd842f42;hp=157aaca7ad07e7f792ebd44305abe4e70c1bb106;hpb=8c0393c3679b2f047a723b23e012188b064797d4;p=lttng-modules.git diff --git a/include/lttng/events.h b/include/lttng/events.h index 157aaca7..09b4c672 100644 --- a/include/lttng/events.h +++ b/include/lttng/events.h @@ -27,11 +27,7 @@ struct lttng_channel; struct lttng_kernel_session; -struct lttng_metadata_cache; struct lttng_kernel_ring_buffer_ctx; -struct perf_event; -struct perf_event_attr; -struct lib_ring_buffer_config; /* Type description */ @@ -134,6 +130,7 @@ struct lttng_kernel_enum_desc { const char *name; const struct lttng_kernel_enum_entry **entries; unsigned int nr_entries; + const struct lttng_kernel_probe_desc *probe_desc; }; /* Event field description */ @@ -146,6 +143,10 @@ struct lttng_kernel_event_field { nofilter:1; /* do not consider for filter */ }; +#ifndef PARAMS +#define PARAMS(args...) args +#endif + #define lttng_kernel_static_type_integer(_size, _alignment, _signedness, _byte_order, _base) \ ((const struct lttng_kernel_type_common *) __LTTNG_COMPOUND_LITERAL(const struct lttng_kernel_type_integer, { \ .parent = { \ @@ -211,15 +212,20 @@ struct lttng_kernel_event_field { .encoding = lttng_kernel_string_encoding_##_encoding, \ })) -#define lttng_kernel_static_type_struct(_nr_fields, _fields, _alignment) \ - ((const struct lttng_kernel_type_common *) __LTTNG_COMPOUND_LITERAL(const struct lttng_kernel_type_struct, { \ +#define lttng_kernel_static_type_struct_init(_nr_fields, _fields, _alignment) \ + { \ .parent = { \ .type = lttng_kernel_type_struct, \ }, \ .nr_fields = (_nr_fields), \ .fields = _fields, \ .alignment = (_alignment), \ - })) + } + +#define lttng_kernel_static_type_struct(_nr_fields, _fields, _alignment) \ + ((const struct lttng_kernel_type_common *) __LTTNG_COMPOUND_LITERAL(const struct lttng_kernel_type_struct, \ + lttng_kernel_static_type_struct_init(_nr_fields, PARAMS(_fields), _alignment) \ + )) #define lttng_kernel_static_type_variant(_nr_choices, _choices, _tag_name, _alignment) \ ((const struct lttng_kernel_type_common *) __LTTNG_COMPOUND_LITERAL(const struct lttng_kernel_type_variant, { \ @@ -297,13 +303,18 @@ struct lttng_kernel_probe_ctx { uint8_t interruptible; }; +struct lttng_kernel_tracepoint_class { + void (*probe_callback)(void); + const struct lttng_kernel_event_field **fields; /* event payload */ + unsigned int nr_fields; + const struct lttng_kernel_probe_desc *probe_desc; +}; + struct lttng_kernel_event_desc { const char *event_name; /* lttng-modules name */ const char *event_kname; /* Linux kernel name (tracepoints) */ const struct lttng_kernel_probe_desc *probe_desc; - void (*probe_callback)(void); - const struct lttng_kernel_event_field **fields; /* event payload */ - unsigned int nr_fields; + const struct lttng_kernel_tracepoint_class *tp_class; struct module *owner; }; @@ -388,22 +399,6 @@ struct lttng_kernel_channel_buffer_ops { const char __user *src, size_t len); }; -struct lttng_syscall_filter; - -#define LTTNG_EVENT_HT_BITS 12 -#define LTTNG_EVENT_HT_SIZE (1U << LTTNG_EVENT_HT_BITS) - -struct lttng_event_ht { - struct hlist_head table[LTTNG_EVENT_HT_SIZE]; -}; - -#define LTTNG_EVENT_NOTIFIER_HT_BITS 12 -#define LTTNG_EVENT_NOTIFIER_HT_SIZE (1U << LTTNG_EVENT_NOTIFIER_HT_BITS) - -struct lttng_event_notifier_ht { - struct hlist_head table[LTTNG_EVENT_NOTIFIER_HT_SIZE]; -}; - struct lttng_channel { unsigned int id; struct channel *chan; /* Channel buffers */