From 4295b9e071cc31cb652c8de40b35d149dfa0769f Mon Sep 17 00:00:00 2001 From: Philippe Proulx Date: Sat, 8 Dec 2018 15:05:08 -0500 Subject: [PATCH] Field class API: use status Signed-off-by: Philippe Proulx --- .../babeltrace/trace-ir/field-class-const.h | 11 ++++- include/babeltrace/trace-ir/field-class.h | 20 +++++---- lib/trace-ir/field-class.c | 44 ++++++++++--------- 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/include/babeltrace/trace-ir/field-class-const.h b/include/babeltrace/trace-ir/field-class-const.h index da751ebe..cb369b37 100644 --- a/include/babeltrace/trace-ir/field-class-const.h +++ b/include/babeltrace/trace-ir/field-class-const.h @@ -42,6 +42,11 @@ extern "C" { #endif +enum bt_field_class_status { + BT_FIELD_CLASS_STATUS_OK = 0, + BT_FIELD_CLASS_STATUS_NOMEM = -12, +}; + enum bt_field_class_type { BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER, BT_FIELD_CLASS_TYPE_SIGNED_INTEGER, @@ -106,12 +111,14 @@ bt_field_class_signed_enumeration_mapping_ranges_get_range_by_index( const bt_field_class_unsigned_enumeration_mapping_ranges *ranges, uint64_t index, int64_t *lower, int64_t *upper); -extern int bt_field_class_unsigned_enumeration_get_mapping_labels_by_value( +extern enum bt_field_class_status +bt_field_class_unsigned_enumeration_get_mapping_labels_by_value( const bt_field_class *field_class, uint64_t value, bt_field_class_enumeration_mapping_label_array *label_array, uint64_t *count); -extern int bt_field_class_signed_enumeration_get_mapping_labels_by_value( +extern enum bt_field_class_status +bt_field_class_signed_enumeration_get_mapping_labels_by_value( const bt_field_class *field_class, int64_t value, bt_field_class_enumeration_mapping_label_array *label_array, uint64_t *count); diff --git a/include/babeltrace/trace-ir/field-class.h b/include/babeltrace/trace-ir/field-class.h index 337820b1..71942862 100644 --- a/include/babeltrace/trace-ir/field-class.h +++ b/include/babeltrace/trace-ir/field-class.h @@ -30,7 +30,10 @@ /* For bt_bool, bt_field_class */ #include -/* For enum bt_field_class_integer_preferred_display_base */ +/* + * For enum bt_field_class_status, + * enum bt_field_class_integer_preferred_display_base + */ #include #include @@ -61,11 +64,11 @@ extern bt_field_class *bt_field_class_unsigned_enumeration_create(void); extern bt_field_class *bt_field_class_signed_enumeration_create(void); -extern int bt_field_class_unsigned_enumeration_map_range( +extern enum bt_field_class_status bt_field_class_unsigned_enumeration_map_range( bt_field_class *field_class, const char *label, uint64_t range_lower, uint64_t range_upper); -extern int bt_field_class_signed_enumeration_map_range( +extern enum bt_field_class_status bt_field_class_signed_enumeration_map_range( bt_field_class *field_class, const char *label, int64_t range_lower, int64_t range_upper); @@ -73,7 +76,7 @@ extern bt_field_class *bt_field_class_string_create(void); extern bt_field_class *bt_field_class_structure_create(void); -extern int bt_field_class_structure_append_member( +extern enum bt_field_class_status bt_field_class_structure_append_member( bt_field_class *struct_field_class, const char *name, bt_field_class *field_class); @@ -83,17 +86,18 @@ extern bt_field_class *bt_field_class_static_array_create( extern bt_field_class *bt_field_class_dynamic_array_create( bt_field_class *elem_field_class); -extern int bt_field_class_dynamic_array_set_length_field_class( +extern enum bt_field_class_status +bt_field_class_dynamic_array_set_length_field_class( bt_field_class *field_class, bt_field_class *length_field_class); extern bt_field_class *bt_field_class_variant_create(void); -extern int bt_field_class_variant_set_selector_field_class( - bt_field_class *field_class, +extern enum bt_field_class_status +bt_field_class_variant_set_selector_field_class(bt_field_class *field_class, bt_field_class *selector_field_class); -extern int bt_field_class_variant_append_option( +extern enum bt_field_class_status bt_field_class_variant_append_option( bt_field_class *var_field_class, const char *name, bt_field_class *field_class); diff --git a/lib/trace-ir/field-class.c b/lib/trace-ir/field-class.c index 2361c5d5..eb949bbc 100644 --- a/lib/trace-ir/field-class.c +++ b/lib/trace-ir/field-class.c @@ -380,7 +380,8 @@ void bt_field_class_signed_enumeration_mapping_ranges_get_range_by_index( -int bt_field_class_unsigned_enumeration_get_mapping_labels_by_value( +enum bt_field_class_status +bt_field_class_unsigned_enumeration_get_mapping_labels_by_value( const struct bt_field_class *fc, uint64_t value, bt_field_class_enumeration_mapping_label_array *label_array, uint64_t *count) @@ -416,10 +417,11 @@ int bt_field_class_unsigned_enumeration_get_mapping_labels_by_value( *label_array = (void *) enum_fc->label_buf->pdata; *count = (uint64_t) enum_fc->label_buf->len; - return 0; + return BT_FIELD_CLASS_STATUS_OK; } -int bt_field_class_signed_enumeration_get_mapping_labels_by_value( +enum bt_field_class_status +bt_field_class_signed_enumeration_get_mapping_labels_by_value( const struct bt_field_class *fc, int64_t value, bt_field_class_enumeration_mapping_label_array *label_array, uint64_t *count) @@ -455,14 +457,15 @@ int bt_field_class_signed_enumeration_get_mapping_labels_by_value( *label_array = (void *) enum_fc->label_buf->pdata; *count = (uint64_t) enum_fc->label_buf->len; - return 0; + return BT_FIELD_CLASS_STATUS_OK; } static inline -int add_mapping_to_enumeration_field_class(struct bt_field_class *fc, +enum bt_field_class_status add_mapping_to_enumeration_field_class( + struct bt_field_class *fc, const char *label, uint64_t lower, uint64_t upper) { - int ret = 0; + int ret = BT_FIELD_CLASS_STATUS_OK; uint64_t i; struct bt_field_class_enumeration *enum_fc = (void *) fc; struct bt_field_class_enumeration_mapping *mapping = NULL; @@ -493,7 +496,7 @@ int add_mapping_to_enumeration_field_class(struct bt_field_class *fc, finalize_enumeration_field_class_mapping(mapping); g_array_set_size(enum_fc->mappings, enum_fc->mappings->len - 1); - ret = -1; + ret = BT_FIELD_CLASS_STATUS_NOMEM; goto end; } @@ -502,7 +505,7 @@ int add_mapping_to_enumeration_field_class(struct bt_field_class *fc, finalize_enumeration_field_class_mapping(mapping); g_array_set_size(enum_fc->mappings, enum_fc->mappings->len - 1); - ret = -1; + ret = BT_FIELD_CLASS_STATUS_NOMEM; goto end; } } @@ -522,7 +525,7 @@ end: return ret; } -int bt_field_class_unsigned_enumeration_map_range( +enum bt_field_class_status bt_field_class_unsigned_enumeration_map_range( struct bt_field_class *fc, const char *label, uint64_t range_lower, uint64_t range_upper) { @@ -547,7 +550,7 @@ int bt_field_class_unsigned_enumeration_map_range( range_upper); } -int bt_field_class_signed_enumeration_map_range( +enum bt_field_class_status bt_field_class_signed_enumeration_map_range( struct bt_field_class *fc, const char *label, int64_t range_lower, int64_t range_upper) { @@ -731,11 +734,11 @@ end: } static -int append_named_field_class_to_container_field_class( +enum bt_field_class_status append_named_field_class_to_container_field_class( struct bt_field_class_named_field_class_container *container_fc, const char *name, struct bt_field_class *fc) { - int ret = 0; + int ret = BT_FIELD_CLASS_STATUS_OK; struct bt_named_field_class *named_fc; GString *name_str; @@ -750,7 +753,7 @@ int append_named_field_class_to_container_field_class( name_str = g_string_new(name); if (!name_str) { BT_LOGE_STR("Failed to allocate a GString."); - ret = -1; + ret = BT_FIELD_CLASS_STATUS_NOMEM; goto end; } @@ -769,8 +772,9 @@ end: return ret; } -int bt_field_class_structure_append_member(struct bt_field_class *fc, - const char *name, struct bt_field_class *member_fc) +enum bt_field_class_status bt_field_class_structure_append_member( + struct bt_field_class *fc, const char *name, + struct bt_field_class *member_fc) { BT_ASSERT_PRE_NON_NULL(fc, "Field class"); @@ -895,7 +899,7 @@ end: return (void *) var_fc; } -int bt_field_class_variant_set_selector_field_class( +enum bt_field_class_status bt_field_class_variant_set_selector_field_class( struct bt_field_class *fc, struct bt_field_class *selector_fc) { @@ -909,10 +913,10 @@ int bt_field_class_variant_set_selector_field_class( var_fc->selector_fc = selector_fc; bt_object_get_no_null_check(selector_fc); bt_field_class_freeze(selector_fc); - return 0; + return BT_FIELD_CLASS_STATUS_OK; } -int bt_field_class_variant_append_option( +enum bt_field_class_status bt_field_class_variant_append_option( struct bt_field_class *fc, const char *name, struct bt_field_class *option_fc) { @@ -1082,7 +1086,7 @@ end: return (void *) array_fc; } -int bt_field_class_dynamic_array_set_length_field_class( +enum bt_field_class_status bt_field_class_dynamic_array_set_length_field_class( struct bt_field_class *fc, struct bt_field_class *length_fc) { @@ -1097,7 +1101,7 @@ int bt_field_class_dynamic_array_set_length_field_class( array_fc->length_fc = length_fc; bt_object_get_no_null_check(length_fc); bt_field_class_freeze(length_fc); - return 0; + return BT_FIELD_CLASS_STATUS_OK; } const struct bt_field_path * -- 2.34.1