namespace the definition functions
[babeltrace.git] / formats / ctf / events.c
index 7619de74b9ac85993e4132325822ed2431b1045f..5a6f6255b7eed0b33e498bdbca061390daacd8d6 100644 (file)
  *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
  */
 
 #include <babeltrace/babeltrace.h>
@@ -98,7 +106,7 @@ const struct definition *bt_ctf_get_field(const struct bt_ctf_event *ctf_event,
        if (!ctf_event || !scope || !field)
                return NULL;
 
-       def = lookup_definition(scope, field);
+       def = bt_lookup_definition(scope, field);
        /*
         * optionally a field can have an underscore prefix, try
         * to lookup the field with this prefix if it failed
@@ -107,7 +115,7 @@ const struct definition *bt_ctf_get_field(const struct bt_ctf_event *ctf_event,
                field_underscore = g_new(char, strlen(field) + 2);
                field_underscore[0] = '_';
                strcpy(&field_underscore[1], field);
-               def = lookup_definition(scope, field_underscore);
+               def = bt_lookup_definition(scope, field_underscore);
                g_free(field_underscore);
        }
        if (bt_ctf_field_type(bt_ctf_get_decl_from_def(def)) == CTF_TYPE_VARIANT) {
@@ -132,12 +140,12 @@ const struct definition *bt_ctf_get_index(const struct bt_ctf_event *ctf_event,
                struct definition_array *array_definition;
                array_definition = container_of(field,
                                struct definition_array, p);
-               ret = array_index(array_definition, index);
+               ret = bt_array_index(array_definition, index);
        } else if (bt_ctf_field_type(bt_ctf_get_decl_from_def(field)) == CTF_TYPE_SEQUENCE) {
                struct definition_sequence *sequence_definition;
                sequence_definition = container_of(field,
                                struct definition_sequence, p);
-               ret = sequence_index(sequence_definition, index);
+               ret = bt_sequence_index(sequence_definition, index);
        }
        return ret;
 }
@@ -373,6 +381,14 @@ get_declaration_array(const struct declaration *decl)
        return container_of(decl, const struct declaration_array, p);
 }
 
+static const struct declaration_sequence *
+get_declaration_sequence(const struct declaration *decl)
+{
+       if (!decl || bt_ctf_field_type(decl) != CTF_TYPE_SEQUENCE)
+               return NULL;
+       return container_of(decl, const struct declaration_sequence, p);
+}
+
 int bt_ctf_get_int_signedness(const struct declaration *decl)
 {
        const struct declaration_integer *integer;
@@ -446,12 +462,12 @@ const char *bt_ctf_get_enum_str(const struct definition *field)
        }
        def_enum = container_of(field, const struct definition_enum, p);
        decl_enum = def_enum->declaration;
-       if (get_int_signedness(&def_enum->integer->p)) {
-               array = enum_int_to_quark_set(decl_enum,
-                       get_signed_int(&def_enum->integer->p));
+       if (bt_get_int_signedness(&def_enum->integer->p)) {
+               array = bt_enum_int_to_quark_set(decl_enum,
+                       bt_get_signed_int(&def_enum->integer->p));
        } else {
-               array = enum_uint_to_quark_set(decl_enum,
-                       get_unsigned_int(&def_enum->integer->p));
+               array = bt_enum_uint_to_quark_set(decl_enum,
+                       bt_get_unsigned_int(&def_enum->integer->p));
        }
        if (!array) {
                bt_ctf_field_set_error(-ENOENT);
@@ -472,27 +488,49 @@ const char *bt_ctf_get_enum_str(const struct definition *field)
 enum ctf_string_encoding bt_ctf_get_encoding(const struct declaration *decl)
 {
        enum ctf_string_encoding ret = 0;
+       enum ctf_type_id type;
        const struct declaration_integer *integer;
        const struct declaration_string *string;
+       const struct declaration_array *array;
+       const struct declaration_sequence *sequence;
 
        if (!decl)
                goto error;
 
-       if (bt_ctf_field_type(decl) == CTF_TYPE_INTEGER) {
-               integer = get_declaration_integer(decl);
-               if (integer) {
-                       ret = integer->encoding;
-               } else {
+       type = bt_ctf_field_type(decl);
+
+       switch (type) {
+       case CTF_TYPE_ARRAY:
+               array = get_declaration_array(decl);
+               if (!array)
                        goto error;
-               }
-       } else if (bt_ctf_field_type(decl) == CTF_TYPE_STRING) {
+               integer = get_declaration_integer(array->elem);
+               if (!integer)
+                       goto error;
+               ret = integer->encoding;
+               break;
+       case CTF_TYPE_SEQUENCE:
+               sequence = get_declaration_sequence(decl);
+               if (!sequence)
+                       goto error;
+               integer = get_declaration_integer(sequence->elem);
+               if (!integer)
+                       goto error;
+               ret = integer->encoding;
+               break;
+       case CTF_TYPE_STRING:
                string = get_declaration_string(decl);
-               if (string) {
-                       ret = string->encoding;
-               } else {
+               if (!string)
                        goto error;
-               }
-       } else {
+               ret = string->encoding;
+               break;
+       case CTF_TYPE_INTEGER:
+               integer = get_declaration_integer(decl);
+               if (!integer)
+                       goto error;
+               ret = integer->encoding;
+               break;
+       default:
                goto error;
        }
        return ret;
@@ -521,7 +559,7 @@ uint64_t bt_ctf_get_uint64(const struct definition *field)
        uint64_t ret = 0;
 
        if (field && bt_ctf_field_type(bt_ctf_get_decl_from_def(field)) == CTF_TYPE_INTEGER)
-               ret = get_unsigned_int(field);
+               ret = bt_get_unsigned_int(field);
        else
                bt_ctf_field_set_error(-EINVAL);
 
@@ -533,7 +571,7 @@ int64_t bt_ctf_get_int64(const struct definition *field)
        int64_t ret = 0;
 
        if (field && bt_ctf_field_type(bt_ctf_get_decl_from_def(field)) == CTF_TYPE_INTEGER)
-               ret = get_signed_int(field);
+               ret = bt_get_signed_int(field);
        else
                bt_ctf_field_set_error(-EINVAL);
 
@@ -546,7 +584,7 @@ char *bt_ctf_get_char_array(const struct definition *field)
        GString *char_array;
 
        if (field && bt_ctf_field_type(bt_ctf_get_decl_from_def(field)) == CTF_TYPE_ARRAY) {
-               char_array = get_char_array(field);
+               char_array = bt_get_char_array(field);
                if (char_array) {
                        ret = char_array->str;
                        goto end;
@@ -563,7 +601,7 @@ char *bt_ctf_get_string(const struct definition *field)
        char *ret = NULL;
 
        if (field && bt_ctf_field_type(bt_ctf_get_decl_from_def(field)) == CTF_TYPE_STRING)
-               ret = get_string(field);
+               ret = bt_get_string(field);
        else
                bt_ctf_field_set_error(-EINVAL);
 
This page took 0.026432 seconds and 4 git commands to generate.