Add "tagged" union
[ctf.git] / common-trace-format-proposal.txt
index 2311fb0e9ea0e0724912b2c6405daad334876e9a..0daac2adccfa4115a91f0576f0402f5c31be3157 100644 (file)
@@ -335,7 +335,7 @@ struct {
   ...
 }
 
   ...
 }
 
-4.2.2 Variants (Discriminated Unions)
+4.2.2 Variants (Discriminated/Tagged Unions)
 
 A CTF variant is a selection between different types. A CTF variant must always
 be defined within the scope of a structure or within fields contained within a
 
 A CTF variant is a selection between different types. A CTF variant must always
 be defined within the scope of a structure or within fields contained within a
@@ -393,7 +393,7 @@ variant example {
 
 struct {
   enum <uint2_t> { a, b, c } choice;
 
 struct {
   enum <uint2_t> { a, b, c } choice;
-  variant example <choice> u[unsigned int];
+  variant example <choice> v[unsigned int];
 }
 
 Example of an unnamed variant:
 }
 
 Example of an unnamed variant:
@@ -421,7 +421,7 @@ struct {
     uint32_t a;
     uint64_t b;
     short c;
     uint32_t a;
     uint64_t b;
     short c;
-  } u[10];
+  } v[10];
 }
 
 Example of a variant type definition within a structure, where the defined type
 }
 
 Example of a variant type definition within a structure, where the defined type
@@ -771,7 +771,8 @@ and trace UUID.
 The metadata can be parsed by reading through the metadata strings, skipping
 newlines and null-characters. Type names are made of a single identifier, and
 can be surrounded by prefix/postfix. Text contained within "/*" and "*/", as
 The metadata can be parsed by reading through the metadata strings, skipping
 newlines and null-characters. Type names are made of a single identifier, and
 can be surrounded by prefix/postfix. Text contained within "/*" and "*/", as
-well as within "//" and end of line, are treated as comments.
+well as within "//" and end of line, are treated as comments. Boolean values can
+be represented as true, TRUE, or 1 for true, and false, FALSE, or 0 for false.
 
 The grammar representing the CTF metadata is presented in
 Appendix C. CTF Metadata Grammar.
 
 The grammar representing the CTF metadata is presented in
 Appendix C. CTF Metadata Grammar.
@@ -785,18 +786,13 @@ trace {
 
 stream {
   id = stream_id;
 
 stream {
   id = stream_id;
-  event {
-    header_alignment = value;
-    /* Type 1 - Few event IDs; Type 2 - Many event IDs. See section 6.2. */
-    header = event_header_1 OR event_header_2;
-    context = struct {
-      ...
-    };
+  /* Type 1 - Few event IDs; Type 2 - Many event IDs. See section 6.2. */
+  event.header = event_header_1 OR event_header_2;
+  event.context = struct {
+    ...
   };
   };
-  packet {
-    context = struct {
-      ...
-    };
+  packet.context = struct {
+    ...
   };
 };
 
   };
 };
 
This page took 0.022326 seconds and 4 git commands to generate.