1/* CTF 1.8 */ 2typealias integer { size = 8; align = 8; signed = true; } := int8_t; 3typealias integer { size = 8; align = 8; signed = false; } := uint8_t; 4typealias integer { size = 16; align = 8; signed = false; } := uint16_t; 5typealias integer { size = 32; align = 8; signed = false; } := uint32_t; 6typealias integer { size = 32; align = 8; signed = true; } := int32_t; 7typealias integer { size = 64; align = 8; signed = false; } := uint64_t; 8typealias integer { size = 8; align = 8; signed = false; encoding = ASCII; } := ctf_bounded_string_t; 9 10struct event_header { 11 uint32_t timestamp; 12 uint8_t id; 13}; 14 15trace { 16 major = 1; 17 minor = 8; 18 byte_order = le; 19}; 20 21stream { 22 event.header := struct event_header; 23}; 24 25event { 26 name = thread_switched_out; 27 id = 0x10; 28 fields := struct { 29 uint32_t thread_id; 30 ctf_bounded_string_t name[20]; 31 }; 32}; 33 34event { 35 name = thread_switched_in; 36 id = 0x11; 37 fields := struct { 38 uint32_t thread_id; 39 ctf_bounded_string_t name[20]; 40 }; 41}; 42 43event { 44 name = thread_priority_set; 45 id = 0x12; 46 fields := struct { 47 uint32_t thread_id; 48 ctf_bounded_string_t name[20]; 49 int8_t prio; 50 }; 51 52}; 53 54event { 55 name = thread_create; 56 id = 0x13; 57 fields := struct { 58 uint32_t thread_id; 59 ctf_bounded_string_t name[20]; 60 }; 61}; 62 63event { 64 name = thread_abort; 65 id = 0x14; 66 fields := struct { 67 uint32_t thread_id; 68 ctf_bounded_string_t name[20]; 69 }; 70}; 71 72event { 73 name = thread_suspend; 74 id = 0x15; 75 fields := struct { 76 uint32_t thread_id; 77 ctf_bounded_string_t name[20]; 78 }; 79}; 80 81event { 82 name = thread_resume; 83 id = 0x16; 84 fields := struct { 85 uint32_t thread_id; 86 ctf_bounded_string_t name[20]; 87 }; 88}; 89event { 90 name = thread_ready; 91 id = 0x17; 92 fields := struct { 93 uint32_t thread_id; 94 ctf_bounded_string_t name[20]; 95 }; 96}; 97 98event { 99 name = thread_pending; 100 id = 0x18; 101 fields := struct { 102 uint32_t thread_id; 103 ctf_bounded_string_t name[20]; 104 }; 105}; 106 107event { 108 name = thread_info; 109 id = 0x19; 110 fields := struct { 111 uint32_t thread_id; 112 ctf_bounded_string_t name[20]; 113 uint32_t stack_base; 114 uint32_t stack_size; 115 }; 116}; 117 118event { 119 name = thread_name_set; 120 id = 0x1a; 121 fields := struct { 122 uint32_t thread_id; 123 ctf_bounded_string_t name[20]; 124 }; 125}; 126 127event { 128 name = isr_enter; 129 id = 0x1B; 130}; 131 132event { 133 name = isr_exit; 134 id = 0x1C; 135}; 136 137event { 138 name = isr_exit_to_scheduler; 139 id = 0x1D; 140}; 141 142event { 143 name = idle; 144 id = 0x1E; 145}; 146 147event { 148 name = semaphore_init; 149 id = 0x21; 150 fields := struct { 151 uint32_t id; 152 int32_t ret; 153 }; 154}; 155 156event { 157 name = semaphore_give_enter; 158 id = 0x22; 159 fields := struct { 160 uint32_t id; 161 }; 162}; 163 164event { 165 name = semaphore_give_exit; 166 id = 0x23; 167 fields := struct { 168 uint32_t id; 169 }; 170}; 171 172event { 173 name = semaphore_take_enter; 174 id = 0x24; 175 fields := struct { 176 uint32_t id; 177 uint32_t timeout; 178 }; 179}; 180 181event { 182 name = semaphore_take_exit; 183 id = 0x26; 184 fields := struct { 185 uint32_t id; 186 uint32_t timeout; 187 int32_t ret; 188 }; 189}; 190 191 192event { 193 name = semaphore_take_blocking; 194 id = 0x25; 195 fields := struct { 196 uint32_t id; 197 uint32_t timeout; 198 }; 199}; 200 201 202event { 203 name = semaphore_reset; 204 id = 0x27; 205 fields := struct { 206 uint32_t id; 207 }; 208}; 209 210event { 211 name = mutex_init; 212 id = 0x28; 213 fields := struct { 214 uint32_t id; 215 int32_t ret; 216 }; 217}; 218 219event { 220 name = mutex_lock_enter; 221 id = 0x29; 222 fields := struct { 223 uint32_t id; 224 uint32_t timeout; 225 }; 226}; 227 228event { 229 name = mutex_lock_blocking; 230 id = 0x2A; 231 fields := struct { 232 uint32_t id; 233 uint32_t timeout; 234 }; 235}; 236 237event { 238 name = mutex_lock_exit; 239 id = 0x2B; 240 fields := struct { 241 uint32_t id; 242 uint32_t timeout; 243 int32_t ret; 244 }; 245}; 246 247event { 248 name = mutex_unlock_enter; 249 id = 0x2C; 250 fields := struct { 251 uint32_t id; 252 }; 253}; 254 255event { 256 name = mutex_unlock_exit; 257 id = 0x2D; 258 fields := struct { 259 uint32_t id; 260 }; 261}; 262 263event { 264 name = timer_init; 265 id = 0x2E; 266 fields := struct { 267 uint32_t id; 268 }; 269}; 270 271event { 272 name = timer_start; 273 id = 0x2F; 274 fields := struct { 275 uint32_t id; 276 uint32_t duration; 277 uint32_t period; 278 }; 279}; 280 281event { 282 name = timer_stop; 283 id = 0x30; 284 fields := struct { 285 uint32_t id; 286 }; 287}; 288 289event { 290 name = timer_status_sync_enter; 291 id = 0x31; 292 fields := struct { 293 uint32_t id; 294 }; 295}; 296 297event { 298 name = timer_status_sync_blocking; 299 id = 0x32; 300 fields := struct { 301 uint32_t id; 302 }; 303}; 304 305event { 306 name = timer_status_sync_exit; 307 id = 0x33; 308 fields := struct { 309 uint32_t id; 310 uint32_t result; 311 }; 312}; 313