/*
- * Copyright 2018 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.
+ * 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 2018 Philippe Proulx <pproulx@efficios.com>
*/
#define BT_LOG_TAG "LIB/LIB-LOGGING"
#include <stdlib.h>
#include <string.h>
#include <inttypes.h>
+#include <stdbool.h>
#include <stdint.h>
#include <wchar.h>
#include <glib.h>
prefix, (_prefix2)); \
\
if (snprintf_ret < 0 || snprintf_ret >= TMP_PREFIX_LEN - 1) { \
- abort(); \
+ bt_common_abort(); \
} \
\
tmp_prefix[TMP_PREFIX_LEN - 1] = '\0'; \
break;
}
- case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR:
- case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR:
- case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR:
- case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
{
const struct bt_field_class_option *opt_fc =
(const void *) field_class;
PRFIELD(bt_common_field_class_type_string(opt_fc->content_fc->type)));
if (field_class->type !=
- BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR) {
- const struct bt_field_class_option_with_selector *opt_with_sel_fc =
+ BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD) {
+ const struct bt_field_class_option_with_selector_field *opt_with_sel_fc =
(const void *) field_class;
if (opt_with_sel_fc->selector_fc) {
break;
}
- case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR:
- case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR:
- case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
{
const struct bt_field_class_variant *var_fc =
(const void *) field_class;
PRFIELD(var_fc->common.named_fcs->len));
}
- if (field_class->type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR ||
- field_class->type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR) {
- const struct bt_field_class_variant_with_selector *var_with_sel_fc =
+ if (field_class->type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD ||
+ field_class->type == BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD) {
+ const struct bt_field_class_variant_with_selector_field *var_with_sel_fc =
(const void *) var_fc;
if (var_with_sel_fc->selector_fc) {
fmt = ", %svalue=%" PRIx64;
}
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
if (field_class->common.type == BT_FIELD_CLASS_TYPE_SIGNED_INTEGER ||
field_class->common.type == BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION) {
if (!fmt) {
BUF_APPEND(fmt, PRFIELD(integer->value.u));
}
+#pragma GCC diagnostic pop
}
static inline void format_field(char **buf_ch, bool extended,
break;
}
- case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR:
- case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR:
- case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
{
const struct bt_field_variant *var_field = (const void *) field;
BUF_APPEND("%s", ", <CUR>");
break;
default:
- abort();
+ bt_common_abort();
}
}
}
case BT_VALUE_TYPE_ARRAY:
{
- int64_t count = bt_value_array_get_length(value);
+ uint64_t count = bt_value_array_get_length(value);
- BT_ASSERT(count >= 0);
BUF_APPEND(", %selement-count=%" PRId64, PRFIELD(count));
break;
}
&graph->packet_end_msg_pool);
}
+static inline void format_message_iterator_class(char **buf_ch,
+ bool extended, const char *prefix,
+ const struct bt_message_iterator_class *iterator_class)
+{
+ /* Empty, the address is automatically printed. */
+}
+
static inline void format_message_iterator(char **buf_ch,
bool extended, const char *prefix,
const struct bt_message_iterator *iterator)
{
char tmp_prefix[TMP_PREFIX_LEN];
- const struct bt_self_component_port_input_message_iterator *
+ const struct bt_message_iterator *
port_in_iter = (const void *) iterator;
if (port_in_iter->upstream_component) {
case 'n':
format_message(buf_ch, extended, prefix, obj);
break;
+ case 'I':
+ format_message_iterator_class(buf_ch, extended, prefix, obj);
+ break;
case 'i':
format_message_iterator(buf_ch, extended, prefix, obj);
break;
format_error_cause(buf_ch, extended, prefix, obj);
break;
default:
- abort();
+ bt_common_abort();
}
update_fmt:
}
status = bt_current_thread_error_append_cause_from_unknown(
- "Babeltrace library", file, line, "%s", lib_logging_buf);
+ BT_LIB_LOG_LIBBABELTRACE2_NAME, file, line, "%s",
+ lib_logging_buf);
if (status) {
/*
* Worst case: this error cause is not appended to the