1bf215546Sopenharmony_ci<?xml version="1.0"?>
2bf215546Sopenharmony_ci
3bf215546Sopenharmony_ci<!--
4bf215546Sopenharmony_ci
5bf215546Sopenharmony_ciCopyright 2008 VMware, Inc.
6bf215546Sopenharmony_ciAll Rights Reserved.
7bf215546Sopenharmony_ci
8bf215546Sopenharmony_ciPermission is hereby granted, free of charge, to any person obtaining a
9bf215546Sopenharmony_cicopy of this software and associated documentation files (the
10bf215546Sopenharmony_ci"Software"), to deal in the Software without restriction, including
11bf215546Sopenharmony_ciwithout limitation the rights to use, copy, modify, merge, publish,
12bf215546Sopenharmony_cidistribute, sub license, and/or sell copies of the Software, and to
13bf215546Sopenharmony_cipermit persons to whom the Software is furnished to do so, subject to
14bf215546Sopenharmony_cithe following conditions:
15bf215546Sopenharmony_ci
16bf215546Sopenharmony_ciThe above copyright notice and this permission notice (including the
17bf215546Sopenharmony_cinext paragraph) shall be included in all copies or substantial portions
18bf215546Sopenharmony_ciof the Software.
19bf215546Sopenharmony_ci
20bf215546Sopenharmony_ciTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21bf215546Sopenharmony_ciOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
22bf215546Sopenharmony_ciMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
23bf215546Sopenharmony_ciIN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
24bf215546Sopenharmony_ciANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
25bf215546Sopenharmony_ciTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
26bf215546Sopenharmony_ciSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27bf215546Sopenharmony_ci
28bf215546Sopenharmony_ci!-->
29bf215546Sopenharmony_ci
30bf215546Sopenharmony_ci<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
31bf215546Sopenharmony_ci
32bf215546Sopenharmony_ci	<xsl:output method="html" />
33bf215546Sopenharmony_ci
34bf215546Sopenharmony_ci	<xsl:strip-space elements="*" />
35bf215546Sopenharmony_ci
36bf215546Sopenharmony_ci	<xsl:template match="/trace">
37bf215546Sopenharmony_ci		<html>
38bf215546Sopenharmony_ci			<head>
39bf215546Sopenharmony_ci				<title>Gallium Trace</title>
40bf215546Sopenharmony_ci			</head>
41bf215546Sopenharmony_ci			<style>
42bf215546Sopenharmony_ci				body {
43bf215546Sopenharmony_ci					font-family: verdana, sans-serif;
44bf215546Sopenharmony_ci					font-size: 11px;
45bf215546Sopenharmony_ci					font-weight: normal;
46bf215546Sopenharmony_ci					text-align : left;
47bf215546Sopenharmony_ci				}
48bf215546Sopenharmony_ci
49bf215546Sopenharmony_ci				.fun {
50bf215546Sopenharmony_ci					font-weight: bold;
51bf215546Sopenharmony_ci				}
52bf215546Sopenharmony_ci
53bf215546Sopenharmony_ci				.var {
54bf215546Sopenharmony_ci					font-style: italic;
55bf215546Sopenharmony_ci				}
56bf215546Sopenharmony_ci
57bf215546Sopenharmony_ci				.typ {
58bf215546Sopenharmony_ci					display: none;
59bf215546Sopenharmony_ci				}
60bf215546Sopenharmony_ci
61bf215546Sopenharmony_ci				.lit {
62bf215546Sopenharmony_ci					color: #0000ff;
63bf215546Sopenharmony_ci				}
64bf215546Sopenharmony_ci
65bf215546Sopenharmony_ci				.ptr {
66bf215546Sopenharmony_ci					color: #008000;
67bf215546Sopenharmony_ci				}
68bf215546Sopenharmony_ci			</style>
69bf215546Sopenharmony_ci			<body>
70bf215546Sopenharmony_ci				<ol class="calls">
71bf215546Sopenharmony_ci					<xsl:apply-templates/>
72bf215546Sopenharmony_ci				</ol>
73bf215546Sopenharmony_ci			</body>
74bf215546Sopenharmony_ci		</html>
75bf215546Sopenharmony_ci	</xsl:template>
76bf215546Sopenharmony_ci
77bf215546Sopenharmony_ci	<xsl:template match="call">
78bf215546Sopenharmony_ci		<li>
79bf215546Sopenharmony_ci			<xsl:attribute name="value">
80bf215546Sopenharmony_ci				<xsl:apply-templates select="@no"/>
81bf215546Sopenharmony_ci			</xsl:attribute>
82bf215546Sopenharmony_ci			<span class="fun">
83bf215546Sopenharmony_ci				<xsl:value-of select="@class"/>
84bf215546Sopenharmony_ci				<xsl:text>::</xsl:text>
85bf215546Sopenharmony_ci				<xsl:value-of select="@method"/>
86bf215546Sopenharmony_ci			</span>
87bf215546Sopenharmony_ci			<xsl:text>(</xsl:text>
88bf215546Sopenharmony_ci			<xsl:apply-templates select="arg"/>
89bf215546Sopenharmony_ci			<xsl:text>)</xsl:text>
90bf215546Sopenharmony_ci			<xsl:apply-templates select="ret"/>
91bf215546Sopenharmony_ci		</li>
92bf215546Sopenharmony_ci	</xsl:template>
93bf215546Sopenharmony_ci
94bf215546Sopenharmony_ci	<xsl:template match="arg|member">
95bf215546Sopenharmony_ci			<xsl:apply-templates select="@name"/>
96bf215546Sopenharmony_ci			<xsl:text> = </xsl:text>
97bf215546Sopenharmony_ci			<xsl:apply-templates />
98bf215546Sopenharmony_ci			<xsl:if test="position() != last()">
99bf215546Sopenharmony_ci				<xsl:text>, </xsl:text>
100bf215546Sopenharmony_ci			</xsl:if>
101bf215546Sopenharmony_ci	</xsl:template>
102bf215546Sopenharmony_ci
103bf215546Sopenharmony_ci	<xsl:template match="ret">
104bf215546Sopenharmony_ci		<xsl:text> = </xsl:text>
105bf215546Sopenharmony_ci		<xsl:apply-templates />
106bf215546Sopenharmony_ci	</xsl:template>
107bf215546Sopenharmony_ci
108bf215546Sopenharmony_ci	<xsl:template match="bool|int|uint|float|enum">
109bf215546Sopenharmony_ci		<span class="lit">
110bf215546Sopenharmony_ci			<xsl:value-of select="text()"/>
111bf215546Sopenharmony_ci		</span>
112bf215546Sopenharmony_ci	</xsl:template>
113bf215546Sopenharmony_ci
114bf215546Sopenharmony_ci	<xsl:template match="bytes">
115bf215546Sopenharmony_ci		<span class="lit">
116bf215546Sopenharmony_ci			<xsl:text>...</xsl:text>
117bf215546Sopenharmony_ci		</span>
118bf215546Sopenharmony_ci	</xsl:template>
119bf215546Sopenharmony_ci
120bf215546Sopenharmony_ci	<xsl:template match="string">
121bf215546Sopenharmony_ci		<span class="lit">
122bf215546Sopenharmony_ci			<xsl:text>"</xsl:text>
123bf215546Sopenharmony_ci			<xsl:call-template name="break">
124bf215546Sopenharmony_ci				<xsl:with-param name="text" select="text()"/>
125bf215546Sopenharmony_ci			</xsl:call-template>
126bf215546Sopenharmony_ci			<xsl:text>"</xsl:text>
127bf215546Sopenharmony_ci		</span>
128bf215546Sopenharmony_ci	</xsl:template>
129bf215546Sopenharmony_ci
130bf215546Sopenharmony_ci	<xsl:template match="array|struct">
131bf215546Sopenharmony_ci		<xsl:text>{</xsl:text>
132bf215546Sopenharmony_ci		<xsl:apply-templates />
133bf215546Sopenharmony_ci		<xsl:text>}</xsl:text>
134bf215546Sopenharmony_ci	</xsl:template>
135bf215546Sopenharmony_ci
136bf215546Sopenharmony_ci	<xsl:template match="elem">
137bf215546Sopenharmony_ci		<xsl:apply-templates />
138bf215546Sopenharmony_ci		<xsl:if test="position() != last()">
139bf215546Sopenharmony_ci			<xsl:text>, </xsl:text>
140bf215546Sopenharmony_ci		</xsl:if>
141bf215546Sopenharmony_ci	</xsl:template>
142bf215546Sopenharmony_ci
143bf215546Sopenharmony_ci	<xsl:template match="null">
144bf215546Sopenharmony_ci		<span class="ptr">
145bf215546Sopenharmony_ci			<xsl:text>NULL</xsl:text>
146bf215546Sopenharmony_ci		</span>
147bf215546Sopenharmony_ci	</xsl:template>
148bf215546Sopenharmony_ci
149bf215546Sopenharmony_ci	<xsl:template match="ptr">
150bf215546Sopenharmony_ci		<span class="ptr">
151bf215546Sopenharmony_ci			<xsl:value-of select="text()"/>
152bf215546Sopenharmony_ci		</span>
153bf215546Sopenharmony_ci	</xsl:template>
154bf215546Sopenharmony_ci
155bf215546Sopenharmony_ci	<xsl:template match="@name">
156bf215546Sopenharmony_ci		<span class="var">
157bf215546Sopenharmony_ci			<xsl:value-of select="."/>
158bf215546Sopenharmony_ci		</span>
159bf215546Sopenharmony_ci	</xsl:template>
160bf215546Sopenharmony_ci	
161bf215546Sopenharmony_ci	<xsl:template name="break">
162bf215546Sopenharmony_ci		<xsl:param name="text" select="."/>
163bf215546Sopenharmony_ci		<xsl:choose>
164bf215546Sopenharmony_ci			<xsl:when test="contains($text, '&#xa;')">
165bf215546Sopenharmony_ci				<xsl:value-of select="substring-before($text, '&#xa;')"/>
166bf215546Sopenharmony_ci				<br/>
167bf215546Sopenharmony_ci				<xsl:call-template name="break">
168bf215546Sopenharmony_ci					 <xsl:with-param name="text" select="substring-after($text, '&#xa;')"/>
169bf215546Sopenharmony_ci				</xsl:call-template>
170bf215546Sopenharmony_ci			</xsl:when>
171bf215546Sopenharmony_ci			<xsl:otherwise>
172bf215546Sopenharmony_ci				<xsl:value-of select="$text"/>
173bf215546Sopenharmony_ci			</xsl:otherwise>
174bf215546Sopenharmony_ci		</xsl:choose>
175bf215546Sopenharmony_ci	</xsl:template>
176bf215546Sopenharmony_ci
177bf215546Sopenharmony_ci	<xsl:template name="replace">
178bf215546Sopenharmony_ci		<xsl:param name="text"/>
179bf215546Sopenharmony_ci		<xsl:param name="from"/>
180bf215546Sopenharmony_ci		<xsl:param name="to"/>
181bf215546Sopenharmony_ci		<xsl:choose>
182bf215546Sopenharmony_ci			<xsl:when test="contains($text,$from)">
183bf215546Sopenharmony_ci				<xsl:value-of select="concat(substring-before($text,$from),$to)"/>
184bf215546Sopenharmony_ci				<xsl:call-template name="replace">
185bf215546Sopenharmony_ci					<xsl:with-param name="text" select="substring-after($text,$from)"/>
186bf215546Sopenharmony_ci					<xsl:with-param name="from" select="$from"/>
187bf215546Sopenharmony_ci					<xsl:with-param name="to" select="$to"/>
188bf215546Sopenharmony_ci				</xsl:call-template>
189bf215546Sopenharmony_ci			</xsl:when>
190bf215546Sopenharmony_ci			<xsl:otherwise>
191bf215546Sopenharmony_ci				<xsl:value-of select="$text"/>
192bf215546Sopenharmony_ci			</xsl:otherwise>
193bf215546Sopenharmony_ci		</xsl:choose>
194bf215546Sopenharmony_ci	</xsl:template>
195bf215546Sopenharmony_ci
196bf215546Sopenharmony_ci</xsl:transform>
197