1 // SPDX-License-Identifier: MIT
3 * Copyright 2022 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
11 #include <side/trace.h>
14 /* User code example */
16 static side_define_event(my_provider_event
, "myprovider", "myevent", SIDE_LOGLEVEL_DEBUG
,
18 side_field(SIDE_TYPE_U32
, "abc"),
19 side_field(SIDE_TYPE_S64
, "def"),
20 side_field(SIDE_TYPE_DYNAMIC
, "dynamic"),
25 void test_fields(void)
30 my_provider_event
.enabled
= 1;
31 side_event(&my_provider_event
, side_arg_list(side_arg_u32(uw
), side_arg_s64(sdw
), side_arg_string("zzz")));
34 static side_define_event(my_provider_event2
, "myprovider", "myevent2", SIDE_LOGLEVEL_DEBUG
,
36 side_field_struct("structfield",
38 side_field(SIDE_TYPE_U32
, "x"),
39 side_field(SIDE_TYPE_S64
, "y"),
42 side_field(SIDE_TYPE_U8
, "z"),
47 void test_struct(void)
49 my_provider_event2
.enabled
= 1;
50 side_event_cond(&my_provider_event2
) {
51 side_arg_define_vec(mystruct
, side_arg_list(side_arg_u32(21), side_arg_s64(22)));
52 side_event_call(&my_provider_event2
, side_arg_list(side_arg_struct(&mystruct
), side_arg_u8(55)));
56 static side_define_event(my_provider_event_array
, "myprovider", "myarray", SIDE_LOGLEVEL_DEBUG
,
58 side_field_array("arr", side_elem(SIDE_TYPE_U32
), 3),
59 side_field(SIDE_TYPE_S64
, "v"),
66 my_provider_event_array
.enabled
= 1;
67 side_event_cond(&my_provider_event_array
) {
68 side_arg_define_vec(myarray
, side_arg_list(side_arg_u32(1), side_arg_u32(2), side_arg_u32(3)));
69 side_event_call(&my_provider_event_array
, side_arg_list(side_arg_array(&myarray
), side_arg_s64(42)));
73 static side_define_event(my_provider_event_vla
, "myprovider", "myvla", SIDE_LOGLEVEL_DEBUG
,
75 side_field_vla("vla", side_elem(SIDE_TYPE_U32
)),
76 side_field(SIDE_TYPE_S64
, "v"),
83 my_provider_event_vla
.enabled
= 1;
84 side_event_cond(&my_provider_event_vla
) {
85 side_arg_define_vec(myvla
, side_arg_list(side_arg_u32(1), side_arg_u32(2), side_arg_u32(3)));
86 side_event_call(&my_provider_event_vla
, side_arg_list(side_arg_vla(&myvla
), side_arg_s64(42)));
90 struct app_visitor_ctx
{
96 enum side_visitor_status
test_visitor(const struct side_tracer_visitor_ctx
*tracer_ctx
, void *_ctx
)
98 struct app_visitor_ctx
*ctx
= (struct app_visitor_ctx
*) _ctx
;
99 uint32_t length
= ctx
->length
, i
;
101 for (i
= 0; i
< length
; i
++) {
102 const struct side_arg_vec elem
= {
103 .type
= SIDE_TYPE_U32
,
105 .side_u32
= ctx
->ptr
[i
],
108 tracer_ctx
->write_elem(tracer_ctx
, &elem
);
110 return SIDE_VISITOR_STATUS_OK
;
113 static uint32_t testarray
[] = { 1, 2, 3, 4, 5, 6, 7, 8 };
115 static side_define_event(my_provider_event_vla_visitor
, "myprovider", "myvlavisit", SIDE_LOGLEVEL_DEBUG
,
117 side_field_vla_visitor("vlavisit", side_elem(SIDE_TYPE_U32
), test_visitor
),
118 side_field(SIDE_TYPE_S64
, "v"),
123 void test_vla_visitor(void)
125 my_provider_event_vla_visitor
.enabled
= 1;
126 side_event_cond(&my_provider_event_vla_visitor
) {
127 struct app_visitor_ctx ctx
= {
129 .length
= SIDE_ARRAY_SIZE(testarray
),
131 side_event_call(&my_provider_event_vla_visitor
, side_arg_list(side_arg_vla_visitor(&ctx
), side_arg_s64(42)));
135 static int64_t array_fixint
[] = { -444, 555, 123, 2897432587 };
137 static side_define_event(my_provider_event_array_fixint
, "myprovider", "myarrayfixint", SIDE_LOGLEVEL_DEBUG
,
139 side_field_array("arrfixint", side_elem(SIDE_TYPE_S64
), SIDE_ARRAY_SIZE(array_fixint
)),
140 side_field(SIDE_TYPE_S64
, "v"),
145 void test_array_fixint(void)
147 my_provider_event_array_fixint
.enabled
= 1;
148 side_event(&my_provider_event_array_fixint
,
149 side_arg_list(side_arg_array_s64(array_fixint
), side_arg_s64(42)));
152 static int64_t vla_fixint
[] = { -444, 555, 123, 2897432587 };
154 static side_define_event(my_provider_event_vla_fixint
, "myprovider", "myvlafixint", SIDE_LOGLEVEL_DEBUG
,
156 side_field_vla("vlafixint", side_elem(SIDE_TYPE_S64
)),
157 side_field(SIDE_TYPE_S64
, "v"),
162 void test_vla_fixint(void)
164 my_provider_event_vla_fixint
.enabled
= 1;
165 side_event(&my_provider_event_vla_fixint
,
166 side_arg_list(side_arg_vla_s64(vla_fixint
, SIDE_ARRAY_SIZE(vla_fixint
)), side_arg_s64(42)));