-
Notifications
You must be signed in to change notification settings - Fork 17
Metadata object
A metadata object defines the desired layout of the CTF trace to be produced by the generated C code. It is used by barectf to generate C code, as well as a corresponding CTF metadata file.
A metadata object is used as the metadata property of the
configuration object.
| Property | Type | Description | Required? | Default value |
|---|---|---|---|---|
type-aliases |
Associative array of strings (alias names) to [[type objects | Type object]] or strings (previous alias names) | Type aliases to be used in trace, stream, and event objects | Optional |
$log-levels |
Associative array of strings (log level names) to log level constant integers | Log levels to be used in event objects | Optional | {} |
clocks |
Associative array of strings (clock names) to [[clock objects | Clock object]] | Trace clocks | Optional |
env |
Associative array of strings (names) to strings or integers (values) | Trace environment variables | Optional | {} |
trace |
Trace object | Metadata common to the whole trace | Required | N/A |
streams |
Associative array of strings (stream names) to [[stream objects | Stream object]] | Trace streams | Required |
[[$include
|
Including external YAML files]] | String or array of strings | Include base properties from external YAML file(s) | Optional |
All the properties which have a default value can also be set to
null to force this default value. This is especially useful when
including external YAML files.
Each clock name of the clocks property must be a valid C identifier.
The streams property must contain at least one entry. Each stream name must be
a valid C identifier.
Each environment variable name in the env property must be a valid
C identifier. Those variables will be appended to some environment
variables set by barectf itself.
The order of the type-aliases entries is important: a type alias may only
inherit from another type alias if the latter is defined before.
type-aliases:
uint8:
class: integer
size: 8
uint16:
class: integer
size: 16
uint32:
class: integer
size: 32
uint64:
class: integer
size: 64
clock-int:
$inherit: uint64
property-mappings:
- type: clock
name: my_clock
property: value
byte: uint8
uuid:
class: array
length: 16
element-type: byte
$log-levels:
emerg: 0
alert: 1
critical: 2
error: 3
warning: 4
notice: 5
info: 6
clocks:
my_clock:
freq: 1000000000
offset:
seconds: 1434072888
$return-ctype: uint64_t
env:
my_system_version: '0.3.2-2015.03'
bID: 15
trace:
byte-order: le
uuid: auto
packet-header-type:
class: struct
min-align: 8
fields:
magic: uint32
uuid: uuid
stream_id: uint8
streams:
my_stream:
packet-context-type:
class: struct
fields:
timestamp_begin: clock-int
timestamp_end: clock-int
packet_size: uint32
something: float
content_size: uint32
events_discarded: uint32
event-header-type:
class: struct
fields:
timestamp: clock-int
id: uint16
events:
simple_uint32:
log-level: error
payload-type:
class: struct
fields:
value: uint32
simple_int16:
payload-type:
class: struct
fields:
value:
$inherit: uint16
signed: trueCopyright © 2014-2016 Philippe Proulx (project license)