Как добавить 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 не имеет вариантный тип данных. Как мне выполнить эту задачу?

0 ответов

Другие вопросы по тегам