2 typealias integer { size = 32; align = 32; signed = true; } : int;
3 typealias integer { size = 64; align = 64; signed = true; } : long;
4 typealias integer { size = 64; align = 64; } : unsigned long;
14 enum name2 <long> { ONE, TWO };
16 enum name3 <unsigned long> { ONE, TWO };
18 enum name4 <unsigned long> {
20 "other string" = 3...4,
21 yet_another_string, /* will be assigned to end_value2 + 1 */
22 "some other string" = 10,
25 enum name5 <long> { "int" = 1, };
27 typealias floating_point {
28 exp_dig = 8; /* sizeof(float) * CHAR_BIT - FLT_MANT_DIG */
29 mant_dig = 24; /* FLT_MANT_DIG */
42 uuid = "1123fcea-706e-11e0-a38b-f3c28a683a3d";
47 typealias integer { size = 64; align = 64; signed = false; } : uint64_t;
48 typealias integer { size = 16; align = 16; signed = false; } : uint16_t;
49 typealias integer { size = 32; align = 32; signed = true; } : int;
53 /* Type 1 - Few event IDs; Type 2 - Many event IDs. See section 6.2. */
54 event.header := struct { uint64_t timestamp; uint16_t id; };
55 event.context := struct { pid_t pid; };
59 /* TODO gcc bitfields not supported yet. */
65 typealias integer { size = 64; align = 64; signed = false; } : uint64_t;
66 typealias integer { size = 32; align = 32; signed = false; } : uint32_t;
67 typealias integer { size = 32; align = 32; signed = true; } : int32_t;
68 typealias integer { size = 2; align = 8; signed = false; } : uint2_t;
69 typealias integer { size = 16; align = 16; signed = true; } : short;
70 typealias uint32_t : unsigned int;
72 enum <uint2_t> { a, b, c, d } choice;
73 /* Unrelated fields can be added between the variant and its tag */
92 typealias string { encoding = UTF8; } : test;
94 struct event_packet_header {
95 typealias integer { size = 32; align = 32; signed = false; } : uint32_t;
96 typealias integer { size = 8; align = 8; signed = false; } : uint8_t;
99 uint8_t trace_uuid[16];
103 struct event_packet_context {
104 typealias integer { size = 64; align = 64; signed = false; } : uint64_t;
105 typealias integer { size = 32; align = 32; signed = false; } : uint32_t;
106 typealias integer { size = 16; align = 16; signed = false; } : uint16_t;
107 typealias integer { size = 8; align = 8; signed = false; } : uint8_t;
109 uint64_t timestamp_begin;
110 uint64_t timestamp_end;
112 uint32_t stream_packet_count;
113 uint32_t events_discarded;
115 uint16_t content_size;
116 uint16_t packet_size;
117 uint8_t stream_packet_count_bits; /* Significant counter bits */
118 uint8_t compression_scheme;
119 uint8_t encryption_scheme;
120 uint8_t checksum_scheme;
123 struct event_header_1 {
124 typealias integer { size = 64; align = 64; signed = false; } : uint64_t;
125 typealias integer { size = 32; align = 32; signed = false; } : uint32_t;
126 typealias integer { size = 5; align = 1; signed = false; } : uint5_t;
127 typealias integer { size = 27; align = 1; signed = false; } : uint27_t;
131 * id 31 is reserved to indicate an extended header.
133 enum <uint5_t> { compact = 0 ... 30, extended = 31 } id;
139 uint32_t id; /* 32-bit event IDs */
140 uint64_t timestamp; /* 64-bit timestamps */
145 struct event_header_2 {
146 typealias integer { size = 64; align = 64; signed = false; } : uint64_t;
147 typealias integer { size = 32; align = 32; signed = false; } : uint32_t;
148 typealias integer { size = 16; align = 16; signed = false; } : uint16_t;
151 * id: range: 0 - 65534.
152 * id 65535 is reserved to indicate an extended header.
154 enum <uint16_t> { compact = 0 ... 65534, extended = 65535 } id;
160 uint32_t id; /* 32-bit event IDs */
161 uint64_t timestamp; /* 64-bit timestamps */
166 typedef int rootscopetest;
168 /* parser level only: event { a.b.c.d.e = f.g.h->i->j; }; */
174 context := struct {};
175 payload := struct {};
178 typealias integer { size = 32; align = 32; signed = false; } : unsigned long long *;