Revert "Remove const on all side_arg"
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 1 Dec 2023 21:58:53 +0000 (16:58 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 1 Dec 2023 21:58:53 +0000 (16:58 -0500)
This reverts commit 511ee756cf8aa9259489b4386feb2911bb58c20a.

Re-introduce constness of side_arg to ensure that side_calls are pure.

This will facilitate integration with various runtimes and eliminate
corner-cases.

We plan on copying side argument vectors within libside when translating
from visitor types to flattened types.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/side/abi/type-argument.h
include/side/instrumentation-c-api.h

index d62ce1d094939045d0a46294b6c383c67b0f964a..fd1979c0157657cd0ef4b90a3acb8e8f051bd469 100644 (file)
@@ -71,7 +71,7 @@ union side_arg_static {
 
        /* Stack-copy compound types */
        side_ptr_t(const struct side_arg_vec) side_struct;
-       side_ptr_t(struct side_arg_variant) side_variant;
+       side_ptr_t(const struct side_arg_variant) side_variant;
        side_ptr_t(const struct side_arg_vec) side_array;
        side_ptr_t(const struct side_arg_vec) side_vla;
        void *side_vla_app_visitor_ctx;
@@ -95,7 +95,7 @@ union side_arg_static {
 side_check_size(union side_arg_static, 32);
 
 struct side_arg_dynamic_vla {
-       side_ptr_t(struct side_arg) sav;
+       side_ptr_t(const struct side_arg) sav;
        side_ptr_t(const struct side_attr) attr;
        uint32_t len;
        uint32_t nr_attr;
@@ -103,7 +103,7 @@ struct side_arg_dynamic_vla {
 side_check_size(struct side_arg_dynamic_vla, 40);
 
 struct side_arg_dynamic_struct {
-       side_ptr_t(struct side_arg_dynamic_field) fields;
+       side_ptr_t(const struct side_arg_dynamic_field) fields;
        side_ptr_t(const struct side_attr) attr;
        uint32_t len;
        uint32_t nr_attr;
@@ -179,14 +179,14 @@ struct side_arg_variant {
 side_check_size(struct side_arg_variant, 128);
 
 struct side_arg_vec {
-       side_ptr_t(struct side_arg) sav;
+       side_ptr_t(const struct side_arg) sav;
        uint32_t len;
 } SIDE_PACKED;
 side_check_size(struct side_arg_vec, 20);
 
 struct side_arg_dynamic_field {
        side_ptr_t(const char) field_name;
-       struct side_arg elem;
+       const struct side_arg elem;
 } SIDE_PACKED;
 side_check_size(struct side_arg_dynamic_field, 16 + sizeof(const struct side_arg));
 
index 576904c3bc0e32f8ce5878898f5d957545270605..3ad3b0c08bdbb83202117663ba88c1fbd4f46e5b 100644 (file)
 #define side_arg_struct(_side_type)    { .type = SIDE_ENUM_INIT(SIDE_TYPE_STRUCT), .flags = 0, .u = { .side_static = { .side_struct = SIDE_PTR_INIT(_side_type) } } }
 
 #define side_arg_define_variant(_identifier, _selector_val, _option) \
-       struct side_arg_variant _identifier = { \
+       const struct side_arg_variant _identifier = { \
                .selector = _selector_val, \
                .option = _option, \
        }
        }
 
 #define side_arg_dynamic_define_vec(_identifier, _sav, _attr...) \
-       struct side_arg _identifier##_vec[] = { _sav }; \
+       const struct side_arg _identifier##_vec[] = { _sav }; \
        const struct side_arg_dynamic_vla _identifier = { \
                .sav = SIDE_PTR_INIT(_identifier##_vec), \
                .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
        }
 
 #define side_arg_dynamic_define_struct(_identifier, _struct_fields, _attr...) \
-       struct side_arg_dynamic_field _identifier##_fields[] = { _struct_fields }; \
+       const struct side_arg_dynamic_field _identifier##_fields[] = { _struct_fields }; \
        const struct side_arg_dynamic_struct _identifier = { \
                .fields = SIDE_PTR_INIT(_identifier##_fields), \
                .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
        }
 
 #define side_arg_define_vec(_identifier, _sav) \
-       struct side_arg _identifier##_vec[] = { _sav }; \
+       const struct side_arg _identifier##_vec[] = { _sav }; \
        const struct side_arg_vec _identifier = { \
                .sav = SIDE_PTR_INIT(_identifier##_vec), \
                .len = SIDE_ARRAY_SIZE(_identifier##_vec), \
 
 #define side_event_call(_identifier, _sav) \
        { \
-               struct side_arg side_sav[] = { _sav }; \
+               const struct side_arg side_sav[] = { _sav }; \
                const struct side_arg_vec side_arg_vec = { \
                        .sav = SIDE_PTR_INIT(side_sav), \
                        .len = SIDE_ARRAY_SIZE(side_sav), \
 
 #define side_event_call_variadic(_identifier, _sav, _var_fields, _attr...) \
        { \
-               struct side_arg side_sav[] = { _sav }; \
+               const struct side_arg side_sav[] = { _sav }; \
                const struct side_arg_vec side_arg_vec = { \
                        .sav = SIDE_PTR_INIT(side_sav), \
                        .len = SIDE_ARRAY_SIZE(side_sav), \
                }; \
-               struct side_arg_dynamic_field side_fields[] = { _var_fields }; \
+               const struct side_arg_dynamic_field side_fields[] = { _var_fields }; \
                const struct side_arg_dynamic_struct var_struct = { \
                        .fields = SIDE_PTR_INIT(side_fields), \
                        .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
This page took 0.026844 seconds and 4 git commands to generate.