Move side_callback to libside internals
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 24 Nov 2023 22:29:26 +0000 (17:29 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 24 Nov 2023 22:29:26 +0000 (17:29 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/side/instrumentation-c-api.h
include/side/trace.h
src/side.c

index be61d6ce98eaa56a955406e6c7f79b4e04aca44a..048dfea0c37dd859f76c1c6e636b96d47a3a23dc 100644 (file)
                }, \
                .nr_callbacks = 0, \
                .enabled = 0, \
-               .callbacks = &side_empty_callback, \
+               .callbacks = (const struct side_callback *) &side_empty_callback[0], \
                .desc = &(_identifier), \
        }; \
        _linkage struct side_event_description __attribute__((section("side_event_description"))) \
index b4d56cc2e99b7dd18c3563c59fd6895312da124d..5df637fb1634c6558c55169fef32b62e36f93e74 100644 (file)
@@ -72,20 +72,9 @@ struct side_event_state_0 {
 extern "C" {
 #endif
 
-struct side_callback {
-       union {
-               void (*call)(const struct side_event_description *desc,
-                       const struct side_arg_vec *side_arg_vec,
-                       void *priv);
-               void (*call_variadic)(const struct side_event_description *desc,
-                       const struct side_arg_vec *side_arg_vec,
-                       const struct side_arg_dynamic_struct *var_struct,
-                       void *priv);
-       } u;
-       void *priv;
-};
+struct side_callback;
 
-extern const struct side_callback side_empty_callback;
+extern const char side_empty_callback[];
 
 void side_call(const struct side_event_state *state,
        const struct side_arg_vec *side_arg_vec);
index bcce6084ec5fb09e4044142f9c07d667c0c5ba2e..b781712a0bbcf1e1f188d5a2c69a6c8b1d853d45 100644 (file)
@@ -38,6 +38,19 @@ struct side_tracer_handle {
        void *priv;
 };
 
+struct side_callback {
+       union {
+               void (*call)(const struct side_event_description *desc,
+                       const struct side_arg_vec *side_arg_vec,
+                       void *priv);
+               void (*call_variadic)(const struct side_event_description *desc,
+                       const struct side_arg_vec *side_arg_vec,
+                       const struct side_arg_dynamic_struct *var_struct,
+                       void *priv);
+       } u;
+       void *priv;
+};
+
 static struct side_rcu_gp_state rcu_gp;
 
 /*
@@ -61,7 +74,7 @@ static DEFINE_SIDE_LIST_HEAD(side_tracer_list);
  * The empty callback has a NULL function callback pointer, which stops
  * iteration on the array of callbacks immediately.
  */
-const struct side_callback side_empty_callback = { };
+const char side_empty_callback[sizeof(struct side_callback)];
 
 void side_call(const struct side_event_state *event_state, const struct side_arg_vec *side_arg_vec)
 {
This page took 0.026013 seconds and 4 git commands to generate.