X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fcommon-internal.h;h=584e38a1e6320da4005f7fce50e75b29caa217b6;hb=56e18c4ce186892c36d7f2cb5078087425e60134;hp=b6981b27a0125508fe79acd29a5ab8e575cedd6d;hpb=85cd02cf3c1ded45ef8664ae3be7728ba1f05af6;p=babeltrace.git diff --git a/include/babeltrace/common-internal.h b/include/babeltrace/common-internal.h index b6981b27..584e38a1 100644 --- a/include/babeltrace/common-internal.h +++ b/include/babeltrace/common-internal.h @@ -2,8 +2,15 @@ #define BABELTRACE_COMMON_INTERNAL_H #include +#include #include +#include +#include +#include #include +#include +#include +#include #define BT_COMMON_COLOR_RESET "\033[0m" #define BT_COMMON_COLOR_BOLD "\033[1m" @@ -273,4 +280,137 @@ void bt_common_custom_snprintf(char *buf, size_t buf_size, BT_HIDDEN size_t bt_common_get_page_size(void); +static inline +const char *bt_common_field_type_id_string(enum bt_field_type_id type_id) +{ + switch (type_id) { + case BT_FIELD_TYPE_ID_UNSIGNED_INTEGER: + return "BT_FIELD_TYPE_ID_UNSIGNED_INTEGER"; + case BT_FIELD_TYPE_ID_SIGNED_INTEGER: + return "BT_FIELD_TYPE_ID_SIGNED_INTEGER"; + case BT_FIELD_TYPE_ID_REAL: + return "BT_FIELD_TYPE_ID_REAL"; + case BT_FIELD_TYPE_ID_UNSIGNED_ENUMERATION: + return "BT_FIELD_TYPE_ID_UNSIGNED_ENUMERATION"; + case BT_FIELD_TYPE_ID_SIGNED_ENUMERATION: + return "BT_FIELD_TYPE_ID_SIGNED_ENUMERATION"; + case BT_FIELD_TYPE_ID_STRING: + return "BT_FIELD_TYPE_ID_STRING"; + case BT_FIELD_TYPE_ID_STRUCTURE: + return "BT_FIELD_TYPE_ID_STRUCTURE"; + case BT_FIELD_TYPE_ID_STATIC_ARRAY: + return "BT_FIELD_TYPE_ID_STATIC_ARRAY"; + case BT_FIELD_TYPE_ID_DYNAMIC_ARRAY: + return "BT_FIELD_TYPE_ID_DYNAMIC_ARRAY"; + case BT_FIELD_TYPE_ID_VARIANT: + return "BT_FIELD_TYPE_ID_VARIANT"; + default: + return "(unknown)"; + } +}; + +static inline +const char *bt_common_field_type_integer_preferred_display_base_string(enum bt_field_type_integer_preferred_display_base base) +{ + switch (base) { + case BT_FIELD_TYPE_INTEGER_PREFERRED_DISPLAY_BASE_BINARY: + return "BT_FIELD_TYPE_INTEGER_PREFERRED_DISPLAY_BASE_BINARY"; + case BT_FIELD_TYPE_INTEGER_PREFERRED_DISPLAY_BASE_OCTAL: + return "BT_FIELD_TYPE_INTEGER_PREFERRED_DISPLAY_BASE_OCTAL"; + case BT_FIELD_TYPE_INTEGER_PREFERRED_DISPLAY_BASE_DECIMAL: + return "BT_FIELD_TYPE_INTEGER_PREFERRED_DISPLAY_BASE_DECIMAL"; + case BT_FIELD_TYPE_INTEGER_PREFERRED_DISPLAY_BASE_HEXADECIMAL: + return "BT_FIELD_TYPE_INTEGER_PREFERRED_DISPLAY_BASE_HEXADECIMAL"; + default: + return "(unknown)"; + } +} + +static inline +const char *bt_common_scope_string(enum bt_scope scope) +{ + switch (scope) { + case BT_SCOPE_PACKET_HEADER: + return "BT_SCOPE_PACKET_HEADER"; + case BT_SCOPE_PACKET_CONTEXT: + return "BT_SCOPE_PACKET_CONTEXT"; + case BT_SCOPE_EVENT_HEADER: + return "BT_SCOPE_EVENT_HEADER"; + case BT_SCOPE_EVENT_COMMON_CONTEXT: + return "BT_SCOPE_EVENT_COMMON_CONTEXT"; + case BT_SCOPE_EVENT_SPECIFIC_CONTEXT: + return "BT_SCOPE_EVENT_SPECIFIC_CONTEXT"; + case BT_SCOPE_EVENT_PAYLOAD: + return "BT_SCOPE_EVENT_PAYLOAD"; + default: + return "(unknown)"; + } +} + +static inline +const char *bt_common_event_class_log_level_string( + enum bt_event_class_log_level level) +{ + switch (level) { + case BT_EVENT_CLASS_LOG_LEVEL_EMERGENCY: + return "BT_EVENT_CLASS_LOG_LEVEL_EMERGENCY"; + case BT_EVENT_CLASS_LOG_LEVEL_ALERT: + return "BT_EVENT_CLASS_LOG_LEVEL_ALERT"; + case BT_EVENT_CLASS_LOG_LEVEL_CRITICAL: + return "BT_EVENT_CLASS_LOG_LEVEL_CRITICAL"; + case BT_EVENT_CLASS_LOG_LEVEL_ERROR: + return "BT_EVENT_CLASS_LOG_LEVEL_ERROR"; + case BT_EVENT_CLASS_LOG_LEVEL_WARNING: + return "BT_EVENT_CLASS_LOG_LEVEL_WARNING"; + case BT_EVENT_CLASS_LOG_LEVEL_NOTICE: + return "BT_EVENT_CLASS_LOG_LEVEL_NOTICE"; + case BT_EVENT_CLASS_LOG_LEVEL_INFO: + return "BT_EVENT_CLASS_LOG_LEVEL_INFO"; + case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_SYSTEM: + return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_SYSTEM"; + case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_PROGRAM: + return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_PROGRAM"; + case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_PROCESS: + return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_PROCESS"; + case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_MODULE: + return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_MODULE"; + case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_UNIT: + return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_UNIT"; + case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_FUNCTION: + return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_FUNCTION"; + case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_LINE: + return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_LINE"; + case BT_EVENT_CLASS_LOG_LEVEL_DEBUG: + return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG"; + default: + return "(unknown)"; + } +}; + +static inline +GString *bt_field_path_string(struct bt_field_path *path) +{ + GString *str = g_string_new(NULL); + uint64_t i; + + BT_ASSERT(path); + + if (!str) { + goto end; + } + + g_string_append_printf(str, "[%s", bt_common_scope_string( + bt_field_path_get_root_scope(path))); + + for (i = 0; i < bt_field_path_get_index_count(path); i++) { + g_string_append_printf(str, ", %" PRIu64, + bt_field_path_get_index_by_index(path, i)); + } + + g_string_append(str, "]"); + +end: + return str; +} + #endif /* BABELTRACE_COMMON_INTERNAL_H */