X-Git-Url: http://git.efficios.com/?p=ctf.git;a=blobdiff_plain;f=common-trace-format-proposal.txt;h=445fe7ac733715fbce56c0c2185969759ecdc7be;hp=a30d9b118955d9cc330fa2978163a49d9304f9ea;hb=4fafe1ad4e330af04dc297fe72745ad20c449341;hpb=ae8c075a841df862b442975d87730bf7da6c3126 diff --git a/common-trace-format-proposal.txt b/common-trace-format-proposal.txt index a30d9b1..445fe7a 100644 --- a/common-trace-format-proposal.txt +++ b/common-trace-format-proposal.txt @@ -761,20 +761,23 @@ contained within the payload. (This follows the ISO/C standard for structures) 7. Metadata -The meta-data is located in a stream named "metadata". It is made of "event -packets", which each start with an event packet header. The event type within -the metadata stream have no event header nor event context. Each event only -contains a null-terminated "string" payload, which is a metadata description -entry. The events are packed one next to another. Each event packet start with -an event packet header, which contains, amongst other fields, the magic number -and trace UUID. The trace UUID is represented as a string of hexadecimal digits -and dashes "-". - -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. Boolean values can -be represented as true, TRUE, or 1 for true, and false, FALSE, or 0 for false. +The meta-data is located in a stream identified by its name: "metadata". +It is made of "event packets", which each start with an event packet +header. The event type within the metadata stream have no event header +nor event context. Each event only contains a null-terminated "string" +payload, which is a metadata description entry. The events are packed +one next to another. Each event packet start with an event packet +header, which contains, amongst other fields, the magic number and trace +UUID. In the event packet header, the trace UUID is represented as an +array of bytes. Within the string-based metadata description, the trace +UUID is represented as a string of hexadecimal digits and dashes "-". + +The metadata can be parsed by reading through the metadata strings, +skipping 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. +Boolean values can be represented as true, TRUE, or 1 for true, and +false, FALSE, or 0 for false. 7.1 Declaration vs Definition @@ -791,7 +794,8 @@ similarly to C99. The enumeration type specifier and variant tag name (both specified with "<" ">") are part of the type specifier. A definition associates a type to a location in the event structure -hierarchy (see Section 6). +hierarchy (see Section 6). This association is denoted by ":=", as shown +in Section 7.3. 7.2 Metadata Scopes @@ -849,7 +853,7 @@ consumption, for each event, the current trace context is therefore readable by accessing the upper dynamic scopes. -7.2 Metadata Examples +7.3 Metadata Examples The grammar representing the CTF metadata is presented in Appendix C. CTF Metadata Grammar. This section presents a rather ligher @@ -1243,6 +1247,9 @@ unary-operator: one of assignment-operator: = +type-assignment-operator: + := + constant-expression: unary-expression @@ -1252,11 +1259,11 @@ constant-expression-range: 2.2) Declarations: declaration: - declaration-specifiers ; - declaration-specifiers storage-class-specifier declaration-specifiers declarator-list ; + declaration-specifiers declarator-list-opt ; ctf-specifier ; declaration-specifiers: + storage-class-specifier declaration-specifiers-opt type-specifier declaration-specifiers-opt type-qualifier declaration-specifiers-opt @@ -1283,6 +1290,7 @@ type-specifier: unsigned _Bool _Complex + _Imaginary struct-specifier variant-specifier enum-specifier