Move to kernel style SPDX license identifiers
[babeltrace.git] / src / plugins / ctf / common / bfcr / bfcr.c
index c4266cd8df17fe7f0afc42011e1d778bdcf5eb51..9eb76dcb1b67e62020047f6e9b3f7e64fdf29a88 100644 (file)
@@ -1,31 +1,16 @@
 /*
- * Babeltrace - CTF binary field class reader (BFCR)
+ * SPDX-License-Identifier: MIT
  *
  * Copyright (c) 2015-2016 EfficiOS Inc. and Linux Foundation
  * Copyright (c) 2015-2016 Philippe Proulx <pproulx@efficios.com>
  *
- * 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
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * 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.
+ * Babeltrace - CTF binary field class reader (BFCR)
  */
 
+#define BT_COMP_LOG_SELF_COMP (bfcr->self_comp)
 #define BT_LOG_OUTPUT_LEVEL (bfcr->log_level)
 #define BT_LOG_TAG "PLUGIN/CTF/BFCR"
-#include "logging/log.h"
+#include "logging/comp-logging.h"
 
 #include <stdlib.h>
 #include <stdint.h>
@@ -96,6 +81,9 @@ enum bfcr_state {
 struct bt_bfcr {
        bt_logging_level log_level;
 
+       /* Weak */
+       bt_self_component *self_comp;
+
        /* BFCR stack */
        struct stack *stack;
 
@@ -112,8 +100,8 @@ struct bt_bfcr {
         * classes for which the common boundary is not the boundary of
         * a byte cannot have different byte orders.
         *
-        * This is set to -1 on reset and when the last basic field class
-        * was a string class.
+        * This is set to CTF_BYTE_ORDER_UNKNOWN on reset and when the last
+        * basic field class was a string class.
         */
        enum ctf_byte_order last_bo;
 
@@ -168,17 +156,17 @@ const char *bfcr_state_string(enum bfcr_state state)
 {
        switch (state) {
        case BFCR_STATE_NEXT_FIELD:
-               return "BFCR_STATE_NEXT_FIELD";
+               return "NEXT_FIELD";
        case BFCR_STATE_ALIGN_BASIC:
-               return "BFCR_STATE_ALIGN_BASIC";
+               return "ALIGN_BASIC";
        case BFCR_STATE_ALIGN_COMPOUND:
-               return "BFCR_STATE_ALIGN_COMPOUND";
+               return "ALIGN_COMPOUND";
        case BFCR_STATE_READ_BASIC_BEGIN:
-               return "BFCR_STATE_READ_BASIC_BEGIN";
+               return "READ_BASIC_BEGIN";
        case BFCR_STATE_READ_BASIC_CONTINUE:
-               return "BFCR_STATE_READ_BASIC_CONTINUE";
+               return "READ_BASIC_CONTINUE";
        case BFCR_STATE_DONE:
-               return "BFCR_STATE_DONE";
+               return "DONE";
        default:
                return "(unknown)";
        }
@@ -191,18 +179,18 @@ struct stack *stack_new(struct bt_bfcr *bfcr)
 
        stack = g_new0(struct stack, 1);
        if (!stack) {
-               BT_LOGE_STR("Failed to allocate one stack.");
+               BT_COMP_LOGE_STR("Failed to allocate one stack.");
                goto error;
        }
 
        stack->bfcr = bfcr;
        stack->entries = g_array_new(FALSE, TRUE, sizeof(struct stack_entry));
        if (!stack->entries) {
-               BT_LOGE_STR("Failed to allocate a GArray.");
+               BT_COMP_LOGE_STR("Failed to allocate a GArray.");
                goto error;
        }
 
-       BT_LOGD("Created stack: addr=%p", stack);
+       BT_COMP_LOGD("Created stack: addr=%p", stack);
        return stack;
 
 error:
@@ -220,7 +208,7 @@ void stack_destroy(struct stack *stack)
        }
 
        bfcr = stack->bfcr;
-       BT_LOGD("Destroying stack: addr=%p", stack);
+       BT_COMP_LOGD("Destroying stack: addr=%p", stack);
 
        if (stack->entries) {
                g_array_free(stack->entries, TRUE);
@@ -236,10 +224,10 @@ int stack_push(struct stack *stack, struct ctf_field_class *base_class,
        struct stack_entry *entry;
        struct bt_bfcr *bfcr;
 
-       BT_ASSERT(stack);
-       BT_ASSERT(base_class);
+       BT_ASSERT_DBG(stack);
+       BT_ASSERT_DBG(base_class);
        bfcr = stack->bfcr;
-       BT_LOGV("Pushing field class on stack: stack-addr=%p, "
+       BT_COMP_LOGT("Pushing field class on stack: stack-addr=%p, "
                "fc-addr=%p, fc-type=%d, base-length=%zu, "
                "stack-size-before=%zu, stack-size-after=%zu",
                stack, base_class, base_class->type,
@@ -289,7 +277,7 @@ int64_t get_compound_field_class_length(struct bt_bfcr *bfcr,
                        bfcr->user.data);
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        return length;
@@ -302,7 +290,7 @@ int stack_push_with_len(struct bt_bfcr *bfcr, struct ctf_field_class *base_class
        int64_t length = get_compound_field_class_length(bfcr, base_class);
 
        if (length < 0) {
-               BT_LOGW("Cannot get compound field class's field count: "
+               BT_COMP_LOGW("Cannot get compound field class's field count: "
                        "bfcr-addr=%p, fc-addr=%p, fc-type=%d",
                        bfcr, base_class, base_class->type);
                ret = BT_BFCR_STATUS_ERROR;
@@ -318,7 +306,7 @@ end:
 static inline
 unsigned int stack_size(struct stack *stack)
 {
-       BT_ASSERT(stack);
+       BT_ASSERT_DBG(stack);
        return stack->size;
 }
 
@@ -327,10 +315,10 @@ void stack_pop(struct stack *stack)
 {
        struct bt_bfcr *bfcr;
 
-       BT_ASSERT(stack);
-       BT_ASSERT(stack_size(stack));
+       BT_ASSERT_DBG(stack);
+       BT_ASSERT_DBG(stack_size(stack));
        bfcr = stack->bfcr;
-       BT_LOGV("Popping from stack: "
+       BT_COMP_LOGT("Popping from stack: "
                "stack-addr=%p, stack-size-before=%u, stack-size-after=%u",
                stack, stack->entries->len, stack->entries->len - 1);
        stack->size--;
@@ -345,15 +333,15 @@ bool stack_empty(struct stack *stack)
 static
 void stack_clear(struct stack *stack)
 {
-       BT_ASSERT(stack);
+       BT_ASSERT_DBG(stack);
        stack->size = 0;
 }
 
 static inline
 struct stack_entry *stack_top(struct stack *stack)
 {
-       BT_ASSERT(stack);
-       BT_ASSERT(stack_size(stack));
+       BT_ASSERT_DBG(stack);
+       BT_ASSERT_DBG(stack_size(stack));
        return &g_array_index(stack->entries, struct stack_entry,
                stack->size - 1);
 }
@@ -367,7 +355,7 @@ size_t available_bits(struct bt_bfcr *bfcr)
 static inline
 void consume_bits(struct bt_bfcr *bfcr, size_t incr)
 {
-       BT_LOGV("Advancing cursor: bfcr-addr=%p, cur-before=%zu, cur-after=%zu",
+       BT_COMP_LOGT("Advancing cursor: bfcr-addr=%p, cur-before=%zu, cur-after=%zu",
                bfcr, bfcr->buf.at, bfcr->buf.at + incr);
        bfcr->buf.at += incr;
 }
@@ -472,10 +460,10 @@ void read_unsigned_bitfield(struct bt_bfcr *bfcr, const uint8_t *buf, size_t at,
                bt_bitfield_read_le(buf, uint8_t, at, field_size, v);
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
-       BT_LOGV("Read unsigned bit array: cur=%zu, size=%u, "
+       BT_COMP_LOGT("Read unsigned bit array: cur=%zu, size=%u, "
                "bo=%d, val=%" PRIu64, at, field_size, bo, *v);
 }
 
@@ -491,10 +479,10 @@ void read_signed_bitfield(struct bt_bfcr *bfcr, const uint8_t *buf, size_t at,
                bt_bitfield_read_le(buf, uint8_t, at, field_size, v);
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
-       BT_LOGV("Read signed bit array: cur=%zu, size=%u, "
+       BT_COMP_LOGT("Read signed bit array: cur=%zu, size=%u, "
                "bo=%d, val=%" PRId64, at, field_size, bo, *v);
 }
 
@@ -513,12 +501,12 @@ enum bt_bfcr_status validate_contiguous_bo(struct bt_bfcr *bfcr,
        }
 
        /* Always valid if last byte order is unknown */
-       if (bfcr->last_bo == -1) {
+       if (bfcr->last_bo == CTF_BYTE_ORDER_UNKNOWN) {
                goto end;
        }
 
        /* Always valid if next byte order is unknown */
-       if (next_bo == -1) {
+       if (next_bo == CTF_BYTE_ORDER_UNKNOWN) {
                goto end;
        }
 
@@ -540,7 +528,7 @@ enum bt_bfcr_status validate_contiguous_bo(struct bt_bfcr *bfcr,
 
 end:
        if (status < 0) {
-               BT_LOGW("Cannot read bit array: two different byte orders not at a byte boundary: "
+               BT_COMP_LOGW("Cannot read bit array: two different byte orders not at a byte boundary: "
                        "bfcr-addr=%p, last-bo=%d, next-bo=%d",
                        bfcr, bfcr->last_bo, next_bo);
        }
@@ -558,7 +546,7 @@ enum bt_bfcr_status read_basic_float_and_call_cb(struct bt_bfcr *bfcr,
        enum bt_bfcr_status status = BT_BFCR_STATUS_OK;
        struct ctf_field_class_float *fc = (void *) bfcr->cur_basic_field_class;
 
-       BT_ASSERT(fc);
+       BT_ASSERT_DBG(fc);
        field_size = fc->base.size;
        bo = fc->base.byte_order;
        bfcr->cur_bo = bo;
@@ -590,20 +578,20 @@ enum bt_bfcr_status read_basic_float_and_call_cb(struct bt_bfcr *bfcr,
        }
        default:
                /* Only 32-bit and 64-bit fields are supported currently */
-               abort();
+               bt_common_abort();
        }
 
-       BT_LOGV("Read floating point number value: bfcr=%p, cur=%zu, val=%f",
+       BT_COMP_LOGT("Read floating point number value: bfcr=%p, cur=%zu, val=%f",
                bfcr, at, dblval);
 
        if (bfcr->user.cbs.classes.floating_point) {
-               BT_LOGV("Calling user function (floating point number).");
+               BT_COMP_LOGT("Calling user function (floating point number).");
                status = bfcr->user.cbs.classes.floating_point(dblval,
                        bfcr->cur_basic_field_class, bfcr->user.data);
-               BT_LOGV("User function returned: status=%s",
+               BT_COMP_LOGT("User function returned: status=%s",
                        bt_bfcr_status_string(status));
                if (status != BT_BFCR_STATUS_OK) {
-                       BT_LOGW("User function failed: bfcr-addr=%p, status=%s",
+                       BT_COMP_LOGW("User function failed: bfcr-addr=%p, status=%s",
                                bfcr, bt_bfcr_status_string(status));
                }
        }
@@ -636,13 +624,13 @@ enum bt_bfcr_status read_basic_int_and_call_cb(struct bt_bfcr *bfcr,
                read_signed_bitfield(bfcr, buf, at, field_size, bo, &v);
 
                if (bfcr->user.cbs.classes.signed_int) {
-                       BT_LOGV("Calling user function (signed integer).");
+                       BT_COMP_LOGT("Calling user function (signed integer).");
                        status = bfcr->user.cbs.classes.signed_int(v,
                                bfcr->cur_basic_field_class, bfcr->user.data);
-                       BT_LOGV("User function returned: status=%s",
+                       BT_COMP_LOGT("User function returned: status=%s",
                                bt_bfcr_status_string(status));
                        if (status != BT_BFCR_STATUS_OK) {
-                               BT_LOGW("User function failed: "
+                               BT_COMP_LOGW("User function failed: "
                                        "bfcr-addr=%p, status=%s",
                                        bfcr, bt_bfcr_status_string(status));
                        }
@@ -653,13 +641,13 @@ enum bt_bfcr_status read_basic_int_and_call_cb(struct bt_bfcr *bfcr,
                read_unsigned_bitfield(bfcr, buf, at, field_size, bo, &v);
 
                if (bfcr->user.cbs.classes.unsigned_int) {
-                       BT_LOGV("Calling user function (unsigned integer).");
+                       BT_COMP_LOGT("Calling user function (unsigned integer).");
                        status = bfcr->user.cbs.classes.unsigned_int(v,
                                bfcr->cur_basic_field_class, bfcr->user.data);
-                       BT_LOGV("User function returned: status=%s",
+                       BT_COMP_LOGT("User function returned: status=%s",
                                bt_bfcr_status_string(status));
                        if (status != BT_BFCR_STATUS_OK) {
-                               BT_LOGW("User function failed: "
+                               BT_COMP_LOGW("User function failed: "
                                        "bfcr-addr=%p, status=%s",
                                        bfcr, bt_bfcr_status_string(status));
                        }
@@ -680,14 +668,14 @@ enum bt_bfcr_status read_bit_array_class_and_call_continue(struct bt_bfcr *bfcr,
                (void *) bfcr->cur_basic_field_class;
 
        if (!at_least_one_bit_left(bfcr)) {
-               BT_LOGV("Reached end of data: bfcr-addr=%p", bfcr);
+               BT_COMP_LOGT("Reached end of data: bfcr-addr=%p", bfcr);
                status = BT_BFCR_STATUS_EOF;
                goto end;
        }
 
        available = available_bits(bfcr);
        needed_bits = fc->size - bfcr->stitch.at;
-       BT_LOGV("Continuing basic field decoding: "
+       BT_COMP_LOGT("Continuing basic field decoding: "
                "bfcr-addr=%p, field-size=%u, needed-size=%zu, "
                "available-size=%zu",
                bfcr, fc->size, needed_bits, available);
@@ -697,7 +685,7 @@ enum bt_bfcr_status read_bit_array_class_and_call_continue(struct bt_bfcr *bfcr,
                status = read_basic_and_call_cb(bfcr, bfcr->stitch.buf,
                        bfcr->stitch.offset);
                if (status != BT_BFCR_STATUS_OK) {
-                       BT_LOGW("Cannot read basic field: "
+                       BT_COMP_LOGW("Cannot read basic field: "
                                "bfcr-addr=%p, fc-addr=%p, status=%s",
                                bfcr, bfcr->cur_basic_field_class,
                                bt_bfcr_status_string(status));
@@ -717,7 +705,7 @@ enum bt_bfcr_status read_bit_array_class_and_call_continue(struct bt_bfcr *bfcr,
        }
 
        /* We are here; it means we don't have enough data to decode this */
-       BT_LOGV_STR("Not enough data to read the next basic field: appending to stitch buffer.");
+       BT_COMP_LOGT_STR("Not enough data to read the next basic field: appending to stitch buffer.");
        stitch_append_from_remaining_buf(bfcr);
        status = BT_BFCR_STATUS_EOF;
 
@@ -735,7 +723,7 @@ enum bt_bfcr_status read_bit_array_class_and_call_begin(struct bt_bfcr *bfcr,
                (void *) bfcr->cur_basic_field_class;
 
        if (!at_least_one_bit_left(bfcr)) {
-               BT_LOGV("Reached end of data: bfcr-addr=%p", bfcr);
+               BT_COMP_LOGT("Reached end of data: bfcr-addr=%p", bfcr);
                status = BT_BFCR_STATUS_EOF;
                goto end;
        }
@@ -750,11 +738,11 @@ enum bt_bfcr_status read_bit_array_class_and_call_begin(struct bt_bfcr *bfcr,
 
        if (fc->size <= available) {
                /* We have all the bits; decode and set now */
-               BT_ASSERT(bfcr->buf.addr);
+               BT_ASSERT_DBG(bfcr->buf.addr);
                status = read_basic_and_call_cb(bfcr, bfcr->buf.addr,
                        buf_at_from_addr(bfcr));
                if (status != BT_BFCR_STATUS_OK) {
-                       BT_LOGW("Cannot read basic field: "
+                       BT_COMP_LOGW("Cannot read basic field: "
                                "bfcr-addr=%p, fc-addr=%p, status=%s",
                                bfcr, bfcr->cur_basic_field_class,
                                bt_bfcr_status_string(status));
@@ -777,7 +765,7 @@ enum bt_bfcr_status read_bit_array_class_and_call_begin(struct bt_bfcr *bfcr,
        }
 
        /* We are here; it means we don't have enough data to decode this */
-       BT_LOGV_STR("Not enough data to read the next basic field: setting stitch buffer.");
+       BT_COMP_LOGT_STR("Not enough data to read the next basic field: setting stitch buffer.");
        stitch_set_from_remaining_buf(bfcr);
        bfcr->state = BFCR_STATE_READ_BASIC_CONTINUE;
        status = BT_BFCR_STATUS_EOF;
@@ -828,26 +816,26 @@ enum bt_bfcr_status read_basic_string_class_and_call(
        enum bt_bfcr_status status = BT_BFCR_STATUS_OK;
 
        if (!at_least_one_bit_left(bfcr)) {
-               BT_LOGV("Reached end of data: bfcr-addr=%p", bfcr);
+               BT_COMP_LOGT("Reached end of data: bfcr-addr=%p", bfcr);
                status = BT_BFCR_STATUS_EOF;
                goto end;
        }
 
-       BT_ASSERT(buf_at_from_addr(bfcr) % 8 == 0);
+       BT_ASSERT_DBG(buf_at_from_addr(bfcr) % 8 == 0);
        available_bytes = BITS_TO_BYTES_FLOOR(available_bits(bfcr));
        buf_at_bytes = BITS_TO_BYTES_FLOOR(buf_at_from_addr(bfcr));
-       BT_ASSERT(bfcr->buf.addr);
+       BT_ASSERT_DBG(bfcr->buf.addr);
        first_chr = &bfcr->buf.addr[buf_at_bytes];
        result = memchr(first_chr, '\0', available_bytes);
 
        if (begin && bfcr->user.cbs.classes.string_begin) {
-               BT_LOGV("Calling user function (string, beginning).");
+               BT_COMP_LOGT("Calling user function (string, beginning).");
                status = bfcr->user.cbs.classes.string_begin(
                        bfcr->cur_basic_field_class, bfcr->user.data);
-               BT_LOGV("User function returned: status=%s",
+               BT_COMP_LOGT("User function returned: status=%s",
                        bt_bfcr_status_string(status));
                if (status != BT_BFCR_STATUS_OK) {
-                       BT_LOGW("User function failed: bfcr-addr=%p, status=%s",
+                       BT_COMP_LOGW("User function failed: bfcr-addr=%p, status=%s",
                                bfcr, bt_bfcr_status_string(status));
                        goto end;
                }
@@ -856,15 +844,15 @@ enum bt_bfcr_status read_basic_string_class_and_call(
        if (!result) {
                /* No null character yet */
                if (bfcr->user.cbs.classes.string) {
-                       BT_LOGV("Calling user function (substring).");
+                       BT_COMP_LOGT("Calling user function (substring).");
                        status = bfcr->user.cbs.classes.string(
                                (const char *) first_chr,
                                available_bytes, bfcr->cur_basic_field_class,
                                bfcr->user.data);
-                       BT_LOGV("User function returned: status=%s",
+                       BT_COMP_LOGT("User function returned: status=%s",
                                bt_bfcr_status_string(status));
                        if (status != BT_BFCR_STATUS_OK) {
-                               BT_LOGW("User function failed: "
+                               BT_COMP_LOGW("User function failed: "
                                        "bfcr-addr=%p, status=%s",
                                        bfcr, bt_bfcr_status_string(status));
                                goto end;
@@ -879,15 +867,15 @@ enum bt_bfcr_status read_basic_string_class_and_call(
                size_t result_len = (size_t) (result - first_chr);
 
                if (bfcr->user.cbs.classes.string && result_len) {
-                       BT_LOGV("Calling user function (substring).");
+                       BT_COMP_LOGT("Calling user function (substring).");
                        status = bfcr->user.cbs.classes.string(
                                (const char *) first_chr,
                                result_len, bfcr->cur_basic_field_class,
                                bfcr->user.data);
-                       BT_LOGV("User function returned: status=%s",
+                       BT_COMP_LOGT("User function returned: status=%s",
                                bt_bfcr_status_string(status));
                        if (status != BT_BFCR_STATUS_OK) {
-                               BT_LOGW("User function failed: "
+                               BT_COMP_LOGW("User function failed: "
                                        "bfcr-addr=%p, status=%s",
                                        bfcr, bt_bfcr_status_string(status));
                                goto end;
@@ -895,13 +883,13 @@ enum bt_bfcr_status read_basic_string_class_and_call(
                }
 
                if (bfcr->user.cbs.classes.string_end) {
-                       BT_LOGV("Calling user function (string, end).");
+                       BT_COMP_LOGT("Calling user function (string, end).");
                        status = bfcr->user.cbs.classes.string_end(
                                bfcr->cur_basic_field_class, bfcr->user.data);
-                       BT_LOGV("User function returned: status=%s",
+                       BT_COMP_LOGT("User function returned: status=%s",
                                bt_bfcr_status_string(status));
                        if (status != BT_BFCR_STATUS_OK) {
-                               BT_LOGW("User function failed: "
+                               BT_COMP_LOGW("User function failed: "
                                        "bfcr-addr=%p, status=%s",
                                        bfcr, bt_bfcr_status_string(status));
                                goto end;
@@ -930,7 +918,7 @@ enum bt_bfcr_status read_basic_begin_state(struct bt_bfcr *bfcr)
 {
        enum bt_bfcr_status status;
 
-       BT_ASSERT(bfcr->cur_basic_field_class);
+       BT_ASSERT_DBG(bfcr->cur_basic_field_class);
 
        switch (bfcr->cur_basic_field_class->type) {
        case CTF_FIELD_CLASS_TYPE_INT:
@@ -944,7 +932,7 @@ enum bt_bfcr_status read_basic_begin_state(struct bt_bfcr *bfcr)
                status = read_basic_string_class_and_call(bfcr, true);
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        return status;
@@ -955,7 +943,7 @@ enum bt_bfcr_status read_basic_continue_state(struct bt_bfcr *bfcr)
 {
        enum bt_bfcr_status status;
 
-       BT_ASSERT(bfcr->cur_basic_field_class);
+       BT_ASSERT_DBG(bfcr->cur_basic_field_class);
 
        switch (bfcr->cur_basic_field_class->type) {
        case CTF_FIELD_CLASS_TYPE_INT:
@@ -969,7 +957,7 @@ enum bt_bfcr_status read_basic_continue_state(struct bt_bfcr *bfcr)
                status = read_basic_string_class_and_call(bfcr, false);
                break;
        default:
-               abort();
+               bt_common_abort();
        }
 
        return status;
@@ -999,7 +987,7 @@ enum bt_bfcr_status align_class_state(struct bt_bfcr *bfcr,
         * 0 means "undefined" for variants; what we really want is 1
         * (always aligned)
         */
-       BT_ASSERT(field_alignment >= 1);
+       BT_ASSERT_DBG(field_alignment >= 1);
 
        /* Compute how many bits we need to skip */
        skip_bits = bits_to_skip_to_align_to(bfcr, (size_t) field_alignment);
@@ -1027,7 +1015,7 @@ enum bt_bfcr_status align_class_state(struct bt_bfcr *bfcr,
                goto end;
        } else {
                /* No: need more data */
-               BT_LOGV("Reached end of data when aligning: bfcr-addr=%p", bfcr);
+               BT_COMP_LOGT("Reached end of data when aligning: bfcr-addr=%p", bfcr);
                status = BT_BFCR_STATUS_EOF;
        }
 
@@ -1052,13 +1040,13 @@ enum bt_bfcr_status next_field_state(struct bt_bfcr *bfcr)
        /* Are we done with this base class? */
        while (top->index == top->base_len) {
                if (bfcr->user.cbs.classes.compound_end) {
-                       BT_LOGV("Calling user function (compound, end).");
+                       BT_COMP_LOGT("Calling user function (compound, end).");
                        status = bfcr->user.cbs.classes.compound_end(
                                top->base_class, bfcr->user.data);
-                       BT_LOGV("User function returned: status=%s",
+                       BT_COMP_LOGT("User function returned: status=%s",
                                bt_bfcr_status_string(status));
                        if (status != BT_BFCR_STATUS_OK) {
-                               BT_LOGW("User function failed: bfcr-addr=%p, status=%s",
+                               BT_COMP_LOGW("User function failed: bfcr-addr=%p, status=%s",
                                        bfcr, bt_bfcr_status_string(status));
                                goto end;
                        }
@@ -1102,7 +1090,7 @@ enum bt_bfcr_status next_field_state(struct bt_bfcr *bfcr)
        }
 
        if (!next_field_class) {
-               BT_LOGW("Cannot get the field class of the next field: "
+               BT_COMP_LOGW("Cannot get the field class of the next field: "
                        "bfcr-addr=%p, base-fc-addr=%p, base-fc-type=%d, "
                        "index=%" PRId64,
                        bfcr, top->base_class, top->base_class->type,
@@ -1113,13 +1101,13 @@ enum bt_bfcr_status next_field_state(struct bt_bfcr *bfcr)
 
        if (next_field_class->is_compound) {
                if (bfcr->user.cbs.classes.compound_begin) {
-                       BT_LOGV("Calling user function (compound, begin).");
+                       BT_COMP_LOGT("Calling user function (compound, begin).");
                        status = bfcr->user.cbs.classes.compound_begin(
                                next_field_class, bfcr->user.data);
-                       BT_LOGV("User function returned: status=%s",
+                       BT_COMP_LOGT("User function returned: status=%s",
                                bt_bfcr_status_string(status));
                        if (status != BT_BFCR_STATUS_OK) {
-                               BT_LOGW("User function failed: bfcr-addr=%p, status=%s",
+                               BT_COMP_LOGW("User function failed: bfcr-addr=%p, status=%s",
                                        bfcr, bt_bfcr_status_string(status));
                                goto end;
                        }
@@ -1136,7 +1124,7 @@ enum bt_bfcr_status next_field_state(struct bt_bfcr *bfcr)
                bfcr->state = BFCR_STATE_ALIGN_COMPOUND;
        } else {
                /* Replace current basic field class */
-               BT_LOGV("Replacing current basic field class: "
+               BT_COMP_LOGT("Replacing current basic field class: "
                        "bfcr-addr=%p, cur-basic-fc-addr=%p, "
                        "next-basic-fc-addr=%p",
                        bfcr, bfcr->cur_basic_field_class, next_field_class);
@@ -1155,7 +1143,7 @@ enum bt_bfcr_status handle_state(struct bt_bfcr *bfcr)
 {
        enum bt_bfcr_status status = BT_BFCR_STATUS_OK;
 
-       BT_LOGV("Handling state: bfcr-addr=%p, state=%s",
+       BT_COMP_LOGT("Handling state: bfcr-addr=%p, state=%s",
                bfcr, bfcr_state_string(bfcr->state));
 
        switch (bfcr->state) {
@@ -1180,30 +1168,31 @@ enum bt_bfcr_status handle_state(struct bt_bfcr *bfcr)
                break;
        }
 
-       BT_LOGV("Handled state: bfcr-addr=%p, status=%s",
+       BT_COMP_LOGT("Handled state: bfcr-addr=%p, status=%s",
                bfcr, bt_bfcr_status_string(status));
        return status;
 }
 
 BT_HIDDEN
 struct bt_bfcr *bt_bfcr_create(struct bt_bfcr_cbs cbs, void *data,
-               bt_logging_level log_level)
+               bt_logging_level log_level, bt_self_component *self_comp)
 {
        struct bt_bfcr *bfcr;
 
-       BT_LOG_WRITE_CUR_LVL(BT_LOG_DEBUG, log_level, BT_LOG_TAG,
+       BT_COMP_LOG_CUR_LVL(BT_LOG_DEBUG, log_level, self_comp,
                "Creating binary field class reader (BFCR).");
        bfcr = g_new0(struct bt_bfcr, 1);
        if (!bfcr) {
-               BT_LOG_WRITE_CUR_LVL(BT_LOG_ERROR, log_level, BT_LOG_TAG,
+               BT_COMP_LOG_CUR_LVL(BT_LOG_ERROR, log_level, self_comp,
                        "Failed to allocate one binary class reader.");
                goto end;
        }
 
        bfcr->log_level = log_level;
+       bfcr->self_comp = self_comp;
        bfcr->stack = stack_new(bfcr);
        if (!bfcr->stack) {
-               BT_LOGE_STR("Cannot create BFCR's stack.");
+               BT_COMP_LOGE_STR("Cannot create BFCR's stack.");
                bt_bfcr_destroy(bfcr);
                bfcr = NULL;
                goto end;
@@ -1212,7 +1201,7 @@ struct bt_bfcr *bt_bfcr_create(struct bt_bfcr_cbs cbs, void *data,
        bfcr->state = BFCR_STATE_NEXT_FIELD;
        bfcr->user.cbs = cbs;
        bfcr->user.data = data;
-       BT_LOGD("Created BFCR: addr=%p", bfcr);
+       BT_COMP_LOGD("Created BFCR: addr=%p", bfcr);
 
 end:
        return bfcr;
@@ -1225,24 +1214,24 @@ void bt_bfcr_destroy(struct bt_bfcr *bfcr)
                stack_destroy(bfcr->stack);
        }
 
-       BT_LOGD("Destroying BFCR: addr=%p", bfcr);
+       BT_COMP_LOGD("Destroying BFCR: addr=%p", bfcr);
        g_free(bfcr);
 }
 
 static
 void reset(struct bt_bfcr *bfcr)
 {
-       BT_LOGD("Resetting BFCR: addr=%p", bfcr);
+       BT_COMP_LOGD("Resetting BFCR: addr=%p", bfcr);
        stack_clear(bfcr->stack);
        stitch_reset(bfcr);
        bfcr->buf.addr = NULL;
-       bfcr->last_bo = -1;
+       bfcr->last_bo = CTF_BYTE_ORDER_UNKNOWN;
 }
 
 static
 void update_packet_offset(struct bt_bfcr *bfcr)
 {
-       BT_LOGV("Updating packet offset for next call: "
+       BT_COMP_LOGT("Updating packet offset for next call: "
                "bfcr-addr=%p, cur-packet-offset=%zu, next-packet-offset=%zu",
                bfcr, bfcr->buf.packet_offset,
                bfcr->buf.packet_offset + bfcr->buf.at);
@@ -1255,8 +1244,8 @@ size_t bt_bfcr_start(struct bt_bfcr *bfcr,
        size_t offset, size_t packet_offset, size_t sz,
        enum bt_bfcr_status *status)
 {
-       BT_ASSERT(bfcr);
-       BT_ASSERT(BYTES_TO_BITS(sz) >= offset);
+       BT_ASSERT_DBG(bfcr);
+       BT_ASSERT_DBG(BYTES_TO_BITS(sz) >= offset);
        reset(bfcr);
        bfcr->buf.addr = buf;
        bfcr->buf.offset = offset;
@@ -1266,7 +1255,7 @@ size_t bt_bfcr_start(struct bt_bfcr *bfcr,
        bfcr->buf.sz = BYTES_TO_BITS(sz) - offset;
        *status = BT_BFCR_STATUS_OK;
 
-       BT_LOGV("Starting decoding: bfcr-addr=%p, fc-addr=%p, "
+       BT_COMP_LOGT("Starting decoding: bfcr-addr=%p, fc-addr=%p, "
                "buf-addr=%p, buf-size=%zu, offset=%zu, "
                "packet-offset=%zu",
                bfcr, cls, buf, sz, offset, packet_offset);
@@ -1277,13 +1266,13 @@ size_t bt_bfcr_start(struct bt_bfcr *bfcr,
                int stack_ret;
 
                if (bfcr->user.cbs.classes.compound_begin) {
-                       BT_LOGV("Calling user function (compound, begin).");
+                       BT_COMP_LOGT("Calling user function (compound, begin).");
                        *status = bfcr->user.cbs.classes.compound_begin(
                                cls, bfcr->user.data);
-                       BT_LOGV("User function returned: status=%s",
+                       BT_COMP_LOGT("User function returned: status=%s",
                                bt_bfcr_status_string(*status));
                        if (*status != BT_BFCR_STATUS_OK) {
-                               BT_LOGW("User function failed: bfcr-addr=%p, status=%s",
+                               BT_COMP_LOGW("User function failed: bfcr-addr=%p, status=%s",
                                        bfcr, bt_bfcr_status_string(*status));
                                goto end;
                        }
@@ -1304,7 +1293,7 @@ size_t bt_bfcr_start(struct bt_bfcr *bfcr,
        }
 
        /* Run the machine! */
-       BT_LOGV_STR("Running the state machine.");
+       BT_COMP_LOGT_STR("Running the state machine.");
 
        while (true) {
                *status = handle_state(bfcr);
@@ -1325,9 +1314,9 @@ BT_HIDDEN
 size_t bt_bfcr_continue(struct bt_bfcr *bfcr, const uint8_t *buf, size_t sz,
                enum bt_bfcr_status *status)
 {
-       BT_ASSERT(bfcr);
-       BT_ASSERT(buf);
-       BT_ASSERT(sz > 0);
+       BT_ASSERT_DBG(bfcr);
+       BT_ASSERT_DBG(buf);
+       BT_ASSERT_DBG(sz > 0);
        bfcr->buf.addr = buf;
        bfcr->buf.offset = 0;
        bfcr->buf.at = 0;
@@ -1335,11 +1324,11 @@ size_t bt_bfcr_continue(struct bt_bfcr *bfcr, const uint8_t *buf, size_t sz,
        bfcr->buf.sz = BYTES_TO_BITS(sz);
        *status = BT_BFCR_STATUS_OK;
 
-       BT_LOGV("Continuing decoding: bfcr-addr=%p, buf-addr=%p, buf-size=%zu",
+       BT_COMP_LOGT("Continuing decoding: bfcr-addr=%p, buf-addr=%p, buf-size=%zu",
                bfcr, buf, sz);
 
        /* Continue running the machine */
-       BT_LOGV_STR("Running the state machine.");
+       BT_COMP_LOGT_STR("Running the state machine.");
 
        while (true) {
                *status = handle_state(bfcr);
@@ -1358,7 +1347,7 @@ BT_HIDDEN
 void bt_bfcr_set_unsigned_int_cb(struct bt_bfcr *bfcr,
                bt_bfcr_unsigned_int_cb_func cb)
 {
-       BT_ASSERT(bfcr);
-       BT_ASSERT(cb);
+       BT_ASSERT_DBG(bfcr);
+       BT_ASSERT_DBG(cb);
        bfcr->user.cbs.classes.unsigned_int = cb;
 }
This page took 0.035699 seconds and 4 git commands to generate.