Add table of contents
[ctf.git] / common-trace-format-proposal.txt
index d2a1f224d69bf8459714b35a3ac735542898d5b7..31037223237fbe0510831b9911da98d8ae731049 100644 (file)
@@ -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.
@@ -233,7 +274,7 @@ defined by the size of the type "unit_type".
 
 TSDL meta-data representation:
 
-  unit_type name:size:
+  unit_type name:size;
 
 As an example, the following structure declared in C compiled by GCC:
 
@@ -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 */
@@ -1468,8 +1509,8 @@ struct-or-variant-declaration-list:
 struct-or-variant-declaration:
        specifier-qualifier-list struct-or-variant-declarator-list ;
        declaration-specifiers-opt storage-class-specifier declaration-specifiers-opt declarator-list ;
-       typealias declaration-specifiers abstract-declarator-list := declaration-specifiers abstract-declarator-list ;
-       typealias declaration-specifiers abstract-declarator-list := 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 ;
 
 specifier-qualifier-list:
        type-specifier specifier-qualifier-list-opt
@@ -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 := declaration-specifiers abstract-declarator-list ;
-       typealias declaration-specifiers abstract-declarator-list := 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 ;
@@ -1559,5 +1601,5 @@ ctf-assignment-expression:
        unary-expression assignment-operator unary-expression
        unary-expression type-assignment-operator type-specifier
        declaration-specifiers-opt storage-class-specifier declaration-specifiers-opt declarator-list
-       typealias declaration-specifiers abstract-declarator-list := declaration-specifiers abstract-declarator-list
-       typealias declaration-specifiers abstract-declarator-list := 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
This page took 0.032857 seconds and 4 git commands to generate.