1<?xml version="1.0" encoding="utf-8"?>
2<syst:Collateral xmlns:syst="http://www.mipi.org/1.0/sys-t"
3    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4    xsi:schemaLocation="http://www.mipi.org/1.0/sys-t
5                        https://www.mipi.org/schema/sys-t/sys-t_1-0.xsd">
6
7  <!--
8  A SyS-T collateral file starts with one syst:Collateral element
9  and contains at least one syst:Client child node.
10 -->
11  <syst:Client Name="example">
12
13    <!--
14    List of message GUIDs for this client:
15    A GUID is a 128bit numeric UUID following RFC 4122.
16    Clients that are identified by transport layer properties
17    can use pseudo GUID values to identify their messages. A
18    pseudo GUID is defined as a GUID with bit 71 set to zero.
19    The following encoding might be used for clients identified
20    by MIPI System Trace Protocol (STP) master/channel pairs:
21
22     {00000000-<MasterID>-<ChannelID>-<Origin>00-000000000000}
23
24    A Mask attribute can be added to define which bits of the GUID are
25    used for comparison. Without a mask, all bits need to match.
26    The example below makes the catalog valid for all channels from the
27    STP master value 0x644, or messages with the "494E..." GUID in their
28    payload.
29    -->
30    <syst:Guids>
31      <syst:Guid ID=  "{00000000-0644-0000-0000-000000000000}"
32                 Mask="{00000000-FFFF-0000-8000-000000000000}"><![CDATA[kernel]]></syst:Guid>
33      <syst:Guid ID="{494E5443-6F64-43D1-93F0-F3D49D92670C}"><![CDATA[user]]></syst:Guid>
34    </syst:Guids>
35
36    <!--
37    Define for which client build versions this collateral is valid.
38    Builds are expressed as values up to 64 bits in size, and can include a
39    mask that defines which bits need to match with a client build version
40    message.
41    -->
42    <syst:Builds>
43      <syst:Build ID="0x00010000" Mask="0xFFFF0000" ><![CDATA[SW Build 1.x]]></syst:Build>
44      <syst:Build ID="0x00020000" Mask="0xFFFF0000" ><![CDATA[SW Build 2.x]]></syst:Build>
45    </syst:Builds>
46
47     <!--
48     Settings to guide decoding tools what to do in cases
49     where several options are possible. The example below tells
50     a decoder to interprete SyS-T message timstamps only as an
51     informal field, but not the message creation time.
52     -->
53    <syst:Options>
54      <syst:Option Name="syst:timestamp">displayAsField</syst:Option>
55    </syst:Options>
56
57    <!--
58    Provide ID to name mapping for Origin header field values.
59    -->
60    <syst:Modules>
61      <syst:Module ID="0x1"><![CDATA[kernel]]></syst:Module>
62      <syst:Module ID="0x2"><![CDATA[user]]></syst:Module>
63  </syst:Modules>
64
65    <!--
66    Define the mapping of the numeric File-ID to source files.
67    This table is optional and only needed if source references are used
68    by the Catalog32 or Catalog64 elements.
69    -->
70    <syst:SourceFiles>
71      <syst:File ID="0x00000001"><![CDATA[example/src/main.c]]></syst:File>
72      <syst:File ID="0x00000002"><![CDATA[example/h/example.h]]></syst:File>
73    </syst:SourceFiles>
74
75    <!--
76    Define the mapping of catalog message ID to human-readable strings.
77    This table is optional and only needed if catalog messages are used.
78    A message can have optional "File" and "Line" attributes to specify the
79    source position of the instrumentation call. A decoder uses the
80    information from these attributes if the message payload doesn't provide
81    explicit location information.
82    -->
83    <syst:Catalog32>
84      <syst:Format ID="0x00000001" File="0x00000001" Line="23"><![CDATA[This is example %d.%d]]></syst:Format>
85      <syst:Format ID="0x00000002" File="0x00000002" Line="72"><![CDATA[task switch %x->%x]]></syst:Format>
86    </syst:Catalog32>
87
88    <syst:Catalog64>
89      <syst:Format ID="0x0000000000000001"><![CDATA[error %d]]></syst:Format>
90    </syst:Catalog64>
91
92    <!--
93    Define short message mapping from 28-Bit ID to user visible string.
94    -->
95    <syst:Short32>
96      <syst:Format ID="0x0000000" Mask="0xFFFFFF0"><![CDATA[Fatal Error code]]></syst:Format>
97      <syst:Format ID="0x0000013"><![CDATA[state ready]]></syst:Format>
98      <syst:Format ID="0x000001A"><![CDATA[state halt]]></syst:Format>
99    </syst:Short32>
100
101    <!--
102    Define short message mapping from 60-Bit ID to user visible string.
103    -->
104    <syst:Short64>
105      <syst:Format ID="0x123456700000000" Mask="0xFFFFFFF00000000"><![CDATA[warning state]]></syst:Format>
106
107    </syst:Short64>
108
109    <!--
110    Specify raw message protocol id assignment
111    -->
112    <syst:Write>
113      <syst:Protocol ID="0x01"><![CDATA[console]]></syst:Protocol>
114      <syst:Protocol ID="0x02"><![CDATA[console]]></syst:Protocol>
115      <syst:Protocol ID="0x03"><![CDATA[ftrace]]></syst:Protocol>
116      <syst:Protocol ID="0x20" Mask="0x30"><![CDATA[reserved]]></syst:Protocol>
117    </syst:Write>
118
119</syst:Client>
120
121</syst:Collateral>