From: Philippe Proulx Date: Sat, 8 Dec 2018 19:23:13 +0000 (-0500) Subject: Clock class API: use status X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=commitdiff_plain;h=8c41fd73456a0645bb1798174e49b882d4f7bff7 Clock class API: use status Signed-off-by: Philippe Proulx --- diff --git a/include/babeltrace/trace-ir/clock-class-const.h b/include/babeltrace/trace-ir/clock-class-const.h index 0974facc..f7afc248 100644 --- a/include/babeltrace/trace-ir/clock-class-const.h +++ b/include/babeltrace/trace-ir/clock-class-const.h @@ -36,6 +36,12 @@ extern "C" { #endif +enum bt_clock_class_status { + BT_CLOCK_CLASS_STATUS_OK = 0, + BT_CLOCK_CLASS_STATUS_NOMEM = -12, + BT_CLOCK_CLASS_STATUS_OVERFLOW = -75, +}; + extern const char *bt_clock_class_get_name( const bt_clock_class *clock_class); @@ -57,7 +63,7 @@ extern bt_bool bt_clock_class_is_absolute( extern bt_uuid bt_clock_class_get_uuid( const bt_clock_class *clock_class); -extern int bt_clock_class_cycles_to_ns_from_origin( +extern enum bt_clock_class_status bt_clock_class_cycles_to_ns_from_origin( const bt_clock_class *clock_class, uint64_t cycles, int64_t *ns_from_origin); diff --git a/include/babeltrace/trace-ir/clock-class.h b/include/babeltrace/trace-ir/clock-class.h index 5fae62ca..e0d87730 100644 --- a/include/babeltrace/trace-ir/clock-class.h +++ b/include/babeltrace/trace-ir/clock-class.h @@ -32,17 +32,20 @@ /* For bt_bool, bt_uuid, bt_clock_class */ #include +/* For enum bt_clock_class_status */ +#include + #ifdef __cplusplus extern "C" { #endif extern bt_clock_class *bt_clock_class_create(void); -extern int bt_clock_class_set_name(bt_clock_class *clock_class, - const char *name); +extern enum bt_clock_class_status bt_clock_class_set_name( + bt_clock_class *clock_class, const char *name); -extern int bt_clock_class_set_description(bt_clock_class *clock_class, - const char *description); +extern enum bt_clock_class_status bt_clock_class_set_description( + bt_clock_class *clock_class, const char *description); extern void bt_clock_class_set_frequency(bt_clock_class *clock_class, uint64_t freq); diff --git a/lib/trace-ir/clock-class.c b/lib/trace-ir/clock-class.c index a2465b41..273d8f58 100644 --- a/lib/trace-ir/clock-class.c +++ b/lib/trace-ir/clock-class.c @@ -26,6 +26,8 @@ #include #include +#include +#include #include #include #include @@ -160,8 +162,8 @@ const char *bt_clock_class_get_name(const struct bt_clock_class *clock_class) return clock_class->name.value; } -int bt_clock_class_set_name(struct bt_clock_class *clock_class, - const char *name) +enum bt_clock_class_status bt_clock_class_set_name( + struct bt_clock_class *clock_class, const char *name) { BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class"); BT_ASSERT_PRE_NON_NULL(name, "Name"); @@ -169,7 +171,7 @@ int bt_clock_class_set_name(struct bt_clock_class *clock_class, g_string_assign(clock_class->name.str, name); clock_class->name.value = clock_class->name.str->str; BT_LIB_LOGV("Set clock class's name: %!+K", clock_class); - return 0; + return BT_CLOCK_CLASS_STATUS_OK; } const char *bt_clock_class_get_description( @@ -179,8 +181,8 @@ const char *bt_clock_class_get_description( return clock_class->description.value; } -int bt_clock_class_set_description(struct bt_clock_class *clock_class, - const char *descr) +enum bt_clock_class_status bt_clock_class_set_description( + struct bt_clock_class *clock_class, const char *descr) { BT_ASSERT_PRE_NON_NULL(clock_class, "Clock class"); BT_ASSERT_PRE_NON_NULL(descr, "Description"); @@ -189,7 +191,7 @@ int bt_clock_class_set_description(struct bt_clock_class *clock_class, clock_class->description.value = clock_class->description.str->str; BT_LIB_LOGV("Set clock class's description: %!+K", clock_class); - return 0; + return BT_CLOCK_CLASS_STATUS_OK; } uint64_t bt_clock_class_get_frequency(const struct bt_clock_class *clock_class) @@ -302,7 +304,7 @@ void _bt_clock_class_freeze(const struct bt_clock_class *clock_class) ((struct bt_clock_class *) clock_class)->frozen = 1; } -int bt_clock_class_cycles_to_ns_from_origin( +enum bt_clock_class_status bt_clock_class_cycles_to_ns_from_origin( const struct bt_clock_class *clock_class, uint64_t cycles, int64_t *ns) { @@ -312,6 +314,7 @@ int bt_clock_class_cycles_to_ns_from_origin( BT_ASSERT_PRE_NON_NULL(ns, "Nanoseconds (output)"); ret = bt_util_ns_from_origin(clock_class, cycles, ns); if (ret) { + ret = BT_CLOCK_CLASS_STATUS_OVERFLOW; BT_LIB_LOGW("Cannot convert cycles to nanoseconds " "from origin for given clock class: " "value overflows the signed 64-bit integer range: "