X-Git-Url: http://git.efficios.com/?p=ctf.git;a=blobdiff_plain;f=common-trace-format-proposal.txt;h=7a3b61c7a6d6009704a84a703a6c8e8683e91905;hp=35c1e71b4c662abdfb509149c2a7ca73ade1ef27;hb=e0d9e2c75d3b40e1278a8a0ac05bb17997c4360e;hpb=fc5425db034be38066e03078c3e0f3b745a7dfa2 diff --git a/common-trace-format-proposal.txt b/common-trace-format-proposal.txt index 35c1e71..7a3b61c 100644 --- a/common-trace-format-proposal.txt +++ b/common-trace-format-proposal.txt @@ -597,6 +597,17 @@ trace { packet.header := struct event_packet_header; }; +If a packet header lacks the "magic" number field, the trace endianness +needs to be specified in the trace "endian" metadata attribute. + +If the trace_uuid is not present, no validation that the metadata +actually corresponds to the stream is performed. + +If the stream_id packet header field is missing, the trace can only +contain a single stream. Its "id" field can be left out, and its events +don't need to declare a "stream_id" field. + + 5.2 Event Packet Context Description Event packet context example. These are declared within the stream declaration @@ -865,6 +876,7 @@ The target dynamic scope must be specified explicitly when referring to a field outside of the local static scope. The dynamic scope prefixes are thus: + - Trace Packet Header: , - Stream Packet Context: , - Event Header: , - Stream Event Context: , @@ -888,12 +900,21 @@ readable by accessing the upper dynamic scopes. The grammar representing the TSDL metadata is presented in Appendix C. TSDL Grammar. This section presents a rather ligher reading that -consists in examples of TSDL metadata, with template values: +consists in examples of TSDL metadata, with template values. + +Note that the trace endianness is usually extracted from the packet +header magic number. The "endian" field is only needed when the magic +number packet header field is not present. + +The stream "id" can be left out if there is only one stream in the +trace. The event "id" field can be left out if there is only one event +in a stream. trace { major = value; /* Trace format version */ minor = value; uuid = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"; /* Trace UUID */ + endian = big OR little; /* Endianness (optional) */ packet.header := struct { uint32_t magic; uint8_t trace_uuid[16];