Move to kernel style SPDX license identifiers
[babeltrace.git] / src / ctf-writer / utils.h
CommitLineData
16ca5ff0 1/*
0235b0db 2 * SPDX-License-Identifier: MIT
16ca5ff0 3 *
0235b0db 4 * Copyright 2019 EfficiOS, Inc
16ca5ff0
PP
5 */
6
0235b0db
MJ
7#ifndef BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H
8#define BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H
9
91d81473 10#include "common/macros.h"
217cf9d3
PP
11#include <babeltrace2-ctf-writer/field-types.h>
12#include <babeltrace2-ctf-writer/event.h>
16ca5ff0
PP
13#include <stdint.h>
14
578e048b
MJ
15#include "field-path.h"
16
16ca5ff0
PP
17#define BT_CTF_TO_COMMON(_obj) (&(_obj)->common)
18#define BT_CTF_FROM_COMMON(_obj) ((void *) _obj)
19
20struct bt_ctf_search_query {
21 gpointer value;
22 int found;
23};
24
16ca5ff0
PP
25static inline
26const 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
52static inline
53const 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
73static inline
74const 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
90static inline
91const 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
111static inline
112const 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
136static inline
137const 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
180static inline
181GString *bt_ctf_field_path_string(struct bt_ctf_field_path *path)
182{
183 GString *str = g_string_new(NULL);
184 size_t i;
185
98b15851 186 BT_ASSERT_DBG(path);
16ca5ff0
PP
187
188 if (!str) {
189 goto end;
190 }
191
f100cb58 192 g_string_append_printf(str, "[%s", bt_ctf_scope_string(
16ca5ff0
PP
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
203end:
204 return str;
205}
206
207#endif /* BABELTRACE_CTF_WRITER_UTILS_INTERNAL_H */
This page took 0.069863 seconds and 4 git commands to generate.