Implement side per-cpu RCU
[libside.git] / src / side.c
CommitLineData
6841ae81
MD
1// SPDX-License-Identifier: MIT
2/*
3 * Copyright 2022 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
4 */
5
6#include <side/trace.h>
7#include "tracer.h"
85b765b8 8#include "rcu.h"
6841ae81 9
29b3374e
MD
10#define SIDE_EVENT_ENABLED_KERNEL_USER_EVENT_MASK 0x80000000
11
6841ae81
MD
12void side_call(const struct side_event_description *desc, const struct side_arg_vec_description *sav_desc)
13{
14 if (side_unlikely(desc->flags & SIDE_EVENT_FLAG_VARIADIC)) {
15 printf("ERROR: unexpected variadic event description\n");
16 abort();
17 }
d5cdb129 18 if (side_unlikely(*desc->enabled & SIDE_EVENT_ENABLED_KERNEL_USER_EVENT_MASK)) {
dda82f46 19 // TODO: call kernel write.
6841ae81
MD
20 }
21 //TODO: replace tracer_call by rcu iteration on list of registered callbacks
4a7d8700 22 tracer_call(desc, sav_desc, NULL);
6841ae81
MD
23}
24
25void side_call_variadic(const struct side_event_description *desc,
26 const struct side_arg_vec_description *sav_desc,
27 const struct side_arg_dynamic_event_struct *var_struct)
28{
d5cdb129 29 if (side_unlikely(*desc->enabled & SIDE_EVENT_ENABLED_KERNEL_USER_EVENT_MASK)) {
dda82f46 30 // TODO: call kernel write.
6841ae81
MD
31 }
32 //TODO: replace tracer_call by rcu iteration on list of registered callbacks
4a7d8700 33 tracer_call_variadic(desc, sav_desc, var_struct, NULL);
6841ae81 34}
This page took 0.025776 seconds and 4 git commands to generate.