X-Git-Url: http://git.efficios.com/?p=ctf.git;a=blobdiff_plain;f=common-trace-format-proposal.txt;h=fd93760c28e6c408c337912d3206d535b7164eff;hp=361c2ec39c21f35ceb06363b218b0c683113d284;hb=689e04b4a08ed27a596bf1b8cd2d3c4b3e5f4a2e;hpb=7d9d7e926e1b628d97b5fbdf4470a0ed26db24c6 diff --git a/common-trace-format-proposal.txt b/common-trace-format-proposal.txt index 361c2ec..fd93760 100644 --- a/common-trace-format-proposal.txt +++ b/common-trace-format-proposal.txt @@ -68,14 +68,10 @@ A metadata event stream contains information on trace event types. It describes: 3. Event stream An event stream is divided in 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 rationale for the event stream design choices is -explained in Appendix B. Stream Header Rationale. - -An event stream is divided in 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. +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. The event stream header will therefore be referred to as the "event packet header" throughout the rest of this document. @@ -791,10 +787,12 @@ variant field), a declaration is followed by a declarator, which specify the newly defined type name (for typedef), or the field name (for declarations located within structure and variants). Array and sequence, declared with square brackets ("[" "]"), are part of the declarator, -similarly to C99. +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 @@ -845,8 +843,14 @@ different scopes. There is no possible conflict, because the dynamic scope must be specified when a variant refers to a tag field located in a different dynamic scope. +The information available in the dynamic scopes can be thought of as the +current tracing context. At trace production, information about the +current context is saved into the specified scope field levels. At trace +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 @@ -1240,6 +1244,9 @@ unary-operator: one of assignment-operator: = +type-assignment-operator: + := + constant-expression: unary-expression @@ -1249,11 +1256,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 @@ -1280,6 +1287,7 @@ type-specifier: unsigned _Bool _Complex + _Imaginary struct-specifier variant-specifier enum-specifier