Home | History | Annotate | Download | only in docs
      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