X-Git-Url: http://git.efficios.com/?p=ctf.git;a=blobdiff_plain;f=common-trace-format-proposal.txt;h=552ac32d33983d47f4b0dd30ba15abc4e198d25b;hp=c25c94333616d8cfb877c01b9f83798faab33de6;hb=13441bf58f43115c03856276005260dc2b869ea7;hpb=136830e95c50f7377882af612e71dd5ac00d7b2c diff --git a/common-trace-format-proposal.txt b/common-trace-format-proposal.txt index c25c943..552ac32 100644 --- a/common-trace-format-proposal.txt +++ b/common-trace-format-proposal.txt @@ -193,6 +193,8 @@ TSDL meta-data representation: /* based used for pretty-printing output, default: decimal. */ base = decimal OR dec OR OR d OR i OR u OR 10 OR hexadecimal OR hex OR x OR X OR p OR 16 OR octal OR oct OR o OR 8 OR binary OR b OR 2; + /* character encoding, default: none */ + encoding = none or UTF8 or ASCII; } Example of type inheritance (creation of a uint32_t named type): @@ -211,6 +213,17 @@ typealias integer { align = 1; } := int5_t; +The character encoding field can be used to specify that the integer +must be printed as a text character when read. e.g.: + +typealias integer { + size = 8; + align = 8; + signed = false; + encoding = UTF8; +} := utf_char; + + 4.1.6 GNU/C bitfields The GNU/C bitfields follow closely the integer representation, with a @@ -649,7 +662,7 @@ the fields typically expected (although these fields are each optional): struct event_packet_header { uint32_t magic; - uint8_t trace_uuid[16]; + uint8_t uuid[16]; uint32_t stream_id; }; @@ -661,8 +674,8 @@ trace { If the magic number is not present, tools such as "file" will have no mean to discover the file type. -If the trace_uuid is not present, no validation that the meta-data -actually corresponds to the stream is performed. +If the uuid is not present, no validation that the meta-data actually +corresponds to the stream is performed. If the stream_id packet header field is missing, the trace can only contain a single stream. Its "id" field can be left out, and its events @@ -895,7 +908,7 @@ contains, exactly: struct metadata_packet_header { uint32_t magic; /* 0x75D11D57 */ - uint8_t trace_uuid[16]; /* Unique Universal Identifier */ + uint8_t uuid[16]; /* Unique Universal Identifier */ uint32_t checksum; /* 0 if unused */ uint32_t content_size; /* in bits */ uint32_t packet_size; /* in bits */ @@ -1010,7 +1023,7 @@ trace { byte_order = be OR le; /* Endianness (required) */ packet.header := struct { uint32_t magic; - uint8_t trace_uuid[16]; + uint8_t uuid[16]; uint32_t stream_id; }; }; @@ -1454,7 +1467,7 @@ 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 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 ; @@ -1539,12 +1552,12 @@ ctf-type-specifier: string { ctf-assignment-expression-list-opt } ctf-assignment-expression-list: - ctf-assignment-expression - ctf-assignment-expression-list ; ctf-assignment-expression + ctf-assignment-expression ; + ctf-assignment-expression-list ctf-assignment-expression ; ctf-assignment-expression: unary-expression assignment-operator unary-expression unary-expression type-assignment-operator type-specifier - declaration-specifiers storage-class-specifier declaration-specifiers 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