config.py: move target byte order property from config. to trace type
authorPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 18 Sep 2020 19:27:12 +0000 (15:27 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Fri, 18 Sep 2020 19:31:51 +0000 (15:31 -0400)
This property is part of the trace type, as it's related to the byte
order of bit array field types which are all part of the trace type.

Also it's a CTF concept, not a barectf concept.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
29 files changed:
barectf/config.py
barectf/config_parse_v2.py
barectf/config_parse_v3.py
barectf/schemas/config/3/config.yaml
barectf/templates/c/bitfield.h.j2
barectf/templates/c/serialize-write-bit-array-statements.j2
barectf/templates/metadata/metadata.j2
examples/linux-fs-simple/config.yaml
platforms/linux-fs/README.adoc
tests/tracing/configs/succeed/dynamic-array/nested-5-uint8.yaml
tests/tracing/configs/succeed/dynamic-array/of-double.yaml
tests/tracing/configs/succeed/dynamic-array/of-static-array-of-double.yaml
tests/tracing/configs/succeed/dynamic-array/of-static-array-of-str.yaml
tests/tracing/configs/succeed/dynamic-array/of-static-array-of-uint8.yaml
tests/tracing/configs/succeed/dynamic-array/of-str.yaml
tests/tracing/configs/succeed/dynamic-array/of-uint3-middle.yaml
tests/tracing/configs/succeed/dynamic-array/of-uint3.yaml
tests/tracing/configs/succeed/dynamic-array/of-uint8.yaml
tests/tracing/configs/succeed/dynamic-array/zero-len.yaml
tests/tracing/configs/succeed/static-array/nested-5-uint8.yaml
tests/tracing/configs/succeed/static-array/of-double.yaml
tests/tracing/configs/succeed/static-array/of-static-array-of-double.yaml
tests/tracing/configs/succeed/static-array/of-static-array-of-str.yaml
tests/tracing/configs/succeed/static-array/of-static-array-of-uint8.yaml
tests/tracing/configs/succeed/static-array/of-str.yaml
tests/tracing/configs/succeed/static-array/of-uint3-middle.yaml
tests/tracing/configs/succeed/static-array/of-uint3.yaml
tests/tracing/configs/succeed/static-array/of-uint8.yaml
tests/tracing/configs/succeed/static-array/zero-len.yaml

index ca9dd4ffc4f9ffb3408f53bb382e2c73dd90797e..aa65d65cd1924b468bad53254a305ec5531436a4 100644 (file)
@@ -696,8 +696,9 @@ class TraceTypeFeatures:
 
 
 class TraceType:
-    def __init__(self, data_stream_types: Set[DataStreamType], uuid: _OptUuid = None,
-                 features: Optional[TraceTypeFeatures] = None):
+    def __init__(self, target_byte_order: ByteOrder, data_stream_types: Set[DataStreamType],
+                 uuid: _OptUuid = None, features: Optional[TraceTypeFeatures] = None):
+        self._target_byte_order = target_byte_order
         self._data_stream_types = frozenset(data_stream_types)
 
         # assign unique IDs
@@ -732,6 +733,10 @@ class TraceType:
         add_member_if_exists('stream_id', self._features.data_stream_type_id_field_type)
         self._pkt_header_ft = StructureFieldType(8, members)
 
+    @property
+    def target_byte_order(self) -> ByteOrder:
+        return self._target_byte_order
+
     @property
     def uuid(self) -> _OptUuid:
         return self._uuid
@@ -896,11 +901,9 @@ class ConfigurationOptions:
 
 
 class Configuration:
-    def __init__(self, trace: Trace, target_byte_order: ByteOrder,
-                 options: Optional[ConfigurationOptions] = None):
+    def __init__(self, trace: Trace, options: Optional[ConfigurationOptions] = None):
         self._trace = trace
         self._options = ConfigurationOptions()
-        self._target_byte_order = target_byte_order
 
         if options is not None:
             self._options = options
@@ -920,10 +923,6 @@ class Configuration:
     def trace(self) -> Trace:
         return self._trace
 
-    @property
-    def target_byte_order(self):
-        return self._target_byte_order
-
     @property
     def options(self) -> ConfigurationOptions:
         return self._options
index e6079626b2de26b27f32ef8da2bd216ec21f3c60..6f977007fad01b2bb0e03427e94a055b70c4cc18 100644 (file)
@@ -489,9 +489,8 @@ class _Parser(config_parse_common._Parser):
         v3_trace_type_node: _MapNode = collections.OrderedDict()
         v2_trace_node = v2_meta_node['trace']
 
-        # Move `byte-order` property to root node's `target-byte-order`
-        # property.
-        typing.cast(_MapNode, self._root_node)['target-byte-order'] = v2_trace_node['byte-order']
+        # copy `byte-order` property as `target-byte-order` property
+        _copy_prop_if_exists(v3_trace_type_node, v2_trace_node, 'byte-order', 'target-byte-order')
 
         # copy `uuid` property
         _copy_prop_if_exists(v3_trace_type_node, v2_trace_node, 'uuid')
index 771bf03a606dbfcb3ad6564acad4bcfed90fe144..567d4d4a2ad920ec0a407691f414477bd7d048f9 100644 (file)
@@ -652,7 +652,8 @@ class _Parser(barectf_config_parse_common._Parser):
                 dsts.add(self._create_dst(dst_name, dst_node))
 
             # create trace type
-            return barectf_config.TraceType(dsts, trace_type_uuid, features)
+            return barectf_config.TraceType(self._target_byte_order, dsts, trace_type_uuid,
+                                            features)
         except _ConfigurationParseError as exc:
             _append_error_ctx(exc, 'Trace type')
 
@@ -750,7 +751,7 @@ class _Parser(barectf_config_parse_common._Parser):
         opts = barectf_config.ConfigurationOptions(cg_opts)
 
         # create configuration
-        self._config = barectf_config.Configuration(trace, self._target_byte_order, opts)
+        self._config = barectf_config.Configuration(trace, opts)
 
     # Expands the field type aliases found in the trace type node.
     #
@@ -1106,7 +1107,7 @@ class _Parser(barectf_config_parse_common._Parser):
                 parent_node[key] = 'little-endian'
 
         trace_node = self.config_node['trace']
-        normalize_byte_order_prop(self.config_node, 'target-byte-order')
+        normalize_byte_order_prop(self._trace_type_node, 'target-byte-order')
 
         for parent_node, key in self._trace_type_props():
             node = parent_node[key]
@@ -1151,7 +1152,7 @@ class _Parser(barectf_config_parse_common._Parser):
 
     # Sets the parser's target byte order.
     def _set_target_byte_order(self):
-        self._target_byte_order_node = self.config_node['target-byte-order']
+        self._target_byte_order_node = self._trace_type_node['target-byte-order']
         self._target_byte_order = self._byte_order_from_node(self._target_byte_order_node)
 
     # Processes the inclusions of the event record type node
index 84e93e66a819885b6e77d77a99d88686b0d4d3ee..7b99b714ea270d7c4e4cecebcd1dde0a7a8287d2 100644 (file)
@@ -91,6 +91,8 @@ definitions:
     title: Trace type object
     type: object
     properties:
+      target-byte-order:
+        $ref: https://barectf.org/schemas/config/common/common.json#/definitions/byte-order-prop
       uuid:
         $ref: https://barectf.org/schemas/config/common/common.json#/definitions/opt-trace-type-uuid-prop
       $features:
@@ -155,6 +157,7 @@ definitions:
         additionalProperties: false
         minProperties: 1
     required:
+      - target-byte-order
       - data-stream-types
     additionalProperties: false
   clock-type:
@@ -295,11 +298,8 @@ properties:
             additionalProperties: false
         additionalProperties: false
     additionalProperties: false
-  target-byte-order:
-    $ref: https://barectf.org/schemas/config/common/common.json#/definitions/byte-order-prop
   trace:
     $ref: '#/definitions/trace'
 required:
   - trace
-  - target-byte-order
 additionalProperties: false
index 05d507ba3bb140a3b373b0a4599e53e2a484ac7f..9796e425ae28362bacf45c3432015355a9de096d 100644 (file)
@@ -98,7 +98,7 @@ do {                                                                  \
  * Also, consecutive bitfields are placed from higher to lower bits.
  */
 
-{% if cfg.target_byte_order == barectf_config.ByteOrder.LITTLE_ENDIAN %}
+{% if cfg.trace.type.target_byte_order == barectf_config.ByteOrder.LITTLE_ENDIAN %}
 /* Target byte order: little-endian */
 
 #define _bt_bitfield_write_le(_ptr, type, _start, _length, _vtype, _v) \
index bf7105c3f93b1d0e9f1bbd981046a1fb55f453ac..387fab8df4db59116d9320020513f14bba874ffd 100644 (file)
@@ -33,7 +33,7 @@
        {{ incr_at }};
 }
 {%- else %}
-       {% set bo = 'le' if cfg.target_byte_order == barectf_config.ByteOrder.LITTLE_ENDIAN else 'be' %}
+       {% set bo = 'le' if cfg.trace.type.target_byte_order == barectf_config.ByteOrder.LITTLE_ENDIAN else 'be' %}
        {% set c_type_non_const = c_type | replace('const ', '') %}
        {% set offset_in_byte = 'ctx->at % 8' if op.offset_in_byte == none else op.offset_in_byte %}
 bt_bitfield_write_{{ bo }}(&ctx->buf[_BITS_TO_BYTES(ctx->at)], {{ offset_in_byte }}, {{ op.ft.size }},
index d4ec4d36f2dfcc5259b926d7a744e893e40f8ec8..4a73b99ab603f7063d6ff5d9d86b16dd0e52e55b 100644 (file)
@@ -39,7 +39,7 @@
 trace {
        major = 1;
        minor = 8;
-       byte_order = {{ 'le' if cfg.target_byte_order == barectf_config.ByteOrder.LITTLE_ENDIAN else 'be' }};
+       byte_order = {{ 'le' if cfg.trace.type.target_byte_order == barectf_config.ByteOrder.LITTLE_ENDIAN else 'be' }};
 {% if cfg.trace.type.uuid %}
        uuid = "{{ cfg.trace.type.uuid }}";
 {% endif %}
index 6494f9a18f5314530cdd21b3e92778c9a1fe604e..20e5442a07ae92e8409750e7cb430b65501e8d23 100644 (file)
@@ -23,9 +23,9 @@
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: little-endian
 trace:
   type:
+    target-byte-order: little-endian
     $include:
       - stdint.yaml
       - stdreal.yaml
index f464496fe4c205aad523ff6306f5c16f30cc50bd..486cb11aa4f5655a5548c0fd30904e44ea246146 100644 (file)
@@ -34,11 +34,11 @@ C{nbsp}type:::: `uint64_t`
 [source,yaml]
 ----
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     clock-types:
       default:
         $c-type: uint64_t
@@ -162,11 +162,11 @@ The barectf context to pass to your tracing functions
 [source,yaml]
 ----
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     clock-types:
       default:
         $c-type: uint64_t
index 8e0540d3aa4ce004ca522e14f1e59115eff8eb55..bc8f740f89b6fe858ec46ed45564c6506633c9df 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index ced3f8846cd0c7aa186c5067107537d42069dd99..d3469b1752830fefe930a6ae690edf61f0e425ee 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdreal.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 01885165017fd9b59ac293e6b53b9db35a171d89..a1fd509b95a18a0fda872be4f43c3562a4349afc 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdreal.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index bdb2b8687a761206681001ae21d4884d9fa7f00d..d85cc341ce7fa7398d6e9d806de7ae89d93a231f 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdmisc.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index aa7e87f6736c215b4cfb238e6290d49fa705cc7e..430600f8401734fd7f97f085d081f1e0e3be0bf7 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 366b25e613c04acfe3acb1abfee669f0e99b2bb5..a36edaab9b9459dc8c61a375ba364982b93ef34d 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdmisc.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 660c4ff3a17bd22bf20f10caff36418048db0a92..d4e7283b27cd88b09ff3fe9072450b47cb89366f 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
       - stdmisc.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index c985cd51712b74a2c812546e09bd3b04a32bd666..a8f9608babf31ae3c16d81b3f29b7d766a7f03c1 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 75178f468c50a41c1e61dfad9abab611e25e9472..cac9efeb191eb98cdfb6a2953e9ec118e8007a25 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 5aa56d66bed2e582150ea1d355d992e174990c51..6e0582cdfb500915f0b8d9d16aea3698e260497e 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index c6d33ed5da799cb941987d1e3278ee3cf632bc97..623e438d2733beac0331f39183d4459f19ba8cbe 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index f7ef676bcc8aa96d36d2f50b4993dc0730f21660..9d007f40080578c1340f09d333ad891d21cb0ca9 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdreal.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 6891442e514ad9e5db347824592ac947a31ac6c5..6b460fc1eb780db716ef63f6bca7684418684846 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdreal.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index a0bac3993137ea30a458844e3ad168bcd6e5af4c..3b69dbbe8e4f1fcc2c91d2619eee38e4d20bd1d1 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdmisc.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index efc2e9b4846aaae5bf86939bc6a37c1b1ae04db4..9a16322c6e9713b502ca7c6cd50997bcbdfe975b 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 566a32f8ac3634c534f1119d4404ac4620b1f7ff..f893fe8cbe2b76e8025af08545e5050a9ed6abb2 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdmisc.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 20a113377a39ea3daf4471beaedd903d793d3702..5cb3e9c0cc526b123b6f3374fd4116f46ac5ef07 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
       - stdmisc.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 8e704dfed5d7da4ca45a397735f41e1dd9b365f7..4aab9185da8fee267a5be4003418fd03d61c5ec9 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 5bb0aa66e8c03b3e8b39b583141a854e1ec4179e..9e2bc31d01e0e54c3237818a0ad22c30d23c4f0e 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
index 9644939f12a925aaa5dcf08fde74851211ad55d0..13880eca13b3a1420e6930993928f0dcd2713f02 100644 (file)
 %YAML 1.2
 
 --- !<tag:barectf.org,2020/3/config>
-target-byte-order: le
 trace:
   type:
     $include:
       - stdint.yaml
+    target-byte-order: le
     data-stream-types:
       default:
         $is-default: true
This page took 0.041185 seconds and 4 git commands to generate.