X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Ftrace-ir%2Fclock-snapshot.c;h=55e3777b2f098ae123eaedf069959820fca14994;hb=867eb7632255f6a84234542198bd7edaac1bce12;hp=944532a2359e8acce1d40593a2ca05f7760ecc7c;hpb=c2d9d9cf280189e77453e82e4979c307eef111e7;p=babeltrace.git diff --git a/src/lib/trace-ir/clock-snapshot.c b/src/lib/trace-ir/clock-snapshot.c index 944532a2..55e3777b 100644 --- a/src/lib/trace-ir/clock-snapshot.c +++ b/src/lib/trace-ir/clock-snapshot.c @@ -1,43 +1,29 @@ /* - * Copyright 2017-2018 Philippe Proulx - * - * 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. + * SPDX-License-Identifier: MIT * - * 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. + * Copyright 2017-2018 Philippe Proulx */ #define BT_LOG_TAG "LIB/CLOCK-SNAPSHOT" #include "lib/logging.h" -#include "lib/assert-pre.h" -#include "compat/uuid.h" +#include "lib/assert-cond.h" +#include "common/uuid.h" #include "clock-class.h" #include "clock-snapshot.h" -#include +#include #include "compat/compiler.h" #include #include "compat/string.h" #include #include "lib/object.h" #include "common/assert.h" +#include "lib/func-status.h" BT_HIDDEN void bt_clock_snapshot_destroy(struct bt_clock_snapshot *clock_snapshot) { + BT_ASSERT(clock_snapshot); BT_LIB_LOGD("Destroying clock snapshot: %!+k", clock_snapshot); BT_OBJECT_PUT_REF_AND_RESET(clock_snapshot->clock_class); g_free(clock_snapshot); @@ -54,13 +40,14 @@ struct bt_clock_snapshot *bt_clock_snapshot_new( clock_class); ret = g_new0(struct bt_clock_snapshot, 1); if (!ret) { - BT_LOGE_STR("Failed to allocate one clock snapshot."); + BT_LIB_LOGE_APPEND_CAUSE( + "Failed to allocate one clock snapshot."); goto end; } bt_object_init_unique(&ret->base); ret->clock_class = clock_class; - bt_object_get_no_null_check(clock_class); + bt_object_get_ref_no_null_check(clock_class); bt_clock_class_freeze(clock_class); BT_LIB_LOGD("Created clock snapshot object: %!+k", ret); @@ -74,25 +61,18 @@ struct bt_clock_snapshot *bt_clock_snapshot_create( { struct bt_clock_snapshot *clock_snapshot = NULL; - BT_ASSERT(clock_class); + BT_ASSERT_DBG(clock_class); clock_snapshot = bt_object_pool_create_object(&clock_class->cs_pool); if (!clock_snapshot) { - BT_LIB_LOGE("Cannot allocate one clock snapshot from clock class's clock snapshot pool: " + BT_LIB_LOGE_APPEND_CAUSE( + "Cannot allocate one clock snapshot from clock class's clock snapshot pool: " "%![cc-]+K", clock_class); - goto error; + goto end; } if (G_LIKELY(!clock_snapshot->clock_class)) { clock_snapshot->clock_class = clock_class; - bt_object_get_no_null_check(clock_class); - } - - goto end; - -error: - if (clock_snapshot) { - bt_clock_snapshot_recycle(clock_snapshot); - clock_snapshot = NULL; + bt_object_get_ref_no_null_check(clock_class); } end: @@ -104,7 +84,7 @@ void bt_clock_snapshot_recycle(struct bt_clock_snapshot *clock_snapshot) { struct bt_clock_class *clock_class; - BT_ASSERT(clock_snapshot); + BT_ASSERT_DBG(clock_snapshot); BT_LIB_LOGD("Recycling clock snapshot: %!+k", clock_snapshot); /* @@ -131,7 +111,7 @@ void bt_clock_snapshot_recycle(struct bt_clock_snapshot *clock_snapshot) */ bt_clock_snapshot_reset(clock_snapshot); clock_class = clock_snapshot->clock_class; - BT_ASSERT(clock_class); + BT_ASSERT_DBG(clock_class); clock_snapshot->clock_class = NULL; bt_object_pool_recycle_object(&clock_class->cs_pool, clock_snapshot); bt_object_put_ref(clock_class); @@ -140,28 +120,30 @@ void bt_clock_snapshot_recycle(struct bt_clock_snapshot *clock_snapshot) uint64_t bt_clock_snapshot_get_value( const struct bt_clock_snapshot *clock_snapshot) { - BT_ASSERT_PRE_NON_NULL(clock_snapshot, "Clock snapshot"); - BT_ASSERT_PRE(clock_snapshot->is_set, - "Clock snapshot is not set: %!+k", clock_snapshot); + BT_ASSERT_PRE_DEV_CS_NON_NULL(clock_snapshot); + BT_ASSERT_DBG(clock_snapshot->is_set); return clock_snapshot->value_cycles; } -enum bt_clock_snapshot_status bt_clock_snapshot_get_ns_from_origin( +enum bt_clock_snapshot_get_ns_from_origin_status +bt_clock_snapshot_get_ns_from_origin( const struct bt_clock_snapshot *clock_snapshot, int64_t *ret_value_ns) { - int ret = BT_CLOCK_SNAPSHOT_STATUS_OK; + int ret = BT_FUNC_STATUS_OK; - BT_ASSERT_PRE_NON_NULL(clock_snapshot, "Clock snapshot"); - BT_ASSERT_PRE_NON_NULL(ret_value_ns, "Value (ns) (output)"); - BT_ASSERT_PRE(clock_snapshot->is_set, - "Clock snapshot is not set: %!+k", clock_snapshot); + BT_ASSERT_PRE_DEV_NO_ERROR(); + BT_ASSERT_PRE_DEV_CS_NON_NULL(clock_snapshot); + BT_ASSERT_PRE_DEV_NON_NULL("value-ns-output", ret_value_ns, + "Value (ns) (output)"); + BT_ASSERT_DBG(clock_snapshot->is_set); if (clock_snapshot->ns_from_origin_overflows) { - BT_LIB_LOGD("Clock snapshot, once converted to nanoseconds from origin, " + BT_LIB_LOGE_APPEND_CAUSE( + "Clock snapshot, once converted to nanoseconds from origin, " "overflows the signed 64-bit integer range: " "%![cs-]+k", clock_snapshot); - ret = BT_CLOCK_SNAPSHOT_STATUS_OVERFLOW; + ret = BT_FUNC_STATUS_OVERFLOW_ERROR; goto end; } @@ -174,6 +156,6 @@ end: const struct bt_clock_class *bt_clock_snapshot_borrow_clock_class_const( const struct bt_clock_snapshot *clock_snapshot) { - BT_ASSERT_PRE_NON_NULL(clock_snapshot, "Clock snapshot"); + BT_ASSERT_PRE_DEV_CS_NON_NULL(clock_snapshot); return clock_snapshot->clock_class; }