Move to kernel style SPDX license identifiers
[babeltrace.git] / src / ctf-writer / utils.h
1 /*
2 * SPDX-License-Identifier: MIT
3 *
4 * Copyright 2019 EfficiOS, Inc
5 */
6
7 #ifndef BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H
8 #define BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H
9
10 #include "common/macros.h"
11 #include <babeltrace2-ctf-writer/field-types.h>
12 #include <babeltrace2-ctf-writer/event.h>
13 #include <stdint.h>
14
15 #include "field-path.h"
16
17 #define BT_CTF_TO_COMMON(_obj) (&(_obj)->common)
18 #define BT_CTF_FROM_COMMON(_obj) ((void *) _obj)
19
20 struct bt_ctf_search_query {
21 gpointer value;
22 int found;
23 };
24
25 static inline
26 const char *bt_ctf_field_type_id_string(enum bt_ctf_field_type_id type_id)
27 {
28 switch (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";
47 default:
48 return "(unknown)";
49 }
50 };
51
52 static inline
53 const char *bt_ctf_byte_order_string(enum bt_ctf_byte_order bo)
54 {
55 switch (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";
68 default:
69 return "(unknown)";
70 }
71 };
72
73 static inline
74 const char *bt_ctf_string_encoding_string(enum bt_ctf_string_encoding encoding)
75 {
76 switch (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";
85 default:
86 return "(unknown)";
87 }
88 };
89
90 static inline
91 const char *bt_ctf_integer_base_string(enum bt_ctf_integer_base base)
92 {
93 switch (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";
106 default:
107 return "(unknown)";
108 }
109 }
110
111 static inline
112 const char *bt_ctf_scope_string(enum bt_ctf_scope scope)
113 {
114 switch (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";
131 default:
132 return "(unknown)";
133 }
134 }
135
136 static inline
137 const char *bt_ctf_event_class_log_level_string(
138 enum bt_ctf_event_class_log_level level)
139 {
140 switch (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";
175 default:
176 return "(unknown)";
177 }
178 };
179
180 static inline
181 GString *bt_ctf_field_path_string(struct bt_ctf_field_path *path)
182 {
183 GString *str = g_string_new(NULL);
184 size_t i;
185
186 BT_ASSERT_DBG(path);
187
188 if (!str) {
189 goto end;
190 }
191
192 g_string_append_printf(str, "[%s", bt_ctf_scope_string(
193 bt_ctf_field_path_get_root_scope(path)));
194
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);
197
198 g_string_append_printf(str, ", %d", index);
199 }
200
201 g_string_append(str, "]");
202
203 end:
204 return str;
205 }
206
207 #endif /* BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H */
This page took 0.033497 seconds and 5 git commands to generate.