Remove "fixint" special-cases, now covered by vla/array gather
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 8 Nov 2022 16:52:17 +0000 (11:52 -0500)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Tue, 8 Nov 2022 16:52:17 +0000 (11:52 -0500)
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
include/side/trace.h
src/test.c
src/tracer.c

index b003bca336f47e0641993ed44783222a3ffd0ff5..845a9acd5a5694679e19732ad1ac857d19244ca4 100644 (file)
@@ -110,30 +110,6 @@ enum side_type_label {
        SIDE_TYPE_VLA,
        SIDE_TYPE_VLA_VISITOR,
 
-       SIDE_TYPE_ARRAY_U8,
-       SIDE_TYPE_ARRAY_U16,
-       SIDE_TYPE_ARRAY_U32,
-       SIDE_TYPE_ARRAY_U64,
-       SIDE_TYPE_ARRAY_S8,
-       SIDE_TYPE_ARRAY_S16,
-       SIDE_TYPE_ARRAY_S32,
-       SIDE_TYPE_ARRAY_S64,
-       SIDE_TYPE_ARRAY_BYTE,
-       SIDE_TYPE_ARRAY_POINTER32,
-       SIDE_TYPE_ARRAY_POINTER64,
-
-       SIDE_TYPE_VLA_U8,
-       SIDE_TYPE_VLA_U16,
-       SIDE_TYPE_VLA_U32,
-       SIDE_TYPE_VLA_U64,
-       SIDE_TYPE_VLA_S8,
-       SIDE_TYPE_VLA_S16,
-       SIDE_TYPE_VLA_S32,
-       SIDE_TYPE_VLA_S64,
-       SIDE_TYPE_VLA_BYTE,
-       SIDE_TYPE_VLA_POINTER32,
-       SIDE_TYPE_VLA_POINTER64,
-
        /* Stack-copy enumeration types */
        SIDE_TYPE_ENUM,
        SIDE_TYPE_ENUM_BITMAP,
@@ -519,11 +495,6 @@ struct side_arg_static {
        const struct side_arg_vec *side_array;
        const struct side_arg_vec *side_vla;
        void *side_vla_app_visitor_ctx;
-       void *side_array_fixint;
-       struct {
-               void *p;
-               uint32_t length;
-       } SIDE_PACKED side_vla_fixint;
 
        /* Gather basic types */
        void *side_bool_gather_ptr;
@@ -1275,28 +1246,6 @@ struct side_event_description {
 #define side_arg_vla(_side_type)       { .type = SIDE_TYPE_VLA, .u = { .side_static = { .side_vla = (_side_type) } } }
 #define side_arg_vla_visitor(_ctx)     { .type = SIDE_TYPE_VLA_VISITOR, .u = { .side_static = { .side_vla_app_visitor_ctx = (_ctx) } } }
 
-#define side_arg_array_u8(_ptr)                { .type = SIDE_TYPE_ARRAY_U8, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-#define side_arg_array_u16(_ptr)       { .type = SIDE_TYPE_ARRAY_U16, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-#define side_arg_array_u32(_ptr)       { .type = SIDE_TYPE_ARRAY_U32, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-#define side_arg_array_u64(_ptr)       { .type = SIDE_TYPE_ARRAY_U64, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-#define side_arg_array_s8(_ptr)                { .type = SIDE_TYPE_ARRAY_S8, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-#define side_arg_array_s16(_ptr)       { .type = SIDE_TYPE_ARRAY_S16, .u = { .side_static = { .side_array_fixint  = (_ptr) } } }
-#define side_arg_array_s32(_ptr)       { .type = SIDE_TYPE_ARRAY_S32, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-#define side_arg_array_s64(_ptr)       { .type = SIDE_TYPE_ARRAY_S64, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-#define side_arg_array_byte(_ptr)      { .type = SIDE_TYPE_ARRAY_BYTE, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-#define side_arg_array_pointer(_ptr)   { .type = SIDE_TYPE_ARRAY_POINTER_HOST, .u = { .side_static = { .side_array_fixint = (_ptr) } } }
-
-#define side_arg_vla_u8(_ptr, _length) { .type = SIDE_TYPE_VLA_U8, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } }
-#define side_arg_vla_u16(_ptr, _length)        { .type = SIDE_TYPE_VLA_U16, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } } }
-#define side_arg_vla_u32(_ptr, _length)        { .type = SIDE_TYPE_VLA_U32, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } } }
-#define side_arg_vla_u64(_ptr, _length)        { .type = SIDE_TYPE_VLA_U64, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } } }
-#define side_arg_vla_s8(_ptr, _length) { .type = SIDE_TYPE_VLA_S8, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } } }
-#define side_arg_vla_s16(_ptr, _length)        { .type = SIDE_TYPE_VLA_S16, .u = { .side_static = { .side_vla_fixint  = { .p = (_ptr), .length = (_length) } } } }
-#define side_arg_vla_s32(_ptr, _length)        { .type = SIDE_TYPE_VLA_S32, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } } }
-#define side_arg_vla_s64(_ptr, _length)        { .type = SIDE_TYPE_VLA_S64, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } } }
-#define side_arg_vla_byte(_ptr, _length) { .type = SIDE_TYPE_VLA_BYTE, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } } }
-#define side_arg_vla_pointer(_ptr, _length) { .type = SIDE_TYPE_VLA_POINTER_HOST, .u = { .side_static = { .side_vla_fixint = { .p = (_ptr), .length = (_length) } } } }
-
 /* Gather field arguments */
 
 #define side_arg_gather_bool(_ptr)             { .type = SIDE_TYPE_GATHER_BOOL, .u = { .side_static = { .side_bool_gather_ptr = (_ptr) } } }
index e493032356025cacc7c3950ff4141bf51d9a77a8..c29ddc3251588758430fd5b457213963fc27e74b 100644 (file)
@@ -278,40 +278,6 @@ void test_vla_visitor_2d(void)
        }
 }
 
-static int64_t array_fixint[] = { -444, 555, 123, 2897432587 };
-
-side_static_event(my_provider_event_array_fixint, "myprovider", "myarrayfixint", SIDE_LOGLEVEL_DEBUG,
-       side_field_list(
-               side_field_array("arrfixint", side_elem(side_type_s64(side_attr_list())), SIDE_ARRAY_SIZE(array_fixint), side_attr_list()),
-               side_field_s64("v", side_attr_list()),
-       ),
-       side_attr_list()
-);
-
-static
-void test_array_fixint(void)
-{
-       side_event(my_provider_event_array_fixint,
-               side_arg_list(side_arg_array_s64(array_fixint), side_arg_s64(42)));
-}
-
-static int64_t vla_fixint[] = { -444, 555, 123, 2897432587 };
-
-side_static_event(my_provider_event_vla_fixint, "myprovider", "myvlafixint", SIDE_LOGLEVEL_DEBUG,
-       side_field_list(
-               side_field_vla("vlafixint", side_elem(side_type_s64(side_attr_list())), side_attr_list()),
-               side_field_s64("v", side_attr_list()),
-       ),
-       side_attr_list()
-);
-
-static
-void test_vla_fixint(void)
-{
-       side_event(my_provider_event_vla_fixint,
-               side_arg_list(side_arg_vla_s64(vla_fixint, SIDE_ARRAY_SIZE(vla_fixint)), side_arg_s64(42)));
-}
-
 side_static_event(my_provider_event_dynamic_basic,
        "myprovider", "mydynamicbasic", SIDE_LOGLEVEL_DEBUG,
        side_field_list(
@@ -1222,14 +1188,10 @@ void test_enum_bitmap(void)
        }
 }
 
-static uint8_t blob_fixint[] = { 0x55, 0x44, 0x33, 0x22, 0x11 };
-
 side_static_event_variadic(my_provider_event_blob, "myprovider", "myeventblob", SIDE_LOGLEVEL_DEBUG,
        side_field_list(
                side_field_byte("blobfield", side_attr_list()),
                side_field_array("arrayblob", side_elem(side_type_byte(side_attr_list())), 3, side_attr_list()),
-               side_field_array("arrayblobfix", side_elem(side_type_byte(side_attr_list())), SIDE_ARRAY_SIZE(blob_fixint), side_attr_list()),
-               side_field_vla("vlablobfix", side_elem(side_type_byte(side_attr_list())), side_attr_list()),
        ),
        side_attr_list()
 );
@@ -1250,8 +1212,6 @@ void test_blob(void)
                        side_arg_list(
                                side_arg_byte(0x55),
                                side_arg_array(&myarray),
-                               side_arg_array_byte(blob_fixint),
-                               side_arg_vla_byte(blob_fixint, SIDE_ARRAY_SIZE(blob_fixint)),
                        ),
                        side_arg_list(
                                side_arg_dynamic_field("varblobfield",
@@ -2066,8 +2026,6 @@ int main()
        test_vla();
        test_vla_visitor();
        test_vla_visitor_2d();
-       test_array_fixint();
-       test_vla_fixint();
        test_dynamic_basic_type();
        test_dynamic_vla();
        test_dynamic_null();
index ed7d3420595357ffdb44889cd438286f39f640e3..938946d109f853c1ae219aa989ecd30f5595cdee 100644 (file)
@@ -30,10 +30,6 @@ void tracer_print_vla(const struct side_type *type_desc, const struct side_arg_v
 static
 void tracer_print_vla_visitor(const struct side_type *type_desc, void *app_ctx);
 static
-void tracer_print_array_fixint(const struct side_type *type_desc, const struct side_arg *item);
-static
-void tracer_print_vla_fixint(const struct side_type *type_desc, const struct side_arg *item);
-static
 void tracer_print_dynamic(const struct side_arg *dynamic_item);
 static
 uint32_t tracer_print_gather_bool_type(const struct side_type_gather *type_gather, const void *_ptr);
@@ -786,50 +782,6 @@ void tracer_print_type(const struct side_type *type_desc, const struct side_arg
        enum side_type_label type;
 
        switch (type_desc->type) {
-       case SIDE_TYPE_ARRAY:
-               switch (item->type) {
-               case SIDE_TYPE_ARRAY_U8:
-               case SIDE_TYPE_ARRAY_U16:
-               case SIDE_TYPE_ARRAY_U32:
-               case SIDE_TYPE_ARRAY_U64:
-               case SIDE_TYPE_ARRAY_S8:
-               case SIDE_TYPE_ARRAY_S16:
-               case SIDE_TYPE_ARRAY_S32:
-               case SIDE_TYPE_ARRAY_S64:
-               case SIDE_TYPE_ARRAY_POINTER32:
-               case SIDE_TYPE_ARRAY_POINTER64:
-               case SIDE_TYPE_ARRAY_BYTE:
-               case SIDE_TYPE_ARRAY:
-                       break;
-               default:
-                       fprintf(stderr, "ERROR: type mismatch between description and arguments\n");
-                       abort();
-                       break;
-               }
-               break;
-
-       case SIDE_TYPE_VLA:
-               switch (item->type) {
-               case SIDE_TYPE_VLA_U8:
-               case SIDE_TYPE_VLA_U16:
-               case SIDE_TYPE_VLA_U32:
-               case SIDE_TYPE_VLA_U64:
-               case SIDE_TYPE_VLA_S8:
-               case SIDE_TYPE_VLA_S16:
-               case SIDE_TYPE_VLA_S32:
-               case SIDE_TYPE_VLA_S64:
-               case SIDE_TYPE_VLA_BYTE:
-               case SIDE_TYPE_VLA_POINTER32:
-               case SIDE_TYPE_VLA_POINTER64:
-               case SIDE_TYPE_VLA:
-                       break;
-               default:
-                       fprintf(stderr, "ERROR: type mismatch between description and arguments\n");
-                       abort();
-                       break;
-               }
-               break;
-
        case SIDE_TYPE_ENUM:
                switch (item->type) {
                case SIDE_TYPE_U8:
@@ -1003,32 +955,6 @@ void tracer_print_type(const struct side_type *type_desc, const struct side_arg
        case SIDE_TYPE_VLA_VISITOR:
                tracer_print_vla_visitor(type_desc, item->u.side_static.side_vla_app_visitor_ctx);
                break;
-       case SIDE_TYPE_ARRAY_U8:
-       case SIDE_TYPE_ARRAY_U16:
-       case SIDE_TYPE_ARRAY_U32:
-       case SIDE_TYPE_ARRAY_U64:
-       case SIDE_TYPE_ARRAY_S8:
-       case SIDE_TYPE_ARRAY_S16:
-       case SIDE_TYPE_ARRAY_S32:
-       case SIDE_TYPE_ARRAY_S64:
-       case SIDE_TYPE_ARRAY_BYTE:
-       case SIDE_TYPE_ARRAY_POINTER32:
-       case SIDE_TYPE_ARRAY_POINTER64:
-               tracer_print_array_fixint(type_desc, item);
-               break;
-       case SIDE_TYPE_VLA_U8:
-       case SIDE_TYPE_VLA_U16:
-       case SIDE_TYPE_VLA_U32:
-       case SIDE_TYPE_VLA_U64:
-       case SIDE_TYPE_VLA_S8:
-       case SIDE_TYPE_VLA_S16:
-       case SIDE_TYPE_VLA_S32:
-       case SIDE_TYPE_VLA_S64:
-       case SIDE_TYPE_VLA_BYTE:
-       case SIDE_TYPE_VLA_POINTER32:
-       case SIDE_TYPE_VLA_POINTER64:
-               tracer_print_vla_fixint(type_desc, item);
-               break;
 
        /* Dynamic types */
        case SIDE_TYPE_DYNAMIC_NULL:
@@ -1440,238 +1366,6 @@ void tracer_print_vla_visitor(const struct side_type *type_desc, void *app_ctx)
        printf(" ]");
 }
 
-void tracer_print_array_fixint(const struct side_type *type_desc, const struct side_arg *item)
-{
-       const struct side_type *elem_type = type_desc->u.side_array.elem_type;
-       uint32_t i, side_sav_len = type_desc->u.side_array.length;
-       void *p = item->u.side_static.side_array_fixint;
-       enum side_type_label side_type;
-
-       print_attributes("attr", ":", type_desc->u.side_array.attr, type_desc->u.side_array.nr_attr);
-       printf("%s", type_desc->u.side_array.nr_attr ? ", " : "");
-       printf("elements: ");
-       switch (item->type) {
-       case SIDE_TYPE_ARRAY_U8:
-               if (elem_type->type != SIDE_TYPE_U8)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_U16:
-               if (elem_type->type != SIDE_TYPE_U16)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_U32:
-               if (elem_type->type != SIDE_TYPE_U32)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_U64:
-               if (elem_type->type != SIDE_TYPE_U64)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_S8:
-               if (elem_type->type != SIDE_TYPE_S8)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_S16:
-               if (elem_type->type != SIDE_TYPE_S16)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_S32:
-               if (elem_type->type != SIDE_TYPE_S32)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_S64:
-               if (elem_type->type != SIDE_TYPE_S64)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_BYTE:
-               if (elem_type->type != SIDE_TYPE_BYTE)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_ARRAY_POINTER32:
-               if (elem_type->type != SIDE_TYPE_POINTER32)
-                       goto type_error;
-       case SIDE_TYPE_ARRAY_POINTER64:
-               if (elem_type->type != SIDE_TYPE_POINTER64)
-                       goto type_error;
-               break;
-       default:
-               goto type_error;
-       }
-       side_type = (enum side_type_label) elem_type->type;
-
-       printf("[ ");
-       for (i = 0; i < side_sav_len; i++) {
-               struct side_arg sav_elem = {
-                       .type = side_type,
-               };
-
-               switch (side_type) {
-               case SIDE_TYPE_U8:
-                       sav_elem.u.side_static.integer_value.side_u8 = ((const uint8_t *) p)[i];
-                       break;
-               case SIDE_TYPE_S8:
-                       sav_elem.u.side_static.integer_value.side_s8 = ((const int8_t *) p)[i];
-                       break;
-               case SIDE_TYPE_U16:
-                       sav_elem.u.side_static.integer_value.side_u16 = ((const uint16_t *) p)[i];
-                       break;
-               case SIDE_TYPE_S16:
-                       sav_elem.u.side_static.integer_value.side_s16 = ((const int16_t *) p)[i];
-                       break;
-               case SIDE_TYPE_U32:
-                       sav_elem.u.side_static.integer_value.side_u32 = ((const uint32_t *) p)[i];
-                       break;
-               case SIDE_TYPE_S32:
-                       sav_elem.u.side_static.integer_value.side_s32 = ((const int32_t *) p)[i];
-                       break;
-               case SIDE_TYPE_U64:
-                       sav_elem.u.side_static.integer_value.side_u64 = ((const uint64_t *) p)[i];
-                       break;
-               case SIDE_TYPE_S64:
-                       sav_elem.u.side_static.integer_value.side_s64 = ((const int64_t *) p)[i];
-                       break;
-               case SIDE_TYPE_BYTE:
-                       sav_elem.u.side_static.byte_value = ((const uint8_t *) p)[i];
-                       break;
-               case SIDE_TYPE_POINTER32:
-                       sav_elem.u.side_static.integer_value.side_u32 = ((const uint32_t *) p)[i];
-                       break;
-               case SIDE_TYPE_POINTER64:
-                       sav_elem.u.side_static.integer_value.side_u64 = ((const uint64_t *) p)[i];
-                       break;
-
-               default:
-                       fprintf(stderr, "ERROR: Unexpected type\n");
-                       abort();
-               }
-
-               printf("%s", i ? ", " : "");
-               tracer_print_type(elem_type, &sav_elem);
-       }
-       printf(" ]");
-       return;
-
-type_error:
-       fprintf(stderr, "ERROR: type mismatch\n");
-       abort();
-}
-
-void tracer_print_vla_fixint(const struct side_type *type_desc, const struct side_arg *item)
-{
-       const struct side_type *elem_type = type_desc->u.side_vla.elem_type;
-       uint32_t i, side_sav_len = item->u.side_static.side_vla_fixint.length;
-       void *p = item->u.side_static.side_vla_fixint.p;
-       enum side_type_label side_type;
-
-       print_attributes("attr", ":", type_desc->u.side_vla.attr, type_desc->u.side_vla.nr_attr);
-       printf("%s", type_desc->u.side_vla.nr_attr ? ", " : "");
-       printf("elements: ");
-       switch (item->type) {
-       case SIDE_TYPE_VLA_U8:
-               if (elem_type->type != SIDE_TYPE_U8)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_U16:
-               if (elem_type->type != SIDE_TYPE_U16)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_U32:
-               if (elem_type->type != SIDE_TYPE_U32)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_U64:
-               if (elem_type->type != SIDE_TYPE_U64)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_S8:
-               if (elem_type->type != SIDE_TYPE_S8)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_S16:
-               if (elem_type->type != SIDE_TYPE_S16)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_S32:
-               if (elem_type->type != SIDE_TYPE_S32)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_S64:
-               if (elem_type->type != SIDE_TYPE_S64)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_BYTE:
-               if (elem_type->type != SIDE_TYPE_BYTE)
-                       goto type_error;
-               break;
-       case SIDE_TYPE_VLA_POINTER32:
-               if (elem_type->type != SIDE_TYPE_POINTER32)
-                       goto type_error;
-       case SIDE_TYPE_VLA_POINTER64:
-               if (elem_type->type != SIDE_TYPE_POINTER64)
-                       goto type_error;
-               break;
-       default:
-               goto type_error;
-       }
-       side_type = (enum side_type_label) elem_type->type;
-
-       printf("[ ");
-       for (i = 0; i < side_sav_len; i++) {
-               struct side_arg sav_elem = {
-                       .type = side_type,
-               };
-
-               switch (side_type) {
-               case SIDE_TYPE_U8:
-                       sav_elem.u.side_static.integer_value.side_u8 = ((const uint8_t *) p)[i];
-                       break;
-               case SIDE_TYPE_S8:
-                       sav_elem.u.side_static.integer_value.side_s8 = ((const int8_t *) p)[i];
-                       break;
-               case SIDE_TYPE_U16:
-                       sav_elem.u.side_static.integer_value.side_u16 = ((const uint16_t *) p)[i];
-                       break;
-               case SIDE_TYPE_S16:
-                       sav_elem.u.side_static.integer_value.side_s16 = ((const int16_t *) p)[i];
-                       break;
-               case SIDE_TYPE_U32:
-                       sav_elem.u.side_static.integer_value.side_u32 = ((const uint32_t *) p)[i];
-                       break;
-               case SIDE_TYPE_S32:
-                       sav_elem.u.side_static.integer_value.side_s32 = ((const int32_t *) p)[i];
-                       break;
-               case SIDE_TYPE_U64:
-                       sav_elem.u.side_static.integer_value.side_u64 = ((const uint64_t *) p)[i];
-                       break;
-               case SIDE_TYPE_S64:
-                       sav_elem.u.side_static.integer_value.side_s64 = ((const int64_t *) p)[i];
-                       break;
-               case SIDE_TYPE_BYTE:
-                       sav_elem.u.side_static.byte_value = ((const uint8_t *) p)[i];
-                       break;
-               case SIDE_TYPE_POINTER32:
-                       sav_elem.u.side_static.integer_value.side_u32 = ((const uint32_t *) p)[i];
-                       break;
-               case SIDE_TYPE_POINTER64:
-                       sav_elem.u.side_static.integer_value.side_u64 = ((const uint64_t *) p)[i];
-                       break;
-
-               default:
-                       fprintf(stderr, "ERROR: Unexpected type\n");
-                       abort();
-               }
-
-               printf("%s", i ? ", " : "");
-               tracer_print_type(elem_type, &sav_elem);
-       }
-       printf(" ]");
-       return;
-
-type_error:
-       fprintf(stderr, "ERROR: type mismatch\n");
-       abort();
-}
-
 static
 void tracer_print_dynamic_struct(const struct side_arg_dynamic_struct *dynamic_struct)
 {
This page took 0.02872 seconds and 4 git commands to generate.