X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Ftrace-ir%2Ffield-class.h;h=985eecd9e9c598566e3f2857e50ba0e78cc6f57e;hb=7e69c04f557e46fb50e5a888a3bc3451afbd3b8e;hp=79a1a159a4a9a0f8f415964181e65fb00c132e95;hpb=c6bd8523ba4a37b61a1591c03e23614112b155ba;p=babeltrace.git diff --git a/include/babeltrace/trace-ir/field-class.h b/include/babeltrace/trace-ir/field-class.h index 79a1a159..985eecd9 100644 --- a/include/babeltrace/trace-ir/field-class.h +++ b/include/babeltrace/trace-ir/field-class.h @@ -2,10 +2,9 @@ #define BABELTRACE_TRACE_IR_FIELD_CLASSES_H /* + * Copyright 2017-2018 Philippe Proulx * Copyright 2013, 2014 Jérémie Galarneau * - * Author: Jérémie Galarneau - * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights @@ -28,10 +27,13 @@ * http://www.efficios.com/ctf */ -/* For bt_bool */ +/* For bt_bool, bt_field_class, bt_trace_class */ #include -/* For enum bt_field_class_integer_preferred_display_base */ +/* + * For bt_field_class_status, + * bt_field_class_integer_preferred_display_base + */ #include #include @@ -41,64 +43,94 @@ extern "C" { #endif -struct bt_field_class; +extern bt_field_class *bt_field_class_unsigned_integer_create( + bt_trace_class *trace_class); -extern struct bt_field_class *bt_field_class_unsigned_integer_create(void); - -extern struct bt_field_class *bt_field_class_signed_integer_create(void); +extern bt_field_class *bt_field_class_signed_integer_create( + bt_trace_class *trace_class); extern void bt_field_class_integer_set_field_value_range( - struct bt_field_class *field_class, uint64_t size); + bt_field_class *field_class, uint64_t size); extern void bt_field_class_integer_set_preferred_display_base( - struct bt_field_class *field_class, - enum bt_field_class_integer_preferred_display_base base); + bt_field_class *field_class, + bt_field_class_integer_preferred_display_base base); -extern struct bt_field_class *bt_field_class_real_create(void); +extern bt_field_class *bt_field_class_real_create(bt_trace_class *trace_class); extern void bt_field_class_real_set_is_single_precision( - struct bt_field_class *field_class, + bt_field_class *field_class, bt_bool is_single_precision); -extern struct bt_field_class *bt_field_class_unsigned_enumeration_create(void); +extern bt_field_class *bt_field_class_unsigned_enumeration_create( + bt_trace_class *trace_class); -extern struct bt_field_class *bt_field_class_signed_enumeration_create(void); +extern bt_field_class *bt_field_class_signed_enumeration_create( + bt_trace_class *trace_class); -extern int bt_field_class_unsigned_enumeration_map_range( - struct bt_field_class *field_class, const char *label, +extern 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( - struct bt_field_class *field_class, const char *label, +extern 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 struct bt_field_class *bt_field_class_string_create(void); +extern bt_field_class *bt_field_class_string_create( + bt_trace_class *trace_class); + +extern bt_field_class *bt_field_class_structure_create( + bt_trace_class *trace_class); + +extern 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_structure_member * +bt_field_class_structure_borrow_member_by_index( + bt_field_class *field_class, uint64_t index); + +extern bt_field_class_structure_member * +bt_field_class_structure_borrow_member_by_name( + bt_field_class *field_class, const char *name); + +extern bt_field_class *bt_field_class_static_array_create( + bt_trace_class *trace_class, + bt_field_class *elem_field_class, uint64_t length); + +extern bt_field_class *bt_field_class_dynamic_array_create( + bt_trace_class *trace_class, + bt_field_class *elem_field_class); -extern struct bt_field_class *bt_field_class_structure_create(void); +extern bt_field_class *bt_field_class_array_borrow_element_field_class( + bt_field_class *field_class); -extern int bt_field_class_structure_append_member( - struct bt_field_class *struct_field_class, - const char *name, struct bt_field_class *field_class); +extern 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 struct bt_field_class *bt_field_class_static_array_create( - struct bt_field_class *elem_field_class, uint64_t length); +extern bt_field_class *bt_field_class_variant_create( + bt_trace_class *trace_class); -extern struct bt_field_class *bt_field_class_dynamic_array_create( - struct bt_field_class *elem_field_class); +extern 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_dynamic_array_set_length_field_class( - struct bt_field_class *field_class, - struct bt_field_class *length_field_class); +extern bt_field_class_status bt_field_class_variant_append_option( + bt_field_class *var_field_class, + const char *name, bt_field_class *field_class); -extern struct bt_field_class *bt_field_class_variant_create(void); +extern bt_field_class_variant_option * +bt_field_class_variant_borrow_option_by_index( + bt_field_class *field_class, uint64_t index); -extern int bt_field_class_variant_set_selector_field_class( - struct bt_field_class *field_class, - struct bt_field_class *selector_field_class); +extern bt_field_class_variant_option * +bt_field_class_variant_borrow_option_by_name( + bt_field_class *field_class, const char *name); -extern int bt_field_class_variant_append_option( - struct bt_field_class *var_field_class, - const char *name, struct bt_field_class *field_class); +extern bt_field_class *bt_field_class_variant_option_borrow_field_class( + bt_field_class_variant_option *option); #ifdef __cplusplus }