--- /dev/null
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "f816d884-6cea-11e0-ac7a-8f5f4e9f7724";
+ byte_order = be; /* Assuming big endian streams */
+};
+
+/* Architecture with 32-bit pointers, 32-bit integers, 32-bit longs */
+
+typealias integer { size = 32; align = 32; signed = false; } := uint32_t;
+typealias integer { size = 64; align = 64; signed = false; } := uint64_t;
+typealias integer { size = 32; align = 32; signed = false; } := void *;
+
+stream {
+ event.header := struct {
+ uint32_t id;
+ uint64_t timestamp;
+ };
+ event.context := struct { /*
+ uint32_t thread_id; * This context belongs to all
+ void *func_called; * events in this stream.
+ void *called_from; */
+ uint32_t event_count; /* for debug */
+ };
+};
+
+/*
+ * All events have empty context/fields, because their field layout is
+ * replicated for all events of the stream (in this particular trace
+ * layout). See ctf-embedded-2.txt for a more compact layout.
+ */
+
+event { name = invalid; id = 0; };
+event { name = func_enter; id = 1; };
+event { name = func_exit; id = 2; };
+
+event {
+ name = timer_tick; /* or sync_point... */
+ id = 3;
+ fields := {
+ uint64_t monotonic_value;
+ uint64_t tsc_value;
+ uint32_t seqnum;
+ };
+};
+
+event {
+ name = freq_change;
+ id = 4;
+ fields := {
+ uint64_t new_freq;
+ };
+}
+
+clock {
+ name = monotonic;
+ uuid = ;
+};
+
+clock {
+ name = seqnum;
+ uuid = ;
+};
+
+clock {
+ name = tsc;
+ sync_points = {
+ map {
+ parent.clock = monotonic;
+ parent.value = event.timer_tick.monotonic_value;
+ value = event.timer_tick.tsc_value;
+ };
+ map {
+ parent.clock = seqnum;
+ parent.value = event.timer_tick.seqnum;
+ value = event.timer_tick.tsc_value;
+ };
+ };
+
+ freq = {
+ update = event.freq_change.new_freq;
+ };
+ uuid = ;
+};
event { name = invalid; id = 0; };
event { name = func_enter; id = 1; };
event { name = func_exit; id = 2; };
-
-event {
- name = timer_tick; /* or sync_point... */
- id = 3;
- fields := {
- uint64_t monotonic_value;
- uint64_t tsc_value;
- uint32_t seqnum;
- };
-};
-
-event {
- name = freq_change;
- id = 4;
- fields := {
- uint64_t new_freq;
- };
-}
-
-clock {
- name = monotonic;
- uuid = ;
-};
-
-clock {
- name = seqnum;
- uuid = ;
-};
-
-clock {
- name = tsc;
- sync_points = {
- map {
- parent.clock = monotonic;
- parent.value = event.timer_tick.monotonic_value;
- value = event.timer_tick.tsc_value;
- };
- map {
- parent.clock = seqnum;
- parent.value = event.timer_tick.seqnum;
- value = event.timer_tick.tsc_value;
- };
- };
-
- freq = {
- update = event.freq_change.new_freq;
- };
- uuid = ;
-};