Как добавить event_header_compact из CTF на языке Си?
Я пишу метаданные CTF на языке TSDL. Я добавил все объекты метаданных для своей трассировки. Я сталкиваюсь с трудностями при добавлении event_header_compact на языке Си.
struct event_header_compact {
enum : uint5_t { compact = 0 ... 30, extended = 31 } id;
variant <id> {
struct {
uint27_clock_monotonic_t timestamp;
} compact;
struct {
uint32_t id;
uint64_clock_monotonic_t timestamp;
} extended;
} v;
} align(8);
stream {
id = 0;
event.header := struct event_header;
packet.context := struct packet_context;
};
Приведенный выше фрагмент кода находится в моих метаданных CTF. Я должен сделать то же самое на языке Си. Поскольку C не имеет вариантный тип данных. Как мне выполнить эту задачу?