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,
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);
/* For bt_bool, bt_field_class */
#include <babeltrace/types.h>
-/* For enum bt_field_class_integer_preferred_display_base */
+/*
+ * For enum bt_field_class_status,
+ * enum bt_field_class_integer_preferred_display_base
+ */
#include <babeltrace/trace-ir/field-class-const.h>
#include <stdint.h>
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);
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);
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);
-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)
*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)
*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;
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;
}
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;
}
}
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)
{
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)
{
}
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;
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;
}
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");
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)
{
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)
{
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)
{
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 *