| <?xml version="1.0" encoding="utf-8"?> |
| <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> |
| <!-- Header printed by Valgrind tool as multiple lines of text --> |
| <xs:complexType name="vgPreamble"> |
| <xs:sequence> |
| <xs:element name="line" type="xs:string" |
| minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- Name and value of an environment variable used in XML output file name via %q{...} --> |
| <xs:complexType name="vgLogfileQual"> |
| <xs:sequence> |
| <xs:element name="var" type="xs:string"/> |
| <xs:element name="value" type="xs:string"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- User comment specified via xml-user-comment=... --> |
| <xs:complexType name="vgUserComment"> |
| <xs:sequence> |
| <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- Executable path and arguments --> |
| <xs:complexType name="vgExeAndArgs"> |
| <xs:sequence> |
| <xs:element name="exe" type="xs:string"/> |
| <xs:element name="arg" type="xs:string" |
| minOccurs="0" maxOccurs="unbounded"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- Valgrind tool and client executable path and arguments --> |
| <xs:complexType name="vgArgs"> |
| <xs:sequence> |
| <xs:element name="vargv" type="vgExeAndArgs"/> |
| <xs:element name="argv" type="vgExeAndArgs"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:simpleType name="vgSchedState"> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="RUNNING"/> |
| <xs:enumeration value="FINISHED"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| <!-- Valgrind scheduler state and time at which a state has been reached --> |
| <xs:complexType name="vgSchedulerStatus"> |
| <xs:sequence> |
| <xs:element name="state" type="vgSchedState"/> |
| <xs:element name="time" type="xs:string"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="vgSupprFrame"> |
| <xs:choice> |
| <xs:element name="fun" type="xs:string"/> |
| <xs:element name="obj" type="xs:string"/> |
| </xs:choice> |
| </xs:complexType> |
| |
| <!-- Client call stack --> |
| <xs:complexType name="vgStack"> |
| <xs:sequence> |
| <xs:element name="frame" minOccurs="0" maxOccurs="unbounded"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="ip" type="xs:string"/> |
| <xs:element name="obj" type="xs:string" minOccurs="0"/> |
| <xs:element name="fn" type="xs:string" minOccurs="0"/> |
| <xs:element name="dir" type="xs:string" minOccurs="0"/> |
| <xs:element name="file" type="xs:string" minOccurs="0"/> |
| <xs:element name="line" type="xs:string" minOccurs="0"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="vgErrorCount"> |
| <xs:sequence> |
| <xs:element name="pair" minOccurs="0" maxOccurs="unbounded"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="count" type="xs:integer"/> |
| <xs:element name="unique" type="xs:string"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="vgSuppCount"> |
| <xs:sequence> |
| <xs:element name="pair" minOccurs="0" maxOccurs="unbounded"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="count" type="xs:integer"/> |
| <xs:element name="name" type="xs:string"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:simpleType name="drdErrorKind"> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="ConflictingAccess"/> |
| <xs:enumeration value="MutexErr"/> |
| <xs:enumeration value="CondErr"/> |
| <xs:enumeration value="CondDestrErr"/> |
| <xs:enumeration value="CondRaceErr"/> |
| <xs:enumeration value="CondWaitErr"/> |
| <xs:enumeration value="SemaphoreErr"/> |
| <xs:enumeration value="BarrierErr"/> |
| <xs:enumeration value="RwlockErr"/> |
| <xs:enumeration value="HoldtimeErr"/> |
| <xs:enumeration value="GenericErr"/> |
| <xs:enumeration value="InvalidThreadId"/> |
| <xs:enumeration value="UnimpHgClReq"/> |
| <xs:enumeration value="UnimpDrdClReq"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| <!-- Same as drdErrorKind but with the "drd:" prefix --> |
| <xs:simpleType name="drdSuppressionKind"> |
| <xs:restriction base="xs:string"> |
| <xs:enumeration value="drd:ConflictingAccess"/> |
| <xs:enumeration value="drd:MutexErr"/> |
| <xs:enumeration value="drd:CondErr"/> |
| <xs:enumeration value="drd:CondDestrErr"/> |
| <xs:enumeration value="drd:CondRaceErr"/> |
| <xs:enumeration value="drd:CondWaitErr"/> |
| <xs:enumeration value="drd:SemaphoreErr"/> |
| <xs:enumeration value="drd:BarrierErr"/> |
| <xs:enumeration value="drd:RwlockErr"/> |
| <xs:enumeration value="drd:HoldtimeErr"/> |
| <xs:enumeration value="drd:GenericErr"/> |
| <xs:enumeration value="drd:InvalidThreadId"/> |
| <xs:enumeration value="drd:UnimpHgClReq"/> |
| <xs:enumeration value="drd:UnimpDrdClReq"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| <!-- Single line of trace information with an optional call stack --> |
| <xs:complexType name="drdTrace"> |
| <xs:sequence> |
| <xs:element name="text" type="xs:string"/> |
| <xs:element name="stack" type="vgStack" minOccurs="0"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <!-- Context information about a DRD error --> |
| <xs:complexType name="drdContext"> |
| <xs:sequence> |
| <xs:element name="what" type="xs:string" minOccurs="0"/> |
| <xs:element name="address" type="xs:string" minOccurs="0"/> |
| <xs:element name="stack" type="vgStack"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="drdSuppression"> |
| <xs:sequence> |
| <xs:element name="sname" type="xs:string"/> |
| <xs:element name="skind" type="drdSuppressionKind"/> |
| <xs:element name="skaux" type="xs:string" minOccurs="0"/> |
| <xs:element name="sframe" type="vgSupprFrame" |
| minOccurs="0" maxOccurs="unbounded"/> |
| <xs:element name="rawtext" type="xs:string"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:complexType name="drdError"> |
| <xs:sequence> |
| <xs:element name="unique" type="xs:string"/> |
| <xs:element name="tid" type="xs:integer"/> |
| <xs:element name="kind" type="drdErrorKind"/> |
| <xs:element name="acquired_at" type="drdContext" minOccurs="0"/> |
| <xs:element name="what" type="xs:string"/> |
| <xs:element name="stack" type="vgStack"/> |
| <xs:element name="auxwhat" type="xs:string" minOccurs="0"/> |
| <xs:element name="allocation_context" type="drdContext" minOccurs="0"/> |
| <xs:element name="confl_wait_call" type="drdContext" |
| minOccurs="0"/> |
| <xs:element name="first_observed_at" type="drdContext" |
| minOccurs="0" maxOccurs="3"/> |
| <xs:element name="xauxwhat" minOccurs="0"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="text" type="xs:string"/> |
| <xs:element name="file" type="xs:string"/> |
| <xs:element name="line" type="xs:integer"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="other_segment_start" minOccurs="0"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="stack" type="vgStack" minOccurs="0"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="other_segment_end" minOccurs="0"> |
| <xs:complexType> |
| <xs:sequence> |
| <xs:element name="stack" type="vgStack" minOccurs="0"/> |
| </xs:sequence> |
| </xs:complexType> |
| </xs:element> |
| <xs:element name="suppression" type="drdSuppression" minOccurs="0"/> |
| </xs:sequence> |
| </xs:complexType> |
| |
| <xs:element name="valgrindoutput"> |
| <xs:complexType> |
| <xs:choice maxOccurs="unbounded"> |
| <xs:element name="protocolversion" type="xs:string"/> |
| <xs:element name="protocoltool" type="xs:string"/> |
| <xs:element name="preamble" type="vgPreamble"/> |
| <xs:element name="pid" type="xs:string"/> |
| <xs:element name="ppid" type="xs:string"/> |
| <xs:element name="tool" type="xs:string"/> |
| <xs:element name="logfilequalifier" type="vgLogfileQual" minOccurs="0"/> |
| <xs:element name="usercomment" type="vgUserComment" minOccurs="0"/> |
| <xs:element name="args" type="vgArgs"/> |
| <xs:element name="trace" type="drdTrace"/> |
| <xs:element name="error" type="drdError" |
| minOccurs="0" maxOccurs="unbounded"/> |
| <xs:element name="status" type="vgSchedulerStatus"/> |
| <xs:element name="errorcounts" type="vgErrorCount"/> |
| <xs:element name="suppcounts" type="vgSuppCount" minOccurs="0"/> |
| </xs:choice> |
| </xs:complexType> |
| </xs:element> |
| </xs:schema> |