From 3bc9ba43df73da0ae72fc94370afa357e7879442 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Thu, 21 Sep 2023 11:36:02 +0100 Subject: [PATCH] trace.h: Use side_enum_t for enum side_type_label_byte_order Signed-off-by: Mathieu Desnoyers --- include/side/trace.h | 46 ++++++++++++++++++++++---------------------- src/tracer.c | 24 ++++++++++++----------- 2 files changed, 36 insertions(+), 34 deletions(-) diff --git a/include/side/trace.h b/include/side/trace.h index 0e54010..42efeef 100644 --- a/include/side/trace.h +++ b/include/side/trace.h @@ -263,7 +263,7 @@ union side_float_value { struct side_type_raw_string { side_ptr_t(const void) p; /* pointer to string */ uint8_t unit_size; /* 1, 2, or 4 bytes */ - uint8_t byte_order; /* enum side_type_label_byte_order */ + side_enum_t(enum side_type_label_byte_order, uint8_t) byte_order; } SIDE_PACKED; struct side_attr_value { @@ -293,7 +293,7 @@ struct side_type_bool { uint32_t nr_attr; uint16_t bool_size; /* bytes */ uint16_t len_bits; /* bits. 0 for (bool_size * CHAR_BITS) */ - uint8_t byte_order; /* enum side_type_label_byte_order */ + side_enum_t(enum side_type_label_byte_order, uint8_t) byte_order; } SIDE_PACKED; struct side_type_byte { @@ -305,7 +305,7 @@ struct side_type_string { side_ptr_t(const struct side_attr) attr; uint32_t nr_attr; uint8_t unit_size; /* 1, 2, or 4 bytes */ - uint8_t byte_order; /* enum side_type_label_byte_order */ + side_enum_t(enum side_type_label_byte_order, uint8_t) byte_order; } SIDE_PACKED; struct side_type_integer { @@ -314,14 +314,14 @@ struct side_type_integer { uint16_t integer_size; /* bytes */ uint16_t len_bits; /* bits. 0 for (integer_size * CHAR_BITS) */ uint8_t signedness; /* true/false */ - uint8_t byte_order; /* enum side_type_label_byte_order */ + side_enum_t(enum side_type_label_byte_order, uint8_t) byte_order; } SIDE_PACKED; struct side_type_float { side_ptr_t(const struct side_attr) attr; uint32_t nr_attr; uint16_t float_size; /* bytes */ - uint8_t byte_order; /* enum side_type_label_byte_order */ + side_enum_t(enum side_type_label_byte_order, uint8_t) byte_order; } SIDE_PACKED; struct side_enum_mapping { @@ -681,7 +681,7 @@ struct side_event_description { .key = { \ .p = SIDE_PTR_INIT(_key), \ .unit_size = sizeof(uint8_t), \ - .byte_order = SIDE_TYPE_BYTE_ORDER_HOST, \ + .byte_order = SIDE_ENUM_INIT(SIDE_TYPE_BYTE_ORDER_HOST), \ }, \ .value = SIDE_PARAM(_value), \ } @@ -711,7 +711,7 @@ struct side_event_description { .string_value = { \ .p = SIDE_PTR_INIT(_val), \ .unit_size = _unit_size, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ }, \ } @@ -740,7 +740,7 @@ struct side_event_description { .label = { \ .p = SIDE_PTR_INIT(_label), \ .unit_size = sizeof(uint8_t), \ - .byte_order = SIDE_TYPE_BYTE_ORDER_HOST, \ + .byte_order = SIDE_ENUM_INIT(SIDE_TYPE_BYTE_ORDER_HOST), \ }, \ } @@ -751,7 +751,7 @@ struct side_event_description { .label = { \ .p = SIDE_PTR_INIT(_label), \ .unit_size = sizeof(uint8_t), \ - .byte_order = SIDE_TYPE_BYTE_ORDER_HOST, \ + .byte_order = SIDE_ENUM_INIT(SIDE_TYPE_BYTE_ORDER_HOST), \ }, \ } @@ -773,7 +773,7 @@ struct side_event_description { .label = { \ .p = SIDE_PTR_INIT(_label), \ .unit_size = sizeof(uint8_t), \ - .byte_order = SIDE_TYPE_BYTE_ORDER_HOST, \ + .byte_order = SIDE_ENUM_INIT(SIDE_TYPE_BYTE_ORDER_HOST), \ }, \ } @@ -784,7 +784,7 @@ struct side_event_description { .label = { \ .p = SIDE_PTR_INIT(_label), \ .unit_size = sizeof(uint8_t), \ - .byte_order = SIDE_TYPE_BYTE_ORDER_HOST, \ + .byte_order = SIDE_ENUM_INIT(SIDE_TYPE_BYTE_ORDER_HOST), \ }, \ } @@ -810,7 +810,7 @@ struct side_event_description { .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .bool_size = sizeof(uint8_t), \ .len_bits = 0, \ - .byte_order = SIDE_TYPE_BYTE_ORDER_HOST, \ + .byte_order = SIDE_ENUM_INIT(SIDE_TYPE_BYTE_ORDER_HOST), \ }, \ }, \ } @@ -834,7 +834,7 @@ struct side_event_description { .attr = SIDE_PTR_INIT(_attr), \ .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM(_attr)), \ .unit_size = _unit_size, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ }, \ } @@ -854,7 +854,7 @@ struct side_event_description { .integer_size = _integer_size, \ .len_bits = _len_bits, \ .signedness = _signedness, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ }, \ } @@ -867,7 +867,7 @@ struct side_event_description { .attr = SIDE_PTR_INIT(_attr), \ .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM(_attr)), \ .float_size = _float_size, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ }, \ } @@ -1144,7 +1144,7 @@ struct side_event_description { .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .bool_size = _bool_size, \ .len_bits = _len_bits, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ .offset_bits = _offset_bits, \ }, \ @@ -1182,7 +1182,7 @@ struct side_event_description { .integer_size = _integer_size, \ .len_bits = _len_bits, \ .signedness = _signedness, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ .offset_bits = _offset_bits, \ }, \ @@ -1258,7 +1258,7 @@ struct side_event_description { .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .float_size = _float_size, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ }, \ }, \ @@ -1293,7 +1293,7 @@ struct side_event_description { .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .unit_size = _unit_size, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ }, \ }, \ @@ -1505,7 +1505,7 @@ struct side_event_description { .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .bool_size = sizeof(uint8_t), \ .len_bits = 0, \ - .byte_order = SIDE_TYPE_BYTE_ORDER_HOST, \ + .byte_order = SIDE_ENUM_INIT(SIDE_TYPE_BYTE_ORDER_HOST), \ }, \ .value = { \ .side_bool8 = !!(_val), \ @@ -1541,7 +1541,7 @@ struct side_event_description { .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .unit_size = _unit_size, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ .value = (uintptr_t) (_val), \ }, \ @@ -1575,7 +1575,7 @@ struct side_event_description { .integer_size = _integer_size, \ .len_bits = _len_bits, \ .signedness = _signedness, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ .value = { \ _field = (_val), \ @@ -1618,7 +1618,7 @@ struct side_event_description { .attr = SIDE_PTR_INIT(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .nr_attr = SIDE_ARRAY_SIZE(SIDE_PARAM_SELECT_ARG1(_, ##_attr, side_attr_list())), \ .float_size = _float_size, \ - .byte_order = _byte_order, \ + .byte_order = SIDE_ENUM_INIT(_byte_order), \ }, \ .value = { \ _field = (_val), \ diff --git a/src/tracer.c b/src/tracer.c index b11db80..486dc19 100644 --- a/src/tracer.c +++ b/src/tracer.c @@ -230,7 +230,7 @@ enum tracer_display_base get_attr_display_base(const struct side_attr *_attr, ui bool cmp; tracer_convert_string_to_utf8(side_ptr_get(attr->key.p), attr->key.unit_size, - attr->key.byte_order, NULL, &utf8_str); + side_enum_get(attr->key.byte_order), NULL, &utf8_str); cmp = strcmp(utf8_str, "std.integer.base"); if (utf8_str != side_ptr_get(attr->key.p)) free(utf8_str); @@ -261,7 +261,7 @@ void tracer_print_attr_type(const char *separator, const struct side_attr *attr) char *utf8_str = NULL; tracer_convert_string_to_utf8(side_ptr_get(attr->key.p), attr->key.unit_size, - attr->key.byte_order, NULL, &utf8_str); + side_enum_get(attr->key.byte_order), NULL, &utf8_str); printf("{ key%s \"%s\", value%s ", separator, utf8_str, separator); if (utf8_str != side_ptr_get(attr->key.p)) free(utf8_str); @@ -328,7 +328,7 @@ void tracer_print_attr_type(const char *separator, const struct side_attr *attr) case SIDE_ATTR_TYPE_STRING: tracer_print_string(side_ptr_get(attr->value.u.string_value.p), attr->value.u.string_value.unit_size, - attr->value.u.string_value.byte_order, NULL); + side_enum_get(attr->value.u.string_value.byte_order), NULL); break; default: fprintf(stderr, "ERROR: "); @@ -368,7 +368,7 @@ union int64_value tracer_load_integer_value(const struct side_type_integer *type len_bits = type_integer->len_bits; if (len_bits + offset_bits > type_integer->integer_size * CHAR_BIT) abort(); - reverse_bo = type_integer->byte_order != SIDE_TYPE_BYTE_ORDER_HOST; + reverse_bo = side_enum_get(type_integer->byte_order) != SIDE_TYPE_BYTE_ORDER_HOST; switch (type_integer->integer_size) { case 1: if (type_integer->signedness) @@ -460,7 +460,8 @@ void print_enum_labels(const struct side_enum_mappings *mappings, union int64_va } if (v64.s >= mapping->range_begin && v64.s <= mapping->range_end) { printf("%s", print_count++ ? ", " : ""); - tracer_print_string(side_ptr_get(mapping->label.p), mapping->label.unit_size, mapping->label.byte_order, NULL); + tracer_print_string(side_ptr_get(mapping->label.p), mapping->label.unit_size, + side_enum_get(mapping->label.byte_order), NULL); } } if (!print_count) @@ -589,7 +590,8 @@ void tracer_print_enum_bitmap(const struct side_type *type_desc, match: if (match) { printf("%s", print_count++ ? ", " : ""); - tracer_print_string(side_ptr_get(mapping->label.p), mapping->label.unit_size, mapping->label.byte_order, NULL); + tracer_print_string(side_ptr_get(mapping->label.p), mapping->label.unit_size, + side_enum_get(mapping->label.byte_order), NULL); } } if (!print_count) @@ -635,7 +637,7 @@ void tracer_print_type_bool(const char *separator, len_bits = type_bool->len_bits; if (len_bits + offset_bits > type_bool->bool_size * CHAR_BIT) abort(); - reverse_bo = type_bool->byte_order != SIDE_TYPE_BYTE_ORDER_HOST; + reverse_bo = side_enum_get(type_bool->byte_order) != SIDE_TYPE_BYTE_ORDER_HOST; switch (type_bool->bool_size) { case 1: v = value->side_bool8; @@ -729,7 +731,7 @@ void tracer_print_type_float(const char *separator, bool reverse_bo; tracer_print_type_header(separator, side_ptr_get(type_float->attr), type_float->nr_attr); - reverse_bo = type_float->byte_order != SIDE_TYPE_FLOAT_WORD_ORDER_HOST; + reverse_bo = side_enum_get(type_float->byte_order) != SIDE_TYPE_FLOAT_WORD_ORDER_HOST; switch (type_float->float_size) { case 2: { @@ -946,7 +948,7 @@ void tracer_print_type(const struct side_type *type_desc, const struct side_arg case SIDE_TYPE_STRING_UTF32: tracer_print_type_header(":", side_ptr_get(type_desc->u.side_string.attr), type_desc->u.side_string.nr_attr); tracer_print_string(side_ptr_get(item->u.side_static.string_value), - type_desc->u.side_string.unit_size, type_desc->u.side_string.byte_order, NULL); + type_desc->u.side_string.unit_size, side_enum_get(type_desc->u.side_string.byte_order), NULL); break; /* Stack-copy compound types */ @@ -1290,7 +1292,7 @@ uint32_t tracer_print_gather_string_type(const struct side_type_gather *type_gat type_gather->u.side_string.type.nr_attr); if (ptr) { tracer_print_string(ptr, type_gather->u.side_string.type.unit_size, - type_gather->u.side_string.type.byte_order, &string_len); + side_enum_get(type_gather->u.side_string.type.byte_order), &string_len); } else { printf(""); string_len = type_gather->u.side_string.type.unit_size; @@ -1691,7 +1693,7 @@ void tracer_print_dynamic(const struct side_arg *item) tracer_print_type_header("::", side_ptr_get(item->u.side_dynamic.side_string.type.attr), item->u.side_dynamic.side_string.type.nr_attr); tracer_print_string((const char *)(uintptr_t) item->u.side_dynamic.side_string.value, item->u.side_dynamic.side_string.type.unit_size, - item->u.side_dynamic.side_string.type.byte_order, NULL); + side_enum_get(item->u.side_dynamic.side_string.type.byte_order), NULL); break; /* Dynamic compound types */ -- 2.34.1