X-Git-Url: http://git.efficios.com/?p=ctf.git;a=blobdiff_plain;f=common-trace-format-proposal.txt;h=31037223237fbe0510831b9911da98d8ae731049;hp=e54166954fc41b244567c240bda6ab29515159ab;hb=beabf088015cd7de7fc53cedf59c0551e692fc3b;hpb=6143bab734320f8e21b4a177c5cefee78fd9afe6 diff --git a/common-trace-format-proposal.txt b/common-trace-format-proposal.txt index e541669..3103722 100644 --- a/common-trace-format-proposal.txt +++ b/common-trace-format-proposal.txt @@ -24,6 +24,47 @@ formats. The development tree is available at: gitweb: http://git.efficios.com/?p=babeltrace.git +Table of Contents + +1. Preliminary definitions +2. High-level representation of a trace +3. Event stream +4. Types + 4.1 Basic types + 4.1.1 Type inheritance + 4.1.2 Alignment + 4.1.3 Byte order + 4.1.4 Size + 4.1.5 Integers + 4.1.6 GNU/C bitfields + 4.1.7 Floating point + 4.1.8 Enumerations +4.2 Compound types + 4.2.1 Structures + 4.2.2 Variants (Discriminated/Tagged Unions) + 4.2.3 Arrays + 4.2.4 Sequences + 4.2.5 Strings +5. Event Packet Header + 5.1 Event Packet Header Description + 5.2 Event Packet Context Description +6. Event Structure + 6.1 Event Header + 6.1.1 Type 1 - Few event IDs + 6.1.2 Type 2 - Many event IDs + 6.2 Event Context + 6.3 Event Payload + 6.3.1 Padding + 6.3.2 Alignment +7. Trace Stream Description Language (TSDL) + 7.1 Meta-data + 7.2 Declaration vs Definition + 7.3 TSDL Scopes + 7.3.1 Lexical Scope + 7.3.2 Dynamic Scope + 7.4 TSDL Examples + + 1. Preliminary definitions - Event Trace: An ordered sequence of events. @@ -900,11 +941,11 @@ endianness of the architecture by trying to read the CTF magic number and its counterpart in reversed endianness. The events within the meta-data stream have no event header nor event context. Each event only contains a "sequence" payload, which is a sequence of bits using the -"trace.packet.header.content_size" field as a placeholder for its -length. The formatting of this sequence of bits is a plain-text -representation of the TSDL description. Each meta-data packet start with -a special packet header, specific to the meta-data stream, which -contains, exactly: +"trace.packet.header.content_size" field as a placeholder for its length +(the packet header size should be substracted). The formatting of this +sequence of bits is a plain-text representation of the TSDL description. +Each meta-data packet start with a special packet header, specific to +the meta-data stream, which contains, exactly: struct metadata_packet_header { uint32_t magic; /* 0x75D11D57 */ @@ -1503,8 +1544,8 @@ enumerator-list: enumerator: enumeration-constant - enumeration-constant = unary-expression - enumeration-constant = constant-expression-range + enumeration-constant assignment-operator unary-expression + enumeration-constant assignment-operator constant-expression-range type-qualifier: const @@ -1543,13 +1584,14 @@ ctf-specifier: event { ctf-assignment-expression-list-opt } stream { ctf-assignment-expression-list-opt } trace { ctf-assignment-expression-list-opt } - typealias declaration-specifiers abstract-declarator-list type-assignment-operator declaration-specifiers abstract-declarator-list ; - typealias declaration-specifiers abstract-declarator-list type-assignment-operator declarator-list ; + typealias declaration-specifiers abstract-declarator-list type-assignment-operator declaration-specifiers abstract-declarator-list + typealias declaration-specifiers abstract-declarator-list type-assignment-operator declarator-list ctf-type-specifier: floating_point { ctf-assignment-expression-list-opt } integer { ctf-assignment-expression-list-opt } string { ctf-assignment-expression-list-opt } + string ctf-assignment-expression-list: ctf-assignment-expression ;