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
a field outside of the local static scope. The dynamic scope prefixes
are thus:
+ - Trace Packet Header: <trace.packet.header. >,
- Stream Packet Context: <stream.packet.context. >,
- Event Header: <stream.event.header. >,
- Stream Event Context: <stream.event.context. >,
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];