Add variadic event flag
[libside.git] / include / side / trace.h
index 51bbf08c28c8fa7158a2ddfdf4a2d1d45f8a1234..44e21c78d3257512cf8ec048961a4a41a5e0a6ef 100644 (file)
@@ -140,11 +140,16 @@ struct side_event_field {
        struct side_type_description side_type;
 };
 
+enum side_event_flags {
+       SIDE_EVENT_FLAG_VARIADIC = (1 << 0),
+};
+
 struct side_event_description {
        uint32_t version;
        uint32_t enabled;
        uint32_t loglevel;      /* enum side_loglevel */
        uint32_t nr_fields;
+       uint64_t flags;
        const char *provider_name;
        const char *event_name;
        const struct side_event_field *fields;
@@ -471,17 +476,25 @@ struct side_tracer_dynamic_vla_visitor_ctx {
        side_event_cond(desc) \
                side_event_call_variadic(desc, SIDE_PARAM(sav), SIDE_PARAM(var))
 
-#define side_define_event(_identifier, _provider, _event, _loglevel, _fields) \
+#define _side_define_event(_identifier, _provider, _event, _loglevel, _fields, _flags) \
        struct side_event_description _identifier = { \
                .version = 0, \
                .enabled = 0, \
                .loglevel = _loglevel, \
                .nr_fields = SIDE_ARRAY_SIZE(SIDE_PARAM(_fields)), \
+               .flags = (_flags), \
                .provider_name = _provider, \
                .event_name = _event, \
                .fields = _fields, \
        }
 
+#define side_define_event(_identifier, _provider, _event, _loglevel, _fields) \
+       _side_define_event(_identifier, _provider, _event, _loglevel, SIDE_PARAM(_fields), 0)
+
+#define side_define_event_variadic(_identifier, _provider, _event, _loglevel, _fields) \
+       _side_define_event(_identifier, _provider, _event, _loglevel, SIDE_PARAM(_fields), \
+                        SIDE_EVENT_FLAG_VARIADIC)
+
 #define side_declare_event(_identifier) \
        struct side_event_description _identifier
 
This page took 0.041372 seconds and 4 git commands to generate.