Useful to track the overflow of integer values.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
return ret;
}
+ssize_t bt_ctf_get_int_len(const struct definition *field)
+{
+ ssize_t ret;
+
+ if (field && bt_ctf_field_type(field) == CTF_TYPE_INTEGER) {
+ ret = (ssize_t) get_int_len(field);
+ } else {
+ ret = -1;
+ bt_ctf_field_set_error(-EINVAL);
+ }
+
+ return ret;
+}
+
enum ctf_string_encoding bt_ctf_get_encoding(const struct definition *field)
{
enum ctf_string_encoding ret = 0;
*/
int bt_ctf_get_int_byte_order(const struct definition *field);
+/*
+ * bt_ctf_get_int_len: return the size, in bits, of an int or a negative
+ * value on error
+ */
+ssize_t bt_ctf_get_int_len(const struct definition *field);
+
/*
* bt_ctf_get_encoding: return the encoding of an int or a string.
* return a negative value on error
int get_int_signedness(const struct definition *field);
int get_int_byte_order(const struct definition *field);
int get_int_base(const struct definition *field);
+size_t get_int_len(const struct definition *field); /* in bits */
enum ctf_string_encoding get_int_encoding(const struct definition *field);
/*
return integer_declaration->base;
}
+size_t get_int_len(const struct definition *field)
+{
+ struct definition_integer *integer_definition;
+ const struct declaration_integer *integer_declaration;
+
+ integer_definition = container_of(field, struct definition_integer, p);
+ integer_declaration = integer_definition->declaration;
+
+ return integer_declaration->len;
+}
+
int get_int_byte_order(const struct definition *field)
{
struct definition_integer *integer_definition;