• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
3  <!-- Header printed by Valgrind tool as multiple lines of text -->
4  <xs:complexType name="vgPreamble">
5    <xs:sequence>
6      <xs:element name="line" type="xs:string"
7		  minOccurs="0" maxOccurs="unbounded"/>
8    </xs:sequence>
9  </xs:complexType>
10
11  <!-- Name and value of an environment variable used in XML output file name via %q{...} -->
12  <xs:complexType name="vgLogfileQual">
13    <xs:sequence>
14      <xs:element name="var" type="xs:string"/>
15      <xs:element name="value" type="xs:string"/>
16    </xs:sequence>
17  </xs:complexType>
18
19  <!-- User comment specified via xml-user-comment=... -->
20  <xs:complexType name="vgUserComment">
21    <xs:sequence>
22      <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
23    </xs:sequence>
24  </xs:complexType>
25
26  <!-- Executable path and arguments -->
27  <xs:complexType name="vgExeAndArgs">
28    <xs:sequence>
29      <xs:element name="exe" type="xs:string"/>
30      <xs:element name="arg" type="xs:string"
31		  minOccurs="0" maxOccurs="unbounded"/>
32    </xs:sequence>
33  </xs:complexType>
34
35  <!-- Valgrind tool and client executable path and arguments -->
36  <xs:complexType name="vgArgs">
37    <xs:sequence>
38      <xs:element name="vargv" type="vgExeAndArgs"/>
39      <xs:element name="argv" type="vgExeAndArgs"/>
40    </xs:sequence>
41  </xs:complexType>
42
43  <xs:simpleType name="vgSchedState">
44    <xs:restriction base="xs:string">
45      <xs:enumeration value="RUNNING"/>
46      <xs:enumeration value="FINISHED"/>
47    </xs:restriction>
48  </xs:simpleType>
49
50  <!-- Valgrind scheduler state and time at which a state has been reached -->
51  <xs:complexType name="vgSchedulerStatus">
52    <xs:sequence>
53      <xs:element name="state" type="vgSchedState"/>
54      <xs:element name="time" type="xs:string"/>
55    </xs:sequence>
56  </xs:complexType>
57
58  <xs:complexType name="vgSupprFrame">
59    <xs:choice>
60      <xs:element name="fun" type="xs:string"/>
61      <xs:element name="obj" type="xs:string"/>
62    </xs:choice>
63  </xs:complexType>
64
65  <!-- Client call stack -->
66  <xs:complexType name="vgStack">
67    <xs:sequence>
68      <xs:element name="frame" minOccurs="0" maxOccurs="unbounded">
69	<xs:complexType>
70	  <xs:sequence>
71	    <xs:element name="ip" type="xs:string"/>
72	    <xs:element name="obj" type="xs:string" minOccurs="0"/>
73	    <xs:element name="fn" type="xs:string" minOccurs="0"/>
74	    <xs:element name="dir" type="xs:string" minOccurs="0"/>
75	    <xs:element name="file" type="xs:string" minOccurs="0"/>
76	    <xs:element name="line" type="xs:string" minOccurs="0"/>
77	  </xs:sequence>
78	</xs:complexType>
79      </xs:element>
80    </xs:sequence>
81  </xs:complexType>
82
83  <xs:complexType name="vgErrorCount">
84    <xs:sequence>
85      <xs:element name="pair" minOccurs="0" maxOccurs="unbounded">
86	<xs:complexType>
87	  <xs:sequence>
88	    <xs:element name="count" type="xs:integer"/>
89	    <xs:element name="unique" type="xs:string"/>
90	  </xs:sequence>
91	</xs:complexType>
92      </xs:element>
93    </xs:sequence>
94  </xs:complexType>
95
96  <xs:complexType name="vgSuppCount">
97    <xs:sequence>
98      <xs:element name="pair" minOccurs="0" maxOccurs="unbounded">
99	<xs:complexType>
100	  <xs:sequence>
101	    <xs:element name="count" type="xs:integer"/>
102	    <xs:element name="name" type="xs:string"/>
103	  </xs:sequence>
104	</xs:complexType>
105      </xs:element>
106    </xs:sequence>
107  </xs:complexType>
108
109  <xs:simpleType name="drdErrorKind">
110    <xs:restriction base="xs:string">
111      <xs:enumeration value="ConflictingAccess"/>
112      <xs:enumeration value="MutexErr"/>
113      <xs:enumeration value="CondErr"/>
114      <xs:enumeration value="CondDestrErr"/>
115      <xs:enumeration value="CondRaceErr"/>
116      <xs:enumeration value="CondWaitErr"/>
117      <xs:enumeration value="SemaphoreErr"/>
118      <xs:enumeration value="BarrierErr"/>
119      <xs:enumeration value="RwlockErr"/>
120      <xs:enumeration value="HoldtimeErr"/>
121      <xs:enumeration value="GenericErr"/>
122      <xs:enumeration value="InvalidThreadId"/>
123      <xs:enumeration value="UnimpHgClReq"/>
124      <xs:enumeration value="UnimpDrdClReq"/>
125    </xs:restriction>
126  </xs:simpleType>
127
128  <!-- Same as drdErrorKind but with the "drd:" prefix -->
129  <xs:simpleType name="drdSuppressionKind">
130    <xs:restriction base="xs:string">
131      <xs:enumeration value="drd:ConflictingAccess"/>
132      <xs:enumeration value="drd:MutexErr"/>
133      <xs:enumeration value="drd:CondErr"/>
134      <xs:enumeration value="drd:CondDestrErr"/>
135      <xs:enumeration value="drd:CondRaceErr"/>
136      <xs:enumeration value="drd:CondWaitErr"/>
137      <xs:enumeration value="drd:SemaphoreErr"/>
138      <xs:enumeration value="drd:BarrierErr"/>
139      <xs:enumeration value="drd:RwlockErr"/>
140      <xs:enumeration value="drd:HoldtimeErr"/>
141      <xs:enumeration value="drd:GenericErr"/>
142      <xs:enumeration value="drd:InvalidThreadId"/>
143      <xs:enumeration value="drd:UnimpHgClReq"/>
144      <xs:enumeration value="drd:UnimpDrdClReq"/>
145    </xs:restriction>
146  </xs:simpleType>
147
148  <!-- Single line of trace information with an optional call stack -->
149  <xs:complexType name="drdTrace">
150    <xs:sequence>
151      <xs:element name="text" type="xs:string"/>
152      <xs:element name="stack" type="vgStack" minOccurs="0"/>
153    </xs:sequence>
154  </xs:complexType>
155
156  <!-- Context information about a DRD error -->
157  <xs:complexType name="drdContext">
158    <xs:sequence>
159      <xs:element name="what" type="xs:string" minOccurs="0"/>
160      <xs:element name="address" type="xs:string" minOccurs="0"/>
161      <xs:element name="stack" type="vgStack"/>
162    </xs:sequence>
163  </xs:complexType>
164
165  <xs:complexType name="drdSuppression">
166    <xs:sequence>
167      <xs:element name="sname" type="xs:string"/>
168      <xs:element name="skind" type="drdSuppressionKind"/>
169      <xs:element name="skaux" type="xs:string" minOccurs="0"/>
170      <xs:element name="sframe" type="vgSupprFrame"
171		  minOccurs="0" maxOccurs="unbounded"/>
172      <xs:element name="rawtext" type="xs:string"/>
173    </xs:sequence>
174  </xs:complexType>
175
176  <xs:complexType name="drdError">
177    <xs:sequence>
178      <xs:element name="unique" type="xs:string"/>
179      <xs:element name="tid" type="xs:integer"/>
180      <xs:element name="kind" type="drdErrorKind"/>
181      <xs:element name="acquired_at" type="drdContext" minOccurs="0"/>
182      <xs:element name="what" type="xs:string"/>
183      <xs:element name="stack" type="vgStack"/>
184      <xs:element name="auxwhat" type="xs:string" minOccurs="0"/>
185      <xs:element name="allocation_context" type="drdContext" minOccurs="0"/>
186      <xs:element name="confl_wait_call" type="drdContext"
187		  minOccurs="0"/>
188      <xs:element name="first_observed_at" type="drdContext"
189		  minOccurs="0" maxOccurs="3"/>
190      <xs:element name="xauxwhat" minOccurs="0">
191	<xs:complexType>
192	  <xs:sequence>
193	    <xs:element name="text" type="xs:string"/>
194	    <xs:element name="file" type="xs:string"/>
195	    <xs:element name="line" type="xs:integer"/>
196	  </xs:sequence>
197	</xs:complexType>
198      </xs:element>
199      <xs:element name="other_segment_start" minOccurs="0">
200	<xs:complexType>
201	  <xs:sequence>
202	    <xs:element name="stack" type="vgStack" minOccurs="0"/>
203	  </xs:sequence>
204	</xs:complexType>
205      </xs:element>
206      <xs:element name="other_segment_end" minOccurs="0">
207	<xs:complexType>
208	  <xs:sequence>
209	    <xs:element name="stack" type="vgStack" minOccurs="0"/>
210	  </xs:sequence>
211	</xs:complexType>
212      </xs:element>
213      <xs:element name="suppression" type="drdSuppression" minOccurs="0"/>
214    </xs:sequence>
215  </xs:complexType>
216
217  <xs:element name="valgrindoutput">
218    <xs:complexType>
219      <xs:choice maxOccurs="unbounded">
220	<xs:element name="protocolversion" type="xs:string"/>
221	<xs:element name="protocoltool" type="xs:string"/>
222	<xs:element name="preamble" type="vgPreamble"/>
223	<xs:element name="pid" type="xs:string"/>
224	<xs:element name="ppid" type="xs:string"/>
225	<xs:element name="tool" type="xs:string"/>
226	<xs:element name="logfilequalifier" type="vgLogfileQual" minOccurs="0"/>
227	<xs:element name="usercomment" type="vgUserComment" minOccurs="0"/>
228	<xs:element name="args" type="vgArgs"/>
229	<xs:element name="trace" type="drdTrace"/>
230	<xs:element name="error" type="drdError"
231		    minOccurs="0" maxOccurs="unbounded"/>
232	<xs:element name="status" type="vgSchedulerStatus"/>
233	<xs:element name="errorcounts" type="vgErrorCount"/>
234	<xs:element name="suppcounts" type="vgSuppCount" minOccurs="0"/>
235      </xs:choice>
236    </xs:complexType>
237  </xs:element>
238</xs:schema>
239