/* CTF 1.8 */
typealias integer { size = 8; align = 8; signed = true; } := int8_t;
typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
typealias integer { size = 16; align = 8; signed = false; } := uint16_t;
typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
typealias integer { size = 8; align = 8; signed = false; encoding = ASCII; } := ctf_bounded_string_t;
typealias enum : uint32_t {
	MUTEX_INIT = 33,
	MUTEX_UNLOCK = 34,
	MUTEX_LOCK = 35,
	SEMA_INIT = 36,
	SEMA_GIVE = 37,
	SEMA_TAKE = 38
} := call_id;

struct event_header {
	uint32_t timestamp;
	uint8_t id;
};

trace {
	major = 1;
	minor = 8;
	byte_order = le;
};

stream {
	event.header := struct event_header;
};

event {
	name = thread_switched_out;
	id = 0x10;
	fields := struct {
		uint32_t thread_id;
	};
};

event {
	name = thread_switched_in;
	id = 0x11;
	fields := struct {
		uint32_t thread_id;
	};
};

event {
	name = thread_priority_set;
	id = 0x12;
	fields := struct {
		uint32_t thread_id;
		int8_t prio;
	};

};

event {
	name = thread_create;
	id = 0x13;
	fields := struct {
		uint32_t thread_id;
		ctf_bounded_string_t name[20];
	};
};

event {
	name = thread_abort;
	id = 0x14;
	fields := struct {
		uint32_t thread_id;
	};
};

event {
	name = thread_suspend;
	id = 0x15;
	fields := struct {
		uint32_t thread_id;
	};
};

event {
	name = thread_resume;
	id = 0x16;
	fields := struct {
		uint32_t thread_id;
	};
};
event {
        name = thread_ready;
        id = 0x17;
        fields := struct {
                uint32_t thread_id;
        };
};

event {
	name = thread_pending;
	id = 0x18;
	fields := struct {
		uint32_t thread_id;
	};
};

event {
	name = thread_info;
	id = 0x19;
	fields := struct {
		uint32_t thread_id;
		uint32_t stack_base;
		uint32_t stack_size;
	};
};

event {
	name = isr_enter;
	id = 0x20;
};

event {
	name = isr_exit;
	id = 0x21;
};

event {
	name = isr_exit_to_scheduler;
	id = 0x22;
};

event {
	name = idle;
	id = 0x30;
};

event {
	name = start_call;
	id = 0x41;
	fields := struct {
		call_id id;
	};
};

event {
	name = end_call;
	id = 0x42;
	fields := struct {
		call_id id;
	};
};
