Avoid unnecessary inclusions in public headers
[babeltrace.git] / include / babeltrace / ctf-ir / field-types.h
index 3e35a8d04fa6135f5243b307f6d45782afb4f1af..69a89e5c8f00de0bd92f1be487d921d159e27214 100644 (file)
@@ -30,6 +30,9 @@
  * http://www.efficios.com/ctf
  */
 
+/* For bt_bool */
+#include <babeltrace/types.h>
+
 #include <stdint.h>
 #include <stddef.h>
 
@@ -211,16 +214,16 @@ struct bt_ctf_field_type_enumeration_mapping_iterator;
  * counterpart.
  */
 enum ctf_type_id {
-       CTF_TYPE_UNKNOWN = 0,
-       CTF_TYPE_INTEGER,
-       CTF_TYPE_FLOAT,
-       CTF_TYPE_ENUM,
-       CTF_TYPE_STRING,
-       CTF_TYPE_STRUCT,
-       CTF_TYPE_UNTAGGED_VARIANT,
-       CTF_TYPE_VARIANT,
-       CTF_TYPE_ARRAY,
-       CTF_TYPE_SEQUENCE,
+       CTF_TYPE_UNKNOWN = -1,
+       CTF_TYPE_INTEGER = 0,
+       CTF_TYPE_FLOAT = 1,
+       CTF_TYPE_ENUM = 2,
+       CTF_TYPE_STRING = 3,
+       CTF_TYPE_STRUCT = 4,
+       CTF_TYPE_UNTAGGED_VARIANT = 5,
+       CTF_TYPE_VARIANT = 5,
+       CTF_TYPE_ARRAY = 6,
+       CTF_TYPE_SEQUENCE = 7,
        NR_CTF_TYPES,
 };
 
@@ -294,10 +297,6 @@ enum bt_ctf_field_type_id {
        /// \ref ctfirstructfieldtype
        BT_CTF_FIELD_TYPE_ID_STRUCT = CTF_TYPE_STRUCT,
 
-       /// @cond DOCUMENT
-       BT_CTF_TYPE_ID_UNTAGGED_VARIANT = CTF_TYPE_UNTAGGED_VARIANT,
-       /// @endcond
-
        /// \ref ctfirarrayfieldtype
        BT_CTF_FIELD_TYPE_ID_ARRAY = CTF_TYPE_ARRAY,
 
@@ -346,8 +345,8 @@ extern enum bt_ctf_field_type_id bt_ctf_field_type_get_type_id(
 @brief Returns whether or not the @ft \p field_type is a @intft.
 
 @param[in] field_type  Field type to check (can be \c NULL).
-@returns               1 if \p field_type is an integer field type,
-                       or 0 otherwise (including if \p field_type is
+@returns               #BT_TRUE if \p field_type is an integer field type,
+                       or #BT_FALSE otherwise (including if \p field_type is
                        \c NULL).
 
 @prenotnull{field_type}
@@ -356,14 +355,15 @@ extern enum bt_ctf_field_type_id bt_ctf_field_type_get_type_id(
 @sa bt_ctf_field_type_get_type_id(): Returns the type ID of a given
        field type.
 */
-extern int bt_ctf_field_type_is_integer(struct bt_ctf_field_type *field_type);
+extern bt_bool bt_ctf_field_type_is_integer(
+               struct bt_ctf_field_type *field_type);
 
 /**
 @brief Returns whether or not the @ft \p field_type is a @floatft.
 
 @param[in] field_type  Field type to check (can be \c NULL).
-@returns               1 if \p field_type is a floating point
-                       number field type,
+@returns               #BT_TRUE if \p field_type is a floating point
+                       #BT_FALSE field type,
                        or 0 otherwise (including if \p field_type is
                        \c NULL).
 
@@ -372,14 +372,15 @@ extern int bt_ctf_field_type_is_integer(struct bt_ctf_field_type *field_type);
 @sa bt_ctf_field_type_get_type_id(): Returns the type ID of a given
        field type.
 */
-extern int bt_ctf_field_type_is_floating_point(struct bt_ctf_field_type *field_type);
+extern bt_bool bt_ctf_field_type_is_floating_point(
+               struct bt_ctf_field_type *field_type);
 
 /**
 @brief Returns whether or not the @ft \p field_type is a @enumft.
 
 @param[in] field_type  Field type to check (can be \c NULL).
-@returns               1 if \p field_type is an enumeration field type,
-                       or 0 otherwise (including if \p field_type is
+@returns               #BT_TRUE if \p field_type is an enumeration field type,
+                       or #BT_FALSE otherwise (including if \p field_type is
                        \c NULL).
 
 @postrefcountsame{field_type}
@@ -387,14 +388,15 @@ extern int bt_ctf_field_type_is_floating_point(struct bt_ctf_field_type *field_t
 @sa bt_ctf_field_type_get_type_id(): Returns the type ID of a given
        field type.
 */
-extern int bt_ctf_field_type_is_enumeration(struct bt_ctf_field_type *field_type);
+extern bt_bool bt_ctf_field_type_is_enumeration(
+               struct bt_ctf_field_type *field_type);
 
 /**
 @brief Returns whether or not the @ft \p field_type is a @stringft.
 
 @param[in] field_type  Field type to check (can be \c NULL).
-@returns               1 if \p field_type is a string field type,
-                       or 0 otherwise (including if \p field_type is
+@returns               #BT_TRUE if \p field_type is a string field type,
+                       or #BT_FALSE otherwise (including if \p field_type is
                        \c NULL).
 
 @postrefcountsame{field_type}
@@ -402,14 +404,15 @@ extern int bt_ctf_field_type_is_enumeration(struct bt_ctf_field_type *field_type
 @sa bt_ctf_field_type_get_type_id(): Returns the type ID of a given
        field type.
 */
-extern int bt_ctf_field_type_is_string(struct bt_ctf_field_type *field_type);
+extern bt_bool bt_ctf_field_type_is_string(
+               struct bt_ctf_field_type *field_type);
 
 /**
 @brief Returns whether or not the @ft \p field_type is a @structft.
 
 @param[in] field_type  Field type to check (can be \c NULL).
-@returns               1 if \p field_type is a structure field type,
-                       or 0 otherwise (including if \p field_type is
+@returns               #BT_TRUE if \p field_type is a structure field type,
+                       or #BT_FALSE otherwise (including if \p field_type is
                        \c NULL).
 
 @postrefcountsame{field_type}
@@ -417,14 +420,15 @@ extern int bt_ctf_field_type_is_string(struct bt_ctf_field_type *field_type);
 @sa bt_ctf_field_type_get_type_id(): Returns the type ID of a given
        field type.
 */
-extern int bt_ctf_field_type_is_structure(struct bt_ctf_field_type *field_type);
+extern bt_bool bt_ctf_field_type_is_structure(
+               struct bt_ctf_field_type *field_type);
 
 /**
 @brief Returns whether or not the @ft \p field_type is a @arrayft.
 
 @param[in] field_type  Field type to check (can be \c NULL).
-@returns               1 if \p field_type is an array field type,
-                       or 0 otherwise (including if \p field_type is
+@returns               #BT_TRUE if \p field_type is an array field type,
+                       or #BT_FALSE otherwise (including if \p field_type is
                        \c NULL).
 
 @postrefcountsame{field_type}
@@ -432,14 +436,15 @@ extern int bt_ctf_field_type_is_structure(struct bt_ctf_field_type *field_type);
 @sa bt_ctf_field_type_get_type_id(): Returns the type ID of a given
        field type.
 */
-extern int bt_ctf_field_type_is_array(struct bt_ctf_field_type *field_type);
+extern bt_bool bt_ctf_field_type_is_array(
+               struct bt_ctf_field_type *field_type);
 
 /**
 @brief Returns whether or not the @ft \p field_type is a @seqft.
 
 @param[in] field_type  Field type to check (can be \c NULL).
-@returns               1 if \p field_type is a sequence field type,
-                       or 0 otherwise (including if \p field_type is
+@returns               #BT_TRUE if \p field_type is a sequence field type,
+                       or #BT_FALSE otherwise (including if \p field_type is
                        \c NULL).
 
 @postrefcountsame{field_type}
@@ -447,14 +452,15 @@ extern int bt_ctf_field_type_is_array(struct bt_ctf_field_type *field_type);
 @sa bt_ctf_field_type_get_type_id(): Returns the type ID of a given
        field type.
 */
-extern int bt_ctf_field_type_is_sequence(struct bt_ctf_field_type *field_type);
+extern bt_bool bt_ctf_field_type_is_sequence(
+               struct bt_ctf_field_type *field_type);
 
 /**
 @brief Returns whether or not the @ft \p field_type is a @varft.
 
 @param[in] field_type  Field type to check (can be \c NULL).
-@returns               1 if \p field_type is a variant field type,
-                       or 0 otherwise (including if \p field_type is
+@returns               #BT_TRUE if \p field_type is a variant field type,
+                       or #BT_FALSE otherwise (including if \p field_type is
                        \c NULL).
 
 @postrefcountsame{field_type}
@@ -462,7 +468,8 @@ extern int bt_ctf_field_type_is_sequence(struct bt_ctf_field_type *field_type);
 @sa bt_ctf_field_type_get_type_id(): Returns the type ID of a given
        field type.
 */
-extern int bt_ctf_field_type_is_variant(struct bt_ctf_field_type *field_type);
+extern bt_bool bt_ctf_field_type_is_variant(
+               struct bt_ctf_field_type *field_type);
 
 /** @} */
 
@@ -487,6 +494,12 @@ enum bt_ctf_byte_order {
        /// Native (default) byte order.
        BT_CTF_BYTE_ORDER_NATIVE = 0,
 
+       /**
+       Unspecified byte order; the initial native byte order of a
+       \link ctfirtraceclass CTF IR trace class\endlink.
+       */
+       BT_CTF_BYTE_ORDER_UNSPECIFIED,
+
        /// Little-endian.
        BT_CTF_BYTE_ORDER_LITTLE_ENDIAN,
 
@@ -748,6 +761,9 @@ enum bt_ctf_integer_base {
        /// Unknown, used for errors.
        BT_CTF_INTEGER_BASE_UNKNOWN = -1,
 
+       /// Unspecified by the tracer.
+       BT_CTF_INTEGER_BASE_UNSPECIFIED = 0,
+
        /// Binary.
        BT_CTF_INTEGER_BASE_BINARY = 2,
 
@@ -820,7 +836,7 @@ extern int bt_ctf_field_type_integer_get_size(
        the integer fields described by a given integer field type.
 */
 extern int bt_ctf_field_type_integer_set_size(
-               struct bt_ctf_field_type *int_field_type, size_t size);
+               struct bt_ctf_field_type *int_field_type, unsigned int size);
 
 /**
 @brief  Returns whether or not the @intfields described by the @intft
@@ -829,10 +845,9 @@ extern int bt_ctf_field_type_integer_set_size(
 @param[in] int_field_type      Integer field type which describes the
                                integer fields of which to get the
                                signedness.
-@returns                       1 if the integer fields described by
-                               \p int_field_type are signed, 0 if they
-                               are unsigned, or a negative value on
-                               error.
+@returns                       #BT_TRUE if the integer fields described by
+                               \p int_field_type are signed, #BT_FALSE if they
+                               are unsigned.
 
 @prenotnull{int_field_type}
 @preisintft{int_field_type}
@@ -841,11 +856,15 @@ extern int bt_ctf_field_type_integer_set_size(
 @sa bt_ctf_field_type_integer_set_is_signed(): Sets the signedness of the
        integer fields described by a given integer field type.
 */
-extern int bt_ctf_field_type_integer_is_signed(
+extern bt_bool bt_ctf_field_type_integer_is_signed(
                struct bt_ctf_field_type *int_field_type);
 
-/* Pre-2.0 CTF writer compatibility */
-#define bt_ctf_field_type_integer_get_signed bt_ctf_field_type_integer_is_signed
+/** @cond DOCUMENT */
+
+extern int bt_ctf_field_type_integer_get_signed(
+               struct bt_ctf_field_type *int_field_type);
+
+/** @endcond */
 
 /**
 @brief Sets whether or not the @intfields described by
@@ -855,21 +874,20 @@ extern int bt_ctf_field_type_integer_is_signed(
                                integer fields of which to set the
                                signedness.
 @param[in] is_signed           Signedness of the integer fields
-                               described by \p int_field_type; 0 means
-                               \em unsigned, 1 means \em signed.
+                               described by \p int_field_type; #BT_FALSE means
+                               \em unsigned, #BT_TRUE means \em signed.
 @returns                       0 on success, or a negative value on error.
 
 @prenotnull{int_field_type}
 @preisintft{int_field_type}
 @prehot{int_field_type}
-@pre \p is_signed is 0 or 1.
 @postrefcountsame{int_field_type}
 
 @sa bt_ctf_field_type_integer_is_signed(): Returns the signedness of
        the integer fields described by a given integer field type.
 */
 extern int bt_ctf_field_type_integer_set_is_signed(
-               struct bt_ctf_field_type *int_field_type, int is_signed);
+               struct bt_ctf_field_type *int_field_type, bt_bool is_signed);
 
 /* Pre-2.0 CTF writer compatibility */
 #define bt_ctf_field_type_integer_set_signed bt_ctf_field_type_integer_set_is_signed
@@ -883,8 +901,9 @@ extern int bt_ctf_field_type_integer_set_is_signed(
                                preferred display base.
 @returns                       Preferred display base of the integer
                                fields described by \p int_field_type,
-                               or #BT_CTF_INTEGER_BASE_UNKNOWN on
-                               error.
+                               #BT_CTF_INTEGER_BASE_UNSPECIFIED if
+                               not specified, or
+                               #BT_CTF_INTEGER_BASE_UNKNOWN on error.
 
 @prenotnull{int_field_type}
 @preisintft{int_field_type}
@@ -911,9 +930,9 @@ extern enum bt_ctf_integer_base bt_ctf_field_type_integer_get_base(
 @prenotnull{int_field_type}
 @preisintft{int_field_type}
 @prehot{int_field_type}
-@pre \p base is #BT_CTF_INTEGER_BASE_BINARY, #BT_CTF_INTEGER_BASE_OCTAL,
-       #BT_CTF_INTEGER_BASE_DECIMAL, or
-       #BT_CTF_INTEGER_BASE_HEXADECIMAL.
+@pre \p base is #BT_CTF_INTEGER_BASE_UNSPECIFIED,
+       #BT_CTF_INTEGER_BASE_BINARY, #BT_CTF_INTEGER_BASE_OCTAL,
+       #BT_CTF_INTEGER_BASE_DECIMAL, or #BT_CTF_INTEGER_BASE_HEXADECIMAL.
 @postrefcountsame{int_field_type}
 
 @sa bt_ctf_field_type_integer_get_base(): Returns the preferred display
@@ -1239,7 +1258,7 @@ An enumeration mapping has:
   value, both included in the range.
 
 You can add a mapping to an enumeration field type with
-bt_ctf_field_type_enumeration_add_mapping() or
+bt_ctf_field_type_enumeration_add_mapping_signed() or
 bt_ctf_field_type_enumeration_add_mapping_unsigned(), depending on the
 signedness of the wrapped @intft.
 
@@ -1378,7 +1397,7 @@ On success, \p enum_field_type remains the sole owner of \p *name.
        at a given index.
 */
 extern int bt_ctf_field_type_enumeration_get_mapping_signed(
-               struct bt_ctf_field_type *enum_field_type, int index,
+               struct bt_ctf_field_type *enum_field_type, uint64_t index,
                const char **name, int64_t *range_begin, int64_t *range_end);
 
 /**
@@ -1420,7 +1439,7 @@ On success, \p enum_field_type remains the sole owner of \p *name.
        at a given index.
 */
 extern int bt_ctf_field_type_enumeration_get_mapping_unsigned(
-               struct bt_ctf_field_type *enum_field_type, int index,
+               struct bt_ctf_field_type *enum_field_type, uint64_t index,
                const char **name, uint64_t *range_begin,
                uint64_t *range_end);
 
@@ -1566,10 +1585,13 @@ A mapping in \p enum_field_type can exist with the name \p name.
 @sa bt_ctf_field_type_enumeration_add_mapping_unsigned(): Adds an
        unsigned mapping to a given enumeration field type.
 */
-extern int bt_ctf_field_type_enumeration_add_mapping(
+extern int bt_ctf_field_type_enumeration_add_mapping_signed(
                struct bt_ctf_field_type *enum_field_type, const char *name,
                int64_t range_begin, int64_t range_end);
 
+/* Pre-2.0 CTF writer compatibility */
+#define bt_ctf_field_type_enumeration_add_mapping bt_ctf_field_type_enumeration_add_mapping_signed
+
 /**
 @brief Adds a mapping to the @enumft \p enum_field_type which maps
        the name \p name to the unsigned
@@ -1602,7 +1624,7 @@ A mapping in \p enum_field_type can exist with the name \p name.
 @pre \p range_end is greater than or equal to \p range_begin.
 @postrefcountsame{enum_field_type}
 
-@sa bt_ctf_field_type_enumeration_add_mapping(): Adds a signed
+@sa bt_ctf_field_type_enumeration_add_mapping_signed(): Adds a signed
        mapping to a given enumeration field type.
 */
 extern int bt_ctf_field_type_enumeration_add_mapping_unsigned(
@@ -1955,10 +1977,13 @@ On success, the field's type is placed in \p *field_type if
 @sa bt_ctf_field_type_structure_get_field_type_by_name(): Finds a
        structure field type's field by name.
 */
-extern int bt_ctf_field_type_structure_get_field(
+extern int bt_ctf_field_type_structure_get_field_by_index(
                struct bt_ctf_field_type *struct_field_type,
                const char **field_name, struct bt_ctf_field_type **field_type,
-               int index);
+               uint64_t index);
+
+/* Pre-2.0 CTF writer compatibility */
+#define bt_ctf_field_type_structure_get_field bt_ctf_field_type_structure_get_field_by_index
 
 /**
 @brief  Returns the type of the field named \p field_name found in
@@ -1977,7 +2002,7 @@ extern int bt_ctf_field_type_structure_get_field(
 @postrefcountsame{struct_field_type}
 @postsuccessrefcountretinc
 
-@sa bt_ctf_field_type_structure_get_field(): Finds a
+@sa bt_ctf_field_type_structure_get_field_by_index(): Finds a
        structure field type's field by index.
 */
 extern
@@ -2436,10 +2461,13 @@ On success, the field's type is placed in \p *field_type if
 @sa bt_ctf_field_type_variant_get_field_type_from_tag(): Finds a variant
        field type's field by current tag value.
 */
-extern int bt_ctf_field_type_variant_get_field(
+extern int bt_ctf_field_type_variant_get_field_by_index(
                struct bt_ctf_field_type *variant_field_type,
                const char **field_name,
-               struct bt_ctf_field_type **field_type, int index);
+               struct bt_ctf_field_type **field_type, uint64_t index);
+
+/* Pre-2.0 CTF writer compatibility */
+#define bt_ctf_field_type_variant_get_field bt_ctf_field_type_variant_get_field_by_index
 
 /**
 @brief  Returns the type of the field (choice) named \p field_name
@@ -2458,7 +2486,7 @@ extern int bt_ctf_field_type_variant_get_field(
 @postrefcountsame{variant_field_type}
 @postsuccessrefcountretinc
 
-@sa bt_ctf_field_type_variant_get_field(): Finds a variant field type's
+@sa bt_ctf_field_type_variant_get_field_by_index(): Finds a variant field type's
        field by index.
 @sa bt_ctf_field_type_variant_get_field_type_from_tag(): Finds a variant
        field type's field by current tag value.
@@ -2494,7 +2522,7 @@ bt_ctf_field_type_variant_get_tag_type() for \p variant_field_type.
 @postrefcountsame{tag_field}
 @postsuccessrefcountretinc
 
-@sa bt_ctf_field_type_variant_get_field(): Finds a variant field type's
+@sa bt_ctf_field_type_variant_get_field_by_index(): Finds a variant field type's
        field by index.
 @sa bt_ctf_field_type_variant_get_field_type_by_name(): Finds a variant
        field type's field by name.
This page took 0.029227 seconds and 4 git commands to generate.