fix: relayd: unaligned access in trace_chunk_registry_ht_key_hash
[lttng-tools.git] / tests / utils / bt2_plugins / fmt.hpp
1 /*
2 * Copyright (C) 2024 Jérémie Galarneau <jeremie.galarneau@efficios.com>
3 *
4 * SPDX-License-Identifier: LGPL-2.1-only
5 *
6 */
7
8 #ifndef LTTNG_TESTS_UTILS_BT2_PLUGINS_FMT_H
9 #define LTTNG_TESTS_UTILS_BT2_PLUGINS_FMT_H
10
11 #include <common/format.hpp>
12
13 #include <babeltrace2/babeltrace.h>
14
15 /*
16 * Due to a bug in g++ < 7.1, this specialization must be enclosed in the fmt namespace,
17 * see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480.
18 */
19 namespace fmt {
20 template <>
21 struct formatter<bt_field_class_type> : formatter<std::string> {
22 template <typename FormatContextType>
23 typename FormatContextType::iterator format(const bt_field_class_type field_class_type,
24 FormatContextType& ctx)
25 {
26 const char *name;
27
28 switch (field_class_type) {
29 case BT_FIELD_CLASS_TYPE_BOOL:
30 name = "BOOL";
31 break;
32 case BT_FIELD_CLASS_TYPE_BIT_ARRAY:
33 name = "BIT_ARRAY";
34 break;
35 case BT_FIELD_CLASS_TYPE_INTEGER:
36 name = "INTEGER";
37 break;
38 case BT_FIELD_CLASS_TYPE_UNSIGNED_INTEGER:
39 name = "UNSIGNED_INTEGER";
40 break;
41 case BT_FIELD_CLASS_TYPE_SIGNED_INTEGER:
42 name = "SIGNED_INTEGER";
43 break;
44 case BT_FIELD_CLASS_TYPE_ENUMERATION:
45 name = "ENUMERATION";
46 break;
47 case BT_FIELD_CLASS_TYPE_UNSIGNED_ENUMERATION:
48 name = "UNSIGNED_ENUMERATION";
49 break;
50 case BT_FIELD_CLASS_TYPE_SIGNED_ENUMERATION:
51 name = "SIGNED_ENUMERATION";
52 break;
53 case BT_FIELD_CLASS_TYPE_REAL:
54 name = "REAL";
55 break;
56 case BT_FIELD_CLASS_TYPE_SINGLE_PRECISION_REAL:
57 name = "SINGLE_PRECISION_REAL";
58 break;
59 case BT_FIELD_CLASS_TYPE_DOUBLE_PRECISION_REAL:
60 name = "DOUBLE_PRECISION_REAL";
61 break;
62 case BT_FIELD_CLASS_TYPE_STRING:
63 name = "STRING";
64 break;
65 case BT_FIELD_CLASS_TYPE_STRUCTURE:
66 name = "STRUCTURE";
67 break;
68 case BT_FIELD_CLASS_TYPE_ARRAY:
69 name = "ARRAY";
70 break;
71 case BT_FIELD_CLASS_TYPE_STATIC_ARRAY:
72 name = "STATIC_ARRAY";
73 break;
74 case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY:
75 name = "DYNAMIC_ARRAY";
76 break;
77 case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD:
78 name = "DYNAMIC_ARRAY_WITHOUT_LENGTH_FIELD";
79 break;
80 case BT_FIELD_CLASS_TYPE_DYNAMIC_ARRAY_WITH_LENGTH_FIELD:
81 name = "DYNAMIC_ARRAY_WITH_LENGTH_FIELD";
82 break;
83 case BT_FIELD_CLASS_TYPE_OPTION:
84 name = "OPTION";
85 break;
86 case BT_FIELD_CLASS_TYPE_OPTION_WITHOUT_SELECTOR_FIELD:
87 name = "OPTION_WITHOUT_SELECTOR_FIELD";
88 break;
89 case BT_FIELD_CLASS_TYPE_OPTION_WITH_SELECTOR_FIELD:
90 name = "OPTION_WITH_SELECTOR_FIELD";
91 break;
92 case BT_FIELD_CLASS_TYPE_OPTION_WITH_BOOL_SELECTOR_FIELD:
93 name = "OPTION_WITH_BOOL_SELECTOR_FIELD";
94 break;
95 case BT_FIELD_CLASS_TYPE_OPTION_WITH_INTEGER_SELECTOR_FIELD:
96 name = "OPTION_WITH_INTEGER_SELECTOR_FIELD";
97 break;
98 case BT_FIELD_CLASS_TYPE_OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
99 name = "OPTION_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD";
100 break;
101 case BT_FIELD_CLASS_TYPE_OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
102 name = "OPTION_WITH_SIGNED_INTEGER_SELECTOR_FIELD";
103 break;
104 case BT_FIELD_CLASS_TYPE_VARIANT:
105 name = "VARIANT";
106 break;
107 case BT_FIELD_CLASS_TYPE_VARIANT_WITHOUT_SELECTOR_FIELD:
108 name = "VARIANT_WITHOUT_SELECTOR_FIELD";
109 break;
110 case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SELECTOR_FIELD:
111 name = "VARIANT_WITH_SELECTOR_FIELD";
112 break;
113 case BT_FIELD_CLASS_TYPE_VARIANT_WITH_INTEGER_SELECTOR_FIELD:
114 name = "VARIANT_WITH_INTEGER_SELECTOR_FIELD";
115 break;
116 case BT_FIELD_CLASS_TYPE_VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD:
117 name = "VARIANT_WITH_UNSIGNED_INTEGER_SELECTOR_FIELD";
118 break;
119 case BT_FIELD_CLASS_TYPE_VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD:
120 name = "VARIANT_WITH_SIGNED_INTEGER_SELECTOR_FIELD";
121 break;
122 default:
123 abort();
124 }
125
126 return format_to(ctx.out(), name);
127 }
128 };
129 } /* namespace fmt */
130
131 #endif /* LTTNG_TESTS_UTILS_BT2_PLUGINS_FMT_H */
This page took 0.032147 seconds and 4 git commands to generate.