X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fcommon%2Fcommon.h;h=2c9ef3825c6a648addc5eca1ae5d669df845d31d;hb=a6804e9483d50ec9a6e25d933b98cd3438077e0c;hp=1abe37ec11b094bf80713ad212a462f6e6f32f93;hpb=8b305066676fc7aa433e8eb668f9de8802008025;p=babeltrace.git diff --git a/src/common/common.h b/src/common/common.h index 1abe37ec..2c9ef382 100644 --- a/src/common/common.h +++ b/src/common/common.h @@ -1,29 +1,13 @@ -#ifndef BABELTRACE_COMMON_INTERNAL_H -#define BABELTRACE_COMMON_INTERNAL_H - /* + * SPDX-License-Identifier: MIT + * * Copyright (c) 2018 EfficiOS Inc. and Linux Foundation * Copyright (c) 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. - * - * 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. */ +#ifndef BABELTRACE_COMMON_INTERNAL_H +#define BABELTRACE_COMMON_INTERNAL_H + #include #include #include @@ -44,6 +28,10 @@ #include "common/macros.h" #include "common/safe.h" +#ifdef __cplusplus +extern "C" { +#endif + #define BT_COMMON_COLOR_RESET "\033[0m" #define BT_COMMON_COLOR_BOLD "\033[1m" #define BT_COMMON_COLOR_FG_DEFAULT "\033[39m" @@ -454,7 +442,7 @@ ssize_t bt_common_read(int fd, void *buf, size_t count, int log_level) BT_ASSERT_DBG(count <= SSIZE_MAX); do { - ret = read(fd, buf + i, count - i); + ret = read(fd, ((char *) buf) + i, count - i); if (ret < 0) { if (errno == EINTR) { #ifdef BT_LOG_WRITE_CUR_LVL @@ -497,14 +485,20 @@ const char *bt_common_field_class_type_string(enum bt_field_class_type class_typ return "BOOL"; case BT_FIELD_CLASS_TYPE_BIT_ARRAY: return "BIT_ARRAY"; + case BT_FIELD_CLASS_TYPE_INTEGER: + return "INTEGER"; case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER: return "UNSIGNED_INTEGER"; case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER: return "SIGNED_INTEGER"; + case BT_FIELD_CLASS_TYPE_ENUMERATION: + return "ENUMERATION"; case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION: return "UNSIGNED_ENUMERATION"; case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION: return "SIGNED_ENUMERATION"; + case BT_FIELD_CLASS_TYPE_REAL: + return "REAL"; case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL: return "SINGLE_PRECISION_REAL"; case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL: @@ -513,29 +507,47 @@ const char *bt_common_field_class_type_string(enum bt_field_class_type class_typ return "STRING"; case BT_FIELD_CLASS_TYPE_STRUCTURE: return "STRUCTURE"; + case BT_FIELD_CLASS_TYPE_ARRAY: + return "ARRAY"; case BT_FIELD_CLASS_TYPE_STATIC_ARRAY: return "STATIC_ARRAY"; + case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY: + return "DYNAMIC_ARRAY"; case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD: return "DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD"; case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD: return "DYNAMIC_ARRAY_WITH_LENGTH_FIELD"; + case BT_FIELD_CLASS_TYPE_OPTION: + return "OPTION"; case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD: return "OPTION_WITHOUT_SELECTOR_FIELD"; + case BT_FIELD_CLASS_TYPE_OPTION_WITH_SELECTOR_FIELD: + return "OPTION_WITH_SELECTOR_FIELD"; case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD: return "OPTION_WITH_BOOL_SELECTOR_FIELD"; + case BT_FIELD_CLASS_TYPE_OPTION_WITH_INTEGER_SELECTOR_FIELD: + return "OPTION_WITH_INTEGER_SELECTOR_FIELD"; case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD: return "OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD"; case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD: return "OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD"; + case BT_FIELD_CLASS_TYPE_VARIANT: + return "VARIANT"; case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD: return "VARIANT_WITHOUT_SELECTOR_FIELD"; + case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD: + return "VARIANT_WITH_SELECTOR_FIELD"; + case BT_FIELD_CLASS_TYPE_VARIANT_WITH_INTEGER_SELECTOR_FIELD: + return "VARIANT_WITH_INTEGER_SELECTOR_FIELD"; case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD: return "VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD"; case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD: return "VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD"; - default: - return "(unknown)"; + case __BT_FIELD_CLASS_TYPE_BIG_VALUE: + bt_common_abort (); } + + bt_common_abort(); }; static inline @@ -550,9 +562,9 @@ const char *bt_common_field_class_integer_preferred_display_base_string(enum bt_ return "DECIMAL"; case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_HEXADECIMAL: return "HEXADECIMAL"; - default: - return "(unknown)"; } + + bt_common_abort(); } static inline @@ -567,9 +579,9 @@ const char *bt_common_scope_string(enum bt_field_path_scope scope) return "EVENT_SPECIFIC_CONTEXT"; case BT_FIELD_PATH_SCOPE_EVENT_PAYLOAD: return "EVENT_PAYLOAD"; - default: - return "(unknown)"; } + + bt_common_abort(); } static inline @@ -607,9 +619,9 @@ const char *bt_common_event_class_log_level_string( return "DEBUG_LINE"; case BT_EVENT_CLASS_LOG_LEVEL_DEBUG: return "DEBUG"; - default: - return "(unknown)"; } + + bt_common_abort(); }; static inline @@ -620,6 +632,8 @@ const char *bt_common_value_type_string(enum bt_value_type type) return "NULL"; case BT_VALUE_TYPE_BOOL: return "BOOL"; + case BT_VALUE_TYPE_INTEGER: + return "INTEGER"; case BT_VALUE_TYPE_UNSIGNED_INTEGER: return "UNSIGNED_INTEGER"; case BT_VALUE_TYPE_SIGNED_INTEGER: @@ -632,9 +646,9 @@ const char *bt_common_value_type_string(enum bt_value_type type) return "ARRAY"; case BT_VALUE_TYPE_MAP: return "MAP"; - default: - return "(unknown)"; } + + bt_common_abort(); }; static inline @@ -694,9 +708,9 @@ const char *bt_common_logging_level_string( return "FATAL"; case BT_LOGGING_LEVEL_NONE: return "NONE"; - default: - return "(unknown)"; } + + bt_common_abort(); }; static inline @@ -705,8 +719,6 @@ const char *bt_common_func_status_string(int status) switch (status) { case __BT_FUNC_STATUS_OVERFLOW_ERROR: return "OVERFLOW"; - case __BT_FUNC_STATUS_UNKNOWN_OBJECT: - return "UNKNOWN_OBJECT"; case __BT_FUNC_STATUS_MEMORY_ERROR: return "MEMORY_ERROR"; case __BT_FUNC_STATUS_USER_ERROR: @@ -719,13 +731,17 @@ const char *bt_common_func_status_string(int status) return "END"; case __BT_FUNC_STATUS_NOT_FOUND: return "NOT_FOUND"; - case __BT_FUNC_STATUS_AGAIN: - return "AGAIN"; case __BT_FUNC_STATUS_INTERRUPTED: return "INTERRUPTED"; - default: - return "(unknown)"; + case __BT_FUNC_STATUS_NO_MATCH: + return "NO_MATCH"; + case __BT_FUNC_STATUS_AGAIN: + return "AGAIN"; + case __BT_FUNC_STATUS_UNKNOWN_OBJECT: + return "UNKNOWN_OBJECT"; } + + bt_common_abort(); } #define NS_PER_S_I INT64_C(1000000000) @@ -865,4 +881,49 @@ void bt_common_g_string_append_c(GString *str, char c) str->str[len + 1] = '\0'; } +static inline +const char *bt_common_component_class_type_string( + enum bt_component_class_type type) +{ + switch (type) { + case BT_COMPONENT_CLASS_TYPE_SOURCE: + return "SOURCE"; + case BT_COMPONENT_CLASS_TYPE_SINK: + return "SINK"; + case BT_COMPONENT_CLASS_TYPE_FILTER: + return "FILTER"; + } + + bt_common_abort(); +} + +static inline +const char *bt_common_message_type_string(enum bt_message_type type) +{ + switch (type) { + case BT_MESSAGE_TYPE_STREAM_BEGINNING: + return "STREAM_BEGINNING"; + case BT_MESSAGE_TYPE_STREAM_END: + return "STREAM_END"; + case BT_MESSAGE_TYPE_EVENT: + return "EVENT"; + case BT_MESSAGE_TYPE_PACKET_BEGINNING: + return "PACKET_BEGINNING"; + case BT_MESSAGE_TYPE_PACKET_END: + return "PACKET_END"; + case BT_MESSAGE_TYPE_DISCARDED_EVENTS: + return "DISCARDED_EVENTS"; + case BT_MESSAGE_TYPE_DISCARDED_PACKETS: + return "DISCARDED_PACKETS"; + case BT_MESSAGE_TYPE_MESSAGE_ITERATOR_INACTIVITY: + return "MESSAGE_ITERATOR_INACTIVITY"; + } + + bt_common_abort(); +} + +#ifdef __cplusplus +} +#endif + #endif /* BABELTRACE_COMMON_INTERNAL_H */