--- misc/CTF/record-ctf.ref | 73 ------------------------ misc/ctf/metadata | 145 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+), 73 deletions(-) delete mode 100644 misc/CTF/record-ctf.ref create mode 100644 misc/ctf/metadata
diff --git a/misc/CTF/record-ctf.ref b/misc/CTF/record-ctf.ref deleted file mode 100644 index bdb9648..0000000 --- a/misc/CTF/record-ctf.ref +++ /dev/null @@ -1,73 +0,0 @@ -/* CTF 1.8 */ - -/* - * typealias - * - * The "typealias" declaration can be used to give a name to a type. - * Typealias is a superset of "typedef": it also allows assignment of a - * simple variable identifier to a type. - */ - -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 = 5; align = 1; signed = false; } := uint5_t; -typealias integer { size = 27; align = 1; signed = false; } := uint27_t; - -trace { - major = 1; /* CTF spec version major number */ - minor = 8; /* CTF spec version minor number */ - byte_order = le; /* little endian byte-order */ - packet.header := struct { - uint32_t magic; /* specifies that this is a CTF packet */ - uint32_t stream_id; /* used as reference to stream description in metadata */ - }; -}; - -clock { - name = ctf_clock; /* name of montonic clock */ - freq = 1000; /* frequency, in HZ */ - offset_s = 1421703448; -}; - -/* - * A reference to the clock added within an integer type - */ - -typealias integer { - size = 64; - map = clock.ctf_clock.value; -} := ctf_clock_int_t; - -/* - * Trace stream packet having header and context. - * - * @param event.header includes id(unique identifier of stream) and timestamp. - * @param packet.context includes clock timestamp, cpu id, event and event data. - */ - -stream { - id = 0; - event.header := struct { - uint32_t id; - ctf_clock_int_t timestamp; - }; - packet.context := struct { - ctf_clock_int_t timestamp; - uint32_t cpu; - uint32_t event; - uint64_t data; - }; -}; - -event { - id = 0; /* event id - name = "ctf_event"; /* event name */ - stream_id = 0; /* signifies stream id which event is supposed to concat with events */ - fields := struct { - uint32_t a; /*event 1*/ - uint16_t b; /*event 2*/ - string c; /*event 3*/ - }; -}; diff --git a/misc/ctf/metadata b/misc/ctf/metadata new file mode 100644 index 0000000..0e7dca4 --- /dev/null +++ b/misc/ctf/metadata @@ -0,0 +1,145 @@ +/* CTF 1.8 */ + +/* + * typealias + * + * The "typealias" declaration can be used to give a name to a type. + * Typealias is a superset of "typedef": it also allows assignment of a + * simple variable identifier to a type. + */ + +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 = 5; align = 1; signed = false; } := uint5_t; +typealias integer { size = 27; align = 1; signed = false; } := uint27_t; + +trace { + major = 1; /* CTF spec version major number */ + minor = 8; /* CTF spec version minor number */ + byte_order = le; /* little endian byte-order */ + packet.header := struct { + uint32_t magic; /* specifies that this is a CTF packet */ + uint8_t uuid[16]; /* Unique Universal Identifier, ensure the event + packet match the metadata used */ + uint32_t stream_id; /* used as reference to stream description in + metadata */ + }; +}; + +clock { + name = "monotonic"; /* name of montonic clock */ + description = "Monotonic Clock"; + freq = 1000; /* frequency, in HZ */ +}; + +/* + * A reference to the clock added within an unsigned integer type + */ + +typealias integer { + size = 64; align = 8; signed = false; + map = clock.monotonic.value; +} := uint64_clock_monotonic_t; + +typealias integer { + size = 32; align = 8; signed = false; + map = clock.monotonic.value; +} := uint32_clock_monotonic_t; + +typealias integer { + size = 27; align = 1; signed = false; + map = clock.monotonic.value; +} := uint27_clock_monotonic_t; + +/* + * packet.context containing timestamp, cpu, event, data; + */ + +struct packet_context { + uint64_clock_monotonic_t timestamp; + uint32_t cpu; + uint32_t event; + uint64_t data; +}; + +/* + * event.header type for few event IDS + */ + +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); + +/* + * event.header type for many event IDS + */ + +struct event_header_large { + enum : uint16_t { compact = 0 ... 65534, extended = 65535 } id; + variant <id> { + struct { + uint32_clock_monotonic_t timestamp; + } compact; + struct { + uint32_t id; + uint64_clock_monotonic_t timestamp; + } extended; + } v; +} align(8); + +/* + * stream containing header and context. + */ + +stream { + id = 0; + event.header := struct event_header_compact; /* sturct defined above */ + packet.context := struct packet_context; /* sturct defined above */ +}; + +/* + * event recording events + */ + +event { + name = "EMPTY"; + id = 0; + stream_id = 0; + fields := struct { + integer { + size = 32; + align = 8; + signed = false; + byte_order = le; + base = 10; + encoding = none; + } my_field; + }; +}; + +event { + name = "VERSION"; + id = 1; + stream_id = 0; + fields := struct { + integer { + size = 32; + align = 8; + signed = false; + byte_order = le; + base = 10; + encoding = none; + } my_field; + }; +}; -- 2.7.4 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel