2 * SPDX-License-Identifier: MIT
4 * Copyright 2019 EfficiOS, Inc
7 #ifndef BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H
8 #define BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H
10 #include "common/macros.h"
11 #include <babeltrace2-ctf-writer/field-types.h>
12 #include <babeltrace2-ctf-writer/event.h>
15 #include "field-path.h"
17 #define BT_CTF_TO_COMMON(_obj) ((typeof(&_obj->common)) _obj)
18 #define BT_CTF_FROM_COMMON(_obj) ((void *) _obj)
20 struct bt_ctf_search_query
{
26 const char *bt_ctf_field_type_id_string(enum bt_ctf_field_type_id type_id
)
29 case BT_CTF_FIELD_TYPE_ID_UNKNOWN
:
30 return "BT_CTF_FIELD_TYPE_ID_UNKNOWN";
31 case BT_CTF_FIELD_TYPE_ID_INTEGER
:
32 return "BT_CTF_FIELD_TYPE_ID_INTEGER";
33 case BT_CTF_FIELD_TYPE_ID_FLOAT
:
34 return "BT_CTF_FIELD_TYPE_ID_FLOAT";
35 case BT_CTF_FIELD_TYPE_ID_ENUM
:
36 return "BT_CTF_FIELD_TYPE_ID_ENUM";
37 case BT_CTF_FIELD_TYPE_ID_STRING
:
38 return "BT_CTF_FIELD_TYPE_ID_STRING";
39 case BT_CTF_FIELD_TYPE_ID_STRUCT
:
40 return "BT_CTF_FIELD_TYPE_ID_STRUCT";
41 case BT_CTF_FIELD_TYPE_ID_ARRAY
:
42 return "BT_CTF_FIELD_TYPE_ID_ARRAY";
43 case BT_CTF_FIELD_TYPE_ID_SEQUENCE
:
44 return "BT_CTF_FIELD_TYPE_ID_SEQUENCE";
45 case BT_CTF_FIELD_TYPE_ID_VARIANT
:
46 return "BT_CTF_FIELD_TYPE_ID_VARIANT";
53 const char *bt_ctf_byte_order_string(enum bt_ctf_byte_order bo
)
56 case BT_CTF_BYTE_ORDER_UNKNOWN
:
57 return "BT_CTF_BYTE_ORDER_UNKNOWN";
58 case BT_CTF_BYTE_ORDER_UNSPECIFIED
:
59 return "BT_CTF_BYTE_ORDER_UNSPECIFIED";
60 case BT_CTF_BYTE_ORDER_NATIVE
:
61 return "BT_CTF_BYTE_ORDER_NATIVE";
62 case BT_CTF_BYTE_ORDER_LITTLE_ENDIAN
:
63 return "BT_CTF_BYTE_ORDER_LITTLE_ENDIAN";
64 case BT_CTF_BYTE_ORDER_BIG_ENDIAN
:
65 return "BT_CTF_BYTE_ORDER_BIG_ENDIAN";
66 case BT_CTF_BYTE_ORDER_NETWORK
:
67 return "BT_CTF_BYTE_ORDER_NETWORK";
74 const char *bt_ctf_string_encoding_string(enum bt_ctf_string_encoding encoding
)
77 case BT_CTF_STRING_ENCODING_UNKNOWN
:
78 return "BT_CTF_STRING_ENCODING_UNKNOWN";
79 case BT_CTF_STRING_ENCODING_NONE
:
80 return "BT_CTF_STRING_ENCODING_NONE";
81 case BT_CTF_STRING_ENCODING_UTF8
:
82 return "BT_CTF_STRING_ENCODING_UTF8";
83 case BT_CTF_STRING_ENCODING_ASCII
:
84 return "BT_CTF_STRING_ENCODING_ASCII";
91 const char *bt_ctf_integer_base_string(enum bt_ctf_integer_base base
)
94 case BT_CTF_INTEGER_BASE_UNKNOWN
:
95 return "BT_CTF_INTEGER_BASE_UNKNOWN";
96 case BT_CTF_INTEGER_BASE_UNSPECIFIED
:
97 return "BT_CTF_INTEGER_BASE_UNSPECIFIED";
98 case BT_CTF_INTEGER_BASE_BINARY
:
99 return "BT_CTF_INTEGER_BASE_BINARY";
100 case BT_CTF_INTEGER_BASE_OCTAL
:
101 return "BT_CTF_INTEGER_BASE_OCTAL";
102 case BT_CTF_INTEGER_BASE_DECIMAL
:
103 return "BT_CTF_INTEGER_BASE_DECIMAL";
104 case BT_CTF_INTEGER_BASE_HEXADECIMAL
:
105 return "BT_CTF_INTEGER_BASE_HEXADECIMAL";
112 const char *bt_ctf_scope_string(enum bt_ctf_scope scope
)
115 case BT_CTF_SCOPE_UNKNOWN
:
116 return "BT_CTF_SCOPE_UNKNOWN";
117 case BT_CTF_SCOPE_TRACE_PACKET_HEADER
:
118 return "BT_CTF_SCOPE_TRACE_PACKET_HEADER";
119 case BT_CTF_SCOPE_STREAM_PACKET_CONTEXT
:
120 return "BT_CTF_SCOPE_STREAM_PACKET_CONTEXT";
121 case BT_CTF_SCOPE_STREAM_EVENT_HEADER
:
122 return "BT_CTF_SCOPE_STREAM_EVENT_HEADER";
123 case BT_CTF_SCOPE_STREAM_EVENT_CONTEXT
:
124 return "BT_CTF_SCOPE_STREAM_EVENT_CONTEXT";
125 case BT_CTF_SCOPE_EVENT_CONTEXT
:
126 return "BT_CTF_SCOPE_EVENT_CONTEXT";
127 case BT_CTF_SCOPE_EVENT_PAYLOAD
:
128 return "BT_CTF_SCOPE_EVENT_PAYLOAD";
129 case BT_CTF_SCOPE_ENV
:
130 return "BT_CTF_SCOPE_ENV";
137 const char *bt_ctf_event_class_log_level_string(
138 enum bt_ctf_event_class_log_level level
)
141 case BT_CTF_EVENT_CLASS_LOG_LEVEL_UNKNOWN
:
142 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_UNKNOWN";
143 case BT_CTF_EVENT_CLASS_LOG_LEVEL_UNSPECIFIED
:
144 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_UNSPECIFIED";
145 case BT_CTF_EVENT_CLASS_LOG_LEVEL_EMERGENCY
:
146 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_EMERGENCY";
147 case BT_CTF_EVENT_CLASS_LOG_LEVEL_ALERT
:
148 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_ALERT";
149 case BT_CTF_EVENT_CLASS_LOG_LEVEL_CRITICAL
:
150 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_CRITICAL";
151 case BT_CTF_EVENT_CLASS_LOG_LEVEL_ERROR
:
152 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_ERROR";
153 case BT_CTF_EVENT_CLASS_LOG_LEVEL_WARNING
:
154 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_WARNING";
155 case BT_CTF_EVENT_CLASS_LOG_LEVEL_NOTICE
:
156 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_NOTICE";
157 case BT_CTF_EVENT_CLASS_LOG_LEVEL_INFO
:
158 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_INFO";
159 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_SYSTEM
:
160 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_SYSTEM";
161 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_PROGRAM
:
162 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_PROGRAM";
163 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_PROCESS
:
164 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_PROCESS";
165 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_MODULE
:
166 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_MODULE";
167 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_UNIT
:
168 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_UNIT";
169 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_FUNCTION
:
170 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_FUNCTION";
171 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_LINE
:
172 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG_LINE";
173 case BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG
:
174 return "BT_CTF_EVENT_CLASS_LOG_LEVEL_DEBUG";
181 GString
*bt_ctf_field_path_string(struct bt_ctf_field_path
*path
)
183 GString
*str
= g_string_new(NULL
);
192 g_string_append_printf(str
, "[%s", bt_ctf_scope_string(
193 bt_ctf_field_path_get_root_scope(path
)));
195 for (i
= 0; i
< bt_ctf_field_path_get_index_count(path
); i
++) {
196 int index
= bt_ctf_field_path_get_index(path
, i
);
198 g_string_append_printf(str
, ", %d", index
);
201 g_string_append(str
, "]");
207 #endif /* BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H */