Use side_ptr_t for enum mappings pointers
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 21 Sep 2023 06:39:56 +0000 (07:39 +0100)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Thu, 21 Sep 2023 06:39:56 +0000 (07:39 +0100)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/side/trace.h
src/tracer.c

index b3b8f6ea1b82206b366a7cc0c881d8a3ae11a8b0..210cb3f04bf7913db1344ac45ed8fb3365289c34 100644 (file)
@@ -330,7 +330,7 @@ struct side_enum_mapping {
 } SIDE_PACKED;
 
 struct side_enum_mappings {
-       const struct side_enum_mapping *mappings;
+       side_ptr_t(const struct side_enum_mapping) mappings;
        side_ptr_t(const struct side_attr) attr;
        uint32_t nr_mappings;
        uint32_t nr_attr;
@@ -343,7 +343,7 @@ struct side_enum_bitmap_mapping {
 } SIDE_PACKED;
 
 struct side_enum_bitmap_mappings {
-       const struct side_enum_bitmap_mapping *mappings;
+       side_ptr_t(const struct side_enum_bitmap_mapping) mappings;
        side_ptr_t(const struct side_attr) attr;
        uint32_t nr_mappings;
        uint32_t nr_attr;
@@ -377,12 +377,12 @@ struct side_type_vla_visitor {
 } SIDE_PACKED;
 
 struct side_type_enum {
-       const struct side_enum_mappings *mappings;
+       side_ptr_t(const struct side_enum_mappings) mappings;
        const struct side_type *elem_type;
 } SIDE_PACKED;
 
 struct side_type_enum_bitmap {
-       const struct side_enum_bitmap_mappings *mappings;
+       side_ptr_t(const struct side_enum_bitmap_mappings) mappings;
        const struct side_type *elem_type;
 } SIDE_PACKED;
 
@@ -419,7 +419,7 @@ struct side_type_gather_string {
 } SIDE_PACKED;
 
 struct side_type_gather_enum {
-       const struct side_enum_mappings *mappings;
+       side_ptr_t(const struct side_enum_mappings) mappings;
        const struct side_type *elem_type;
 } SIDE_PACKED;
 
@@ -723,7 +723,7 @@ struct side_event_description {
 
 #define side_define_enum(_identifier, _mappings, _attr...) \
        const struct side_enum_mappings _identifier = { \
-               .mappings = _mappings, \
+               .mappings = SIDE_PTR_INIT(_mappings), \
                .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
                .nr_mappings = SIDE_ARRAY_SIZE(SIDE_PARAM(_mappings)), \
                .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
@@ -756,7 +756,7 @@ struct side_event_description {
 
 #define side_define_enum_bitmap(_identifier, _mappings, _attr...) \
        const struct side_enum_bitmap_mappings _identifier = { \
-               .mappings = _mappings, \
+               .mappings = SIDE_PTR_INIT(_mappings), \
                .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
                .nr_mappings = SIDE_ARRAY_SIZE(SIDE_PARAM(_mappings)), \
                .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \
@@ -989,7 +989,7 @@ struct side_event_description {
                .type = SIDE_TYPE_ENUM, \
                .u = { \
                        .side_enum = { \
-                               .mappings = _mappings, \
+                               .mappings = SIDE_PTR_INIT(_mappings), \
                                .elem_type = _elem_type, \
                        }, \
                }, \
@@ -1002,7 +1002,7 @@ struct side_event_description {
                .type = SIDE_TYPE_ENUM_BITMAP, \
                .u = { \
                        .side_enum_bitmap = { \
-                               .mappings = _mappings, \
+                               .mappings = SIDE_PTR_INIT(_mappings), \
                                .elem_type = _elem_type, \
                        }, \
                }, \
@@ -1337,7 +1337,7 @@ struct side_event_description {
                .type = SIDE_TYPE_GATHER_ENUM, \
                .u = { \
                        .side_enum = { \
-                               .mappings = _mappings, \
+                               .mappings = SIDE_PTR_INIT(_mappings), \
                                .elem_type = _elem_type, \
                        }, \
                }, \
index 59f1b1ae8d27248890a92d4c9f1fca1c8571c640..170c6119ad98e852c663fcc9de9bbc6f724f8aef 100644 (file)
@@ -451,7 +451,7 @@ void print_enum_labels(const struct side_enum_mappings *mappings, union int64_va
 
        printf(", labels: [ ");
        for (i = 0; i < mappings->nr_mappings; i++) {
-               const struct side_enum_mapping *mapping = &mappings->mappings[i];
+               const struct side_enum_mapping *mapping = &side_ptr_get(mappings->mappings)[i];
 
                if (mapping->range_end < mapping->range_begin) {
                        fprintf(stderr, "ERROR: Unexpected enum range: %" PRIu64 "-%" PRIu64 "\n",
@@ -471,7 +471,7 @@ void print_enum_labels(const struct side_enum_mappings *mappings, union int64_va
 static
 void tracer_print_enum(const struct side_type *type_desc, const struct side_arg *item)
 {
-       const struct side_enum_mappings *mappings = type_desc->u.side_enum.mappings;
+       const struct side_enum_mappings *mappings = side_ptr_get(type_desc->u.side_enum.mappings);
        const struct side_type *elem_type = type_desc->u.side_enum.elem_type;
        union int64_value v64;
 
@@ -517,7 +517,7 @@ static
 void tracer_print_enum_bitmap(const struct side_type *type_desc,
                const struct side_arg *item)
 {
-       const struct side_enum_bitmap_mappings *side_enum_mappings = type_desc->u.side_enum_bitmap.mappings;
+       const struct side_enum_bitmap_mappings *side_enum_mappings = side_ptr_get(type_desc->u.side_enum_bitmap.mappings);
        const struct side_type *enum_elem_type = type_desc->u.side_enum_bitmap.elem_type, *elem_type;
        uint32_t i, print_count = 0, stride_bit, nr_items;
        const struct side_arg *array_item;
@@ -556,7 +556,7 @@ void tracer_print_enum_bitmap(const struct side_type *type_desc,
        printf("%s", side_enum_mappings->nr_attr ? ", " : "");
        printf("labels: [ ");
        for (i = 0; i < side_enum_mappings->nr_mappings; i++) {
-               const struct side_enum_bitmap_mapping *mapping = &side_enum_mappings->mappings[i];
+               const struct side_enum_bitmap_mapping *mapping = &side_ptr_get(side_enum_mappings->mappings)[i];
                bool match = false;
                uint64_t bit;
 
@@ -1353,7 +1353,7 @@ uint32_t tracer_print_gather_type(const struct side_type *type_desc, const void
 static
 uint32_t tracer_print_gather_enum_type(const struct side_type_gather *type_gather, const void *_ptr)
 {
-       const struct side_enum_mappings *mappings = type_gather->u.side_enum.mappings;
+       const struct side_enum_mappings *mappings = side_ptr_get(type_gather->u.side_enum.mappings);
        const struct side_type *enum_elem_type = type_gather->u.side_enum.elem_type;
        const struct side_type_gather_integer *side_integer = &enum_elem_type->u.side_gather.u.side_integer;
        enum side_type_gather_access_mode access_mode =
This page took 0.035673 seconds and 4 git commands to generate.