X-Git-Url: http://git.efficios.com/?p=ctf.git;a=blobdiff_plain;f=common-trace-format-specification.txt;h=3130d98014ea9639a8ebe302d968abc48ee20ebf;hp=9070c0206cffd8920357439d740caedcb0d7ae08;hb=3568031f04910c52dffce8a66c313fbc8744bfa3;hpb=1e9de2d116deeba64cb225af22473fa0675fbe55 diff --git a/common-trace-format-specification.txt b/common-trace-format-specification.txt index 9070c02..3130d98 100644 --- a/common-trace-format-specification.txt +++ b/common-trace-format-specification.txt @@ -1,4 +1,4 @@ -Common Trace Format (CTF) Specification (pre-v1.8) +Common Trace Format (CTF) Specification (v1.8.1) Mathieu Desnoyers, EfficiOS Inc. @@ -118,11 +118,10 @@ trace event types expressed in the Trace Stream Description Language 3. Event stream An event stream can be divided into contiguous event packets of variable -size. These subdivisions have a variable size. An event packet can -contain a certain amount of padding at the end. The stream header is -repeated at the beginning of each event packet. The rationale for the -event stream design choices is explained in Appendix B. Stream Header -Rationale. +size. An event packet can contain a certain amount of padding at the +end. The stream header is repeated at the beginning of each event +packet. The rationale for the event stream design choices is explained +in Appendix B. Stream Header Rationale. The event stream header will therefore be referred to as the "event packet header" throughout the rest of this document. @@ -172,7 +171,7 @@ TSDL meta-data attribute representation of a specific alignment: 4.1.3 Byte order -By default, the native endianness of the source architecture the trace is used. +By default, the native endianness of the source architecture is used. Byte order can be overridden for a basic type by specifying a "byte_order" attribute. Typical use-case is to specify the network byte order (big endian: "be") to save data captured from the network into the trace without conversion. @@ -358,7 +357,8 @@ enum name : integer_type { }; If the values are omitted, the enumeration starts at 0 and increment of 1 for -each entry: +each entry. An entry with omitted value that follows a range entry takes +as value the end_value of the previous range + 1: enum name : unsigned int { ZERO, @@ -690,11 +690,15 @@ Event packet context (all fields are optional, specified by TSDL meta-data): include all event timestamps assigned to events contained within the packet. - Events discarded count - Snapshot of a per-stream free-running counter, counting the number of - events discarded that were supposed to be written in the stream prior to - the first event in the event packet. - * Note: producer-consumer buffer full condition should fill the current + events discarded that were supposed to be written in the stream after + the last event in the event packet. + * Note: producer-consumer buffer full condition can fill the current event packet with padding so we know exactly where events have been - discarded. + discarded. However, if the buffer full condition chooses not + to fill the current event packet with padding, all we know + about the timestamp range in which the events have been + discarded is that it is somewhere between the beginning and + the end of the packet. - Lossless compression scheme used for the event packet content. Applied directly to raw data. New types of compression can be added in following versions of the format. @@ -990,7 +994,7 @@ struct metadata_packet_header { }; The packet-based meta-data can be converted to a text-only meta-data by -concatenating all the strings in contains. +concatenating all the strings it contains. In the textual representation of the meta-data, the text contained within "/*" and "*/", as well as within "//" and end of line, are @@ -1732,6 +1736,7 @@ typedef-name: 2.3) CTF-specific declarations ctf-specifier: + clock { ctf-assignment-expression-list-opt } event { ctf-assignment-expression-list-opt } stream { ctf-assignment-expression-list-opt } env { ctf-assignment-expression-list-opt }