#include <stdint.h>
#include <stdlib.h>
#include <unistd.h>
+#include <string.h>
-#include <babeltrace2/trace-ir/event-class-const.h>
-#include <babeltrace2/trace-ir/field-class-const.h>
-#include <babeltrace2/trace-ir/field-path-const.h>
-#include <babeltrace2/logging.h>
-#include <babeltrace2/value.h>
+#include <babeltrace2/babeltrace.h>
-#define __BT_FUNC_STATUS_ENABLE
+#define __BT_IN_BABELTRACE_H
#include <babeltrace2/func-status.h>
-#undef __BT_FUNC_STATUS_ENABLE
#include "common/assert.h"
#include "common/macros.h"
{
switch (class_type) {
case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
- return "BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER";
+ return "UNSIGNED_INTEGER";
case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
- return "BT_FIELD_CLASS_TYPE_SIGNED_INTEGER";
+ return "SIGNED_INTEGER";
case BT_FIELD_CLASS_TYPE_REAL:
- return "BT_FIELD_CLASS_TYPE_REAL";
+ return "REAL";
case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
- return "BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION";
+ return "UNSIGNED_ENUMERATION";
case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
- return "BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION";
+ return "SIGNED_ENUMERATION";
case BT_FIELD_CLASS_TYPE_STRING:
- return "BT_FIELD_CLASS_TYPE_STRING";
+ return "STRING";
case BT_FIELD_CLASS_TYPE_STRUCTURE:
- return "BT_FIELD_CLASS_TYPE_STRUCTURE";
+ return "STRUCTURE";
case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
- return "BT_FIELD_CLASS_TYPE_STATIC_ARRAY";
+ return "STATIC_ARRAY";
case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
- return "BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY";
- case BT_FIELD_CLASS_TYPE_VARIANT:
- return "BT_FIELD_CLASS_TYPE_VARIANT";
+ return "DYNAMIC_ARRAY";
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR:
+ return "VARIANT_WITHOUT_SELECTOR";
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_SELECTOR:
+ return "VARIANT_WITH_UNSIGNED_SELECTOR";
+ case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_SELECTOR:
+ return "VARIANT_WITH_SIGNED_SELECTOR";
default:
return "(unknown)";
}
{
switch (base) {
case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_BINARY:
- return "BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_BINARY";
+ return "BINARY";
case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_OCTAL:
- return "BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_OCTAL";
+ return "OCTAL";
case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_DECIMAL:
- return "BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_DECIMAL";
+ return "DECIMAL";
case BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_HEXADECIMAL:
- return "BT_FIELD_CLASS_INTEGER_PREFERRED_DISPLAY_BASE_HEXADECIMAL";
+ return "HEXADECIMAL";
default:
return "(unknown)";
}
}
static inline
-const char *bt_common_scope_string(enum bt_scope scope)
+const char *bt_common_scope_string(enum bt_field_path_scope scope)
{
switch (scope) {
- case BT_SCOPE_PACKET_CONTEXT:
- return "BT_SCOPE_PACKET_CONTEXT";
- 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";
+ case BT_FIELD_PATH_SCOPE_PACKET_CONTEXT:
+ return "PACKET_CONTEXT";
+ case BT_FIELD_PATH_SCOPE_EVENT_COMMON_CONTEXT:
+ return "EVENT_COMMON_CONTEXT";
+ case BT_FIELD_PATH_SCOPE_EVENT_SPECIFIC_CONTEXT:
+ return "EVENT_SPECIFIC_CONTEXT";
+ case BT_FIELD_PATH_SCOPE_EVENT_PAYLOAD:
+ return "EVENT_PAYLOAD";
default:
return "(unknown)";
}
{
switch (level) {
case BT_EVENT_CLASS_LOG_LEVEL_EMERGENCY:
- return "BT_EVENT_CLASS_LOG_LEVEL_EMERGENCY";
+ return "EMERGENCY";
case BT_EVENT_CLASS_LOG_LEVEL_ALERT:
- return "BT_EVENT_CLASS_LOG_LEVEL_ALERT";
+ return "ALERT";
case BT_EVENT_CLASS_LOG_LEVEL_CRITICAL:
- return "BT_EVENT_CLASS_LOG_LEVEL_CRITICAL";
+ return "CRITICAL";
case BT_EVENT_CLASS_LOG_LEVEL_ERROR:
- return "BT_EVENT_CLASS_LOG_LEVEL_ERROR";
+ return "ERROR";
case BT_EVENT_CLASS_LOG_LEVEL_WARNING:
- return "BT_EVENT_CLASS_LOG_LEVEL_WARNING";
+ return "WARNING";
case BT_EVENT_CLASS_LOG_LEVEL_NOTICE:
- return "BT_EVENT_CLASS_LOG_LEVEL_NOTICE";
+ return "NOTICE";
case BT_EVENT_CLASS_LOG_LEVEL_INFO:
- return "BT_EVENT_CLASS_LOG_LEVEL_INFO";
+ return "INFO";
case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_SYSTEM:
- return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_SYSTEM";
+ return "DEBUG_SYSTEM";
case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_PROGRAM:
- return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_PROGRAM";
+ return "DEBUG_PROGRAM";
case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_PROCESS:
- return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_PROCESS";
+ return "DEBUG_PROCESS";
case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_MODULE:
- return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_MODULE";
+ return "DEBUG_MODULE";
case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_UNIT:
- return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_UNIT";
+ return "DEBUG_UNIT";
case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_FUNCTION:
- return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_FUNCTION";
+ return "DEBUG_FUNCTION";
case BT_EVENT_CLASS_LOG_LEVEL_DEBUG_LINE:
- return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG_LINE";
+ return "DEBUG_LINE";
case BT_EVENT_CLASS_LOG_LEVEL_DEBUG:
- return "BT_EVENT_CLASS_LOG_LEVEL_DEBUG";
+ return "DEBUG";
default:
return "(unknown)";
}
{
switch (type) {
case BT_VALUE_TYPE_NULL:
- return "BT_VALUE_TYPE_NULL";
+ return "NULL";
case BT_VALUE_TYPE_BOOL:
- return "BT_VALUE_TYPE_BOOL";
+ return "BOOL";
case BT_VALUE_TYPE_UNSIGNED_INTEGER:
- return "BT_VALUE_TYPE_UNSIGNED_INTEGER";
+ return "UNSIGNED_INTEGER";
case BT_VALUE_TYPE_SIGNED_INTEGER:
- return "BT_VALUE_TYPE_SIGNED_INTEGER";
+ return "SIGNED_INTEGER";
case BT_VALUE_TYPE_REAL:
- return "BT_VALUE_TYPE_REAL";
+ return "REAL";
case BT_VALUE_TYPE_STRING:
- return "BT_VALUE_TYPE_STRING";
+ return "STRING";
case BT_VALUE_TYPE_ARRAY:
- return "BT_VALUE_TYPE_ARRAY";
+ return "ARRAY";
case BT_VALUE_TYPE_MAP:
- return "BT_VALUE_TYPE_MAP";
+ return "MAP";
default:
return "(unknown)";
}
{
switch (level) {
case BT_LOGGING_LEVEL_TRACE:
- return "BT_LOGGING_LEVEL_TRACE";
+ return "TRACE";
case BT_LOGGING_LEVEL_DEBUG:
- return "BT_LOGGING_LEVEL_DEBUG";
+ return "DEBUG";
case BT_LOGGING_LEVEL_INFO:
- return "BT_LOGGING_LEVEL_INFO";
- case BT_LOGGING_LEVEL_WARN:
- return "BT_LOGGING_LEVEL_WARN";
+ return "INFO";
+ case BT_LOGGING_LEVEL_WARNING:
+ return "WARNING";
case BT_LOGGING_LEVEL_ERROR:
- return "BT_LOGGING_LEVEL_ERROR";
+ return "ERROR";
case BT_LOGGING_LEVEL_FATAL:
- return "BT_LOGGING_LEVEL_FATAL";
+ return "FATAL";
case BT_LOGGING_LEVEL_NONE:
- return "BT_LOGGING_LEVEL_NONE";
+ return "NONE";
default:
return "(unknown)";
}
const char *bt_common_func_status_string(int status)
{
switch (status) {
- case __BT_FUNC_STATUS_OVERFLOW:
+ case __BT_FUNC_STATUS_OVERFLOW_ERROR:
return "OVERFLOW";
- case __BT_FUNC_STATUS_INVALID_PARAMS:
- return "INVALID_PARAMS";
- case __BT_FUNC_STATUS_INVALID_OBJECT:
- return "INVALID_OBJECT";
+ case __BT_FUNC_STATUS_UNKNOWN_OBJECT:
+ return "UNKNOWN_OBJECT";
case __BT_FUNC_STATUS_MEMORY_ERROR:
return "MEMORY_ERROR";
- case __BT_FUNC_STATUS_LOADING_ERROR:
- return "LOADING_ERROR";
case __BT_FUNC_STATUS_ERROR:
return "ERROR";
case __BT_FUNC_STATUS_OK:
return "NOT_FOUND";
case __BT_FUNC_STATUS_AGAIN:
return "AGAIN";
- case __BT_FUNC_STATUS_UNSUPPORTED:
- return "UNSUPPORTED";
- case __BT_FUNC_STATUS_CANCELED:
- return "CANCELED";
+ case __BT_FUNC_STATUS_INTERRUPTED:
+ return "INTERRUPTED";
default:
return "(unknown)";
}
return ret;
}
-#include <babeltrace2/undef-func-status.h>
+/*
+ * bt_g_string_append_printf cannot be inlined because it expects a
+ * variadic argument list.
+ */
+BT_HIDDEN
+int bt_common_g_string_append_printf(GString *str, const char *fmt, ...);
+
+static inline
+void bt_common_g_string_append(GString *str, const char *s)
+{
+ gsize len, allocated_len, s_len;
+
+ /* str->len excludes \0. */
+ len = str->len;
+ /* Exclude \0. */
+ allocated_len = str->allocated_len - 1;
+ s_len = strlen(s);
+ if (G_UNLIKELY(allocated_len < len + s_len)) {
+ /* Resize. */
+ g_string_set_size(str, len + s_len);
+ } else {
+ str->len = len + s_len;
+ }
+ memcpy(str->str + len, s, s_len + 1);
+}
+
+static inline
+void bt_common_g_string_append_c(GString *str, char c)
+{
+ gsize len, allocated_len, s_len;
+
+ /* str->len excludes \0. */
+ len = str->len;
+ /* Exclude \0. */
+ allocated_len = str->allocated_len - 1;
+ s_len = 1;
+ if (G_UNLIKELY(allocated_len < len + s_len)) {
+ /* Resize. */
+ g_string_set_size(str, len + s_len);
+ } else {
+ str->len = len + s_len;
+ }
+ str->str[len] = c;
+ str->str[len + 1] = '\0';
+}
#endif /* BABELTRACE_COMMON_INTERNAL_H */