src/share/vm/prims/jvmtiLib.xsl

Tue, 08 Aug 2017 15:57:29 +0800

author
aoqi
date
Tue, 08 Aug 2017 15:57:29 +0800
changeset 6876
710a3c8b516e
parent 4037
da91efe96a93
parent 0
f90c822e73f8
permissions
-rw-r--r--

merge

aoqi@0 1 <?xml version="1.0" encoding="utf-8"?>
aoqi@0 2 <!--
aoqi@0 3
aoqi@0 4 Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
aoqi@0 5 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
aoqi@0 6
aoqi@0 7 This code is free software; you can redistribute it and/or modify it
aoqi@0 8 under the terms of the GNU General Public License version 2 only, as
aoqi@0 9 published by the Free Software Foundation.
aoqi@0 10
aoqi@0 11 This code is distributed in the hope that it will be useful, but WITHOUT
aoqi@0 12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
aoqi@0 13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
aoqi@0 14 version 2 for more details (a copy is included in the LICENSE file that
aoqi@0 15 accompanied this code).
aoqi@0 16
aoqi@0 17 You should have received a copy of the GNU General Public License version
aoqi@0 18 2 along with this work; if not, write to the Free Software Foundation,
aoqi@0 19 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
aoqi@0 20
aoqi@0 21 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
aoqi@0 22 or visit www.oracle.com if you need additional information or have any
aoqi@0 23 questions.
aoqi@0 24
aoqi@0 25 -->
aoqi@0 26
aoqi@0 27 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
aoqi@0 28 version="1.0">
aoqi@0 29
aoqi@0 30 <xsl:template name="microversion">
aoqi@0 31 <xsl:value-of select="//specification/@microversion"/>
aoqi@0 32 </xsl:template>
aoqi@0 33
aoqi@0 34 <xsl:template name="showbasicversion">
aoqi@0 35 <xsl:value-of select="//specification/@majorversion"/>
aoqi@0 36 <xsl:text>.</xsl:text>
aoqi@0 37 <xsl:value-of select="//specification/@minorversion"/>
aoqi@0 38 </xsl:template>
aoqi@0 39
aoqi@0 40 <xsl:template name="showversion">
aoqi@0 41 <xsl:call-template name="showbasicversion"/>
aoqi@0 42 <xsl:text>.</xsl:text>
aoqi@0 43 <xsl:call-template name="microversion"/>
aoqi@0 44 </xsl:template>
aoqi@0 45
aoqi@0 46 <xsl:template name="copyrightComment">
aoqi@0 47 <xsl:text>/* </xsl:text>
aoqi@0 48 <!-- Copy the Copyright comment from jvmti.xml -->
aoqi@0 49 <xsl:value-of select="/comment()[position()=1]"/>
aoqi@0 50 <xsl:text> */ &#xA;&#xA;</xsl:text>
aoqi@0 51 </xsl:template>
aoqi@0 52
aoqi@0 53 <xsl:template name="includeHeader">
aoqi@0 54 <xsl:call-template name="copyrightComment"/>
aoqi@0 55 <xsl:text> /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */ &#xA;</xsl:text>
aoqi@0 56 </xsl:template>
aoqi@0 57
aoqi@0 58 <xsl:template name="sourceHeader">
aoqi@0 59 <xsl:call-template name="copyrightComment"/>
aoqi@0 60 <xsl:text> // AUTOMATICALLY GENERATED FILE - DO NOT EDIT &#xA;</xsl:text>
aoqi@0 61 </xsl:template>
aoqi@0 62
aoqi@0 63
aoqi@0 64 <xsl:template match="parameters" mode="signature">
aoqi@0 65 <xsl:param name="comma">
aoqi@0 66 <xsl:text>,
aoqi@0 67 </xsl:text>
aoqi@0 68 </xsl:param>
aoqi@0 69 <xsl:if test="count(param) != 0">
aoqi@0 70 <xsl:value-of select="$comma"/>
aoqi@0 71 </xsl:if>
aoqi@0 72 <xsl:apply-templates select="." mode="signaturenoleadcomma">
aoqi@0 73 <xsl:with-param name="comma" select="$comma"/>
aoqi@0 74 </xsl:apply-templates>
aoqi@0 75 </xsl:template>
aoqi@0 76
aoqi@0 77
aoqi@0 78 <xsl:template match="parameters" mode="signaturenoleadcomma">
aoqi@0 79 <xsl:param name="comma">
aoqi@0 80 <xsl:text>,
aoqi@0 81 </xsl:text>
aoqi@0 82 </xsl:param>
aoqi@0 83 <xsl:variable name="length" select="count(param)"/>
aoqi@0 84 <xsl:for-each select="param">
aoqi@0 85 <xsl:variable name="separator">
aoqi@0 86 <xsl:choose>
aoqi@0 87 <xsl:when test="position()=$length">
aoqi@0 88 <xsl:text></xsl:text>
aoqi@0 89 </xsl:when>
aoqi@0 90 <xsl:otherwise>
aoqi@0 91 <xsl:value-of select="$comma"/>
aoqi@0 92 </xsl:otherwise>
aoqi@0 93 </xsl:choose>
aoqi@0 94 </xsl:variable>
aoqi@0 95 <xsl:apply-templates select="." mode="signature">
aoqi@0 96 <xsl:with-param name="comma" select="$separator"/>
aoqi@0 97 </xsl:apply-templates>
aoqi@0 98 </xsl:for-each>
aoqi@0 99 </xsl:template>
aoqi@0 100
aoqi@0 101
aoqi@0 102 <!-- remove jclass parameters that are jclass/jmethodID pairs.
aoqi@0 103 since the jclass was removed in JVMTI.
aoqi@0 104 -->
aoqi@0 105 <xsl:template match="param" mode="signature">
aoqi@0 106 <xsl:param name="comma"/>
aoqi@0 107 <xsl:variable name="id" select="@id"/>
aoqi@0 108 <xsl:for-each select="child::*[position()=1]">
aoqi@0 109 <xsl:if test="count(@method)=0">
aoqi@0 110 <xsl:apply-templates select="." mode="signature"/>
aoqi@0 111 <xsl:text> </xsl:text>
aoqi@0 112 <xsl:value-of select="$id"/>
aoqi@0 113 <xsl:value-of select="$comma"/>
aoqi@0 114 </xsl:if>
aoqi@0 115 </xsl:for-each>
aoqi@0 116 </xsl:template>
aoqi@0 117
aoqi@0 118
aoqi@0 119 <xsl:template match="field" mode="signature">
aoqi@0 120 <xsl:text> </xsl:text>
aoqi@0 121 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 122 <xsl:text> </xsl:text>
aoqi@0 123 <xsl:value-of select="@id"/>
aoqi@0 124 <xsl:text>;
aoqi@0 125 </xsl:text>
aoqi@0 126 </xsl:template>
aoqi@0 127
aoqi@0 128 <xsl:template match="nullok" mode="funcdescription">
aoqi@0 129 If
aoqi@0 130 <code>
aoqi@0 131 <xsl:value-of select="../../@id"/>
aoqi@0 132 </code>
aoqi@0 133 is
aoqi@0 134 <code>NULL</code>, <xsl:apply-templates/>.
aoqi@0 135 </xsl:template>
aoqi@0 136
aoqi@0 137 <xsl:template match="vmbuf|allocfieldbuf|struct" mode="funcdescription">
aoqi@0 138 <xsl:message terminate="yes">
aoqi@0 139 vmbuf|allocfieldbuf|struct as type of function parameter
aoqi@0 140 </xsl:message>
aoqi@0 141 </xsl:template>
aoqi@0 142
aoqi@0 143 <xsl:template match="ptrtype" mode="funcdescription">
aoqi@0 144 <p/>
aoqi@0 145 <xsl:apply-templates select="nullok" mode="funcdescription"/>
aoqi@0 146 </xsl:template>
aoqi@0 147
aoqi@0 148 <xsl:template match="inptr" mode="funcdescription">
aoqi@0 149 <p/>
aoqi@0 150 <xsl:variable name="child" select="child::*[position()=1]"/>
aoqi@0 151 <xsl:text>Agent passes in a pointer</xsl:text>
aoqi@0 152 <xsl:if test="name($child)!='void'">
aoqi@0 153 <xsl:text> to </xsl:text>
aoqi@0 154 <code>
aoqi@0 155 <xsl:apply-templates select="$child" mode="signature"/>
aoqi@0 156 </code>
aoqi@0 157 </xsl:if>
aoqi@0 158 <xsl:text>. </xsl:text>
aoqi@0 159 <xsl:apply-templates select="nullok" mode="funcdescription"/>
aoqi@0 160 </xsl:template>
aoqi@0 161
aoqi@0 162 <xsl:template match="inbuf" mode="funcdescription">
aoqi@0 163 <p/>
aoqi@0 164 <xsl:variable name="child" select="child::*[position()=1]"/>
aoqi@0 165 <xsl:text>Agent passes in </xsl:text>
aoqi@0 166 <xsl:choose>
aoqi@0 167 <xsl:when test="name($child)='void'">
aoqi@0 168 <xsl:text> a pointer</xsl:text>
aoqi@0 169 </xsl:when>
aoqi@0 170 <xsl:otherwise>
aoqi@0 171 <xsl:text> an array of </xsl:text>
aoqi@0 172 <xsl:if test="count(@incount)=1 and @incount!=''">
aoqi@0 173 <code>
aoqi@0 174 <xsl:value-of select="@incount"/>
aoqi@0 175 </code>
aoqi@0 176 <xsl:text> elements of </xsl:text>
aoqi@0 177 </xsl:if>
aoqi@0 178 <code>
aoqi@0 179 <xsl:apply-templates select="$child" mode="signature"/>
aoqi@0 180 </code>
aoqi@0 181 </xsl:otherwise>
aoqi@0 182 </xsl:choose>
aoqi@0 183 <xsl:text>. </xsl:text>
aoqi@0 184 <xsl:apply-templates select="nullok" mode="funcdescription"/>
aoqi@0 185 </xsl:template>
aoqi@0 186
aoqi@0 187 <xsl:template match="outptr" mode="funcdescription">
aoqi@0 188 <p/>
aoqi@0 189 <xsl:text>Agent passes a pointer to a </xsl:text>
aoqi@0 190 <code>
aoqi@0 191 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 192 </code>
aoqi@0 193 <xsl:text>. </xsl:text>
aoqi@0 194 <xsl:text>On return, the </xsl:text>
aoqi@0 195 <code>
aoqi@0 196 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 197 </code>
aoqi@0 198 <xsl:text> has been set. </xsl:text>
aoqi@0 199 <xsl:apply-templates select="nullok" mode="funcdescription"/>
aoqi@0 200 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription"/>
aoqi@0 201 </xsl:template>
aoqi@0 202
aoqi@0 203 <xsl:template match="allocbuf" mode="funcdescription">
aoqi@0 204 <p/>
aoqi@0 205 <xsl:text>Agent passes a pointer to a </xsl:text>
aoqi@0 206 <code>
aoqi@0 207 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 208 <xsl:text>*</xsl:text>
aoqi@0 209 </code>
aoqi@0 210 <xsl:text>. </xsl:text>
aoqi@0 211 <xsl:text>On return, the </xsl:text>
aoqi@0 212 <code>
aoqi@0 213 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 214 <xsl:text>*</xsl:text>
aoqi@0 215 </code>
aoqi@0 216 <xsl:text> points to a newly allocated array</xsl:text>
aoqi@0 217 <xsl:choose>
aoqi@0 218 <xsl:when test="count(@outcount)=1 and @outcount!=''">
aoqi@0 219 <xsl:text> of size </xsl:text>
aoqi@0 220 <code>
aoqi@0 221 <xsl:text>*</xsl:text>
aoqi@0 222 <xsl:value-of select="@outcount"/>
aoqi@0 223 </code>
aoqi@0 224 </xsl:when>
aoqi@0 225 <xsl:otherwise>
aoqi@0 226 <xsl:if test="count(@incount)=1 and @incount!=''">
aoqi@0 227 <xsl:text> of size </xsl:text>
aoqi@0 228 <code>
aoqi@0 229 <xsl:value-of select="@incount"/>
aoqi@0 230 </code>
aoqi@0 231 </xsl:if>
aoqi@0 232 </xsl:otherwise>
aoqi@0 233 </xsl:choose>
aoqi@0 234 <xsl:text>. The array should be freed with </xsl:text>
aoqi@0 235 <a href="#Deallocate"><code>Deallocate</code></a>
aoqi@0 236 <xsl:text>. </xsl:text>
aoqi@0 237 <xsl:apply-templates select="nullok" mode="funcdescription"/>
aoqi@0 238 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription">
aoqi@0 239 <xsl:with-param name="plural" select="'plural'"/>
aoqi@0 240 </xsl:apply-templates>
aoqi@0 241 </xsl:template>
aoqi@0 242
aoqi@0 243 <xsl:template match="allocallocbuf" mode="funcdescription">
aoqi@0 244 <p/>
aoqi@0 245 <xsl:text>Agent passes a pointer to a </xsl:text>
aoqi@0 246 <code>
aoqi@0 247 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 248 <xsl:text>**</xsl:text>
aoqi@0 249 </code>
aoqi@0 250 <xsl:text>. </xsl:text>
aoqi@0 251 <xsl:text>On return, the </xsl:text>
aoqi@0 252 <code>
aoqi@0 253 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 254 <xsl:text>**</xsl:text>
aoqi@0 255 </code>
aoqi@0 256 <xsl:text> points to a newly allocated array</xsl:text>
aoqi@0 257 <xsl:choose>
aoqi@0 258 <xsl:when test="count(@outcount)=1 and @outcount!=''">
aoqi@0 259 <xsl:text> of size </xsl:text>
aoqi@0 260 <code>
aoqi@0 261 <xsl:text>*</xsl:text>
aoqi@0 262 <xsl:value-of select="@outcount"/>
aoqi@0 263 </code>
aoqi@0 264 </xsl:when>
aoqi@0 265 <xsl:otherwise>
aoqi@0 266 <xsl:if test="count(@incount)=1 and @incount!=''">
aoqi@0 267 <xsl:text> of size </xsl:text>
aoqi@0 268 <code>
aoqi@0 269 <xsl:value-of select="@incount"/>
aoqi@0 270 </code>
aoqi@0 271 </xsl:if>
aoqi@0 272 </xsl:otherwise>
aoqi@0 273 </xsl:choose>
aoqi@0 274 <xsl:text>, each element of which is also newly allocated.
aoqi@0 275 The array should be freed with </xsl:text>
aoqi@0 276 <a href="#Deallocate"><code>Deallocate</code></a>
aoqi@0 277 <xsl:text>.
aoqi@0 278 Each of the elements should be freed with </xsl:text>
aoqi@0 279 <a href="#Deallocate"><code>Deallocate</code></a>
aoqi@0 280 <xsl:text>. </xsl:text>
aoqi@0 281 <xsl:apply-templates select="nullok" mode="funcdescription"/>
aoqi@0 282 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription">
aoqi@0 283 <xsl:with-param name="plural" select="'plural'"/>
aoqi@0 284 </xsl:apply-templates>
aoqi@0 285 </xsl:template>
aoqi@0 286
aoqi@0 287 <xsl:template match="outbuf" mode="funcdescription">
aoqi@0 288 <p/>
aoqi@0 289 <xsl:text>Agent passes an array </xsl:text>
aoqi@0 290 <xsl:if test="count(@incount)=1 and @incount!=''">
aoqi@0 291 <xsl:text>large enough to hold </xsl:text>
aoqi@0 292 <code>
aoqi@0 293 <xsl:value-of select="@incount"/>
aoqi@0 294 </code>
aoqi@0 295 <xsl:text> elements </xsl:text>
aoqi@0 296 </xsl:if>
aoqi@0 297 <xsl:text>of </xsl:text>
aoqi@0 298 <code>
aoqi@0 299 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 300 </code>
aoqi@0 301 <xsl:text>. The incoming values of the elements of the array are ignored. </xsl:text>
aoqi@0 302 <xsl:text>On return, </xsl:text>
aoqi@0 303 <xsl:if test="count(@outcount)=1 and @outcount!=''">
aoqi@0 304 <code>
aoqi@0 305 <xsl:text>*</xsl:text>
aoqi@0 306 <xsl:value-of select="@outcount"/>
aoqi@0 307 </code>
aoqi@0 308 <xsl:text> of </xsl:text>
aoqi@0 309 </xsl:if>
aoqi@0 310 <xsl:text>the elements are set. </xsl:text>
aoqi@0 311 <xsl:apply-templates select="nullok" mode="funcdescription"/>
aoqi@0 312 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription">
aoqi@0 313 <xsl:with-param name="plural" select="'plural'"/>
aoqi@0 314 </xsl:apply-templates>
aoqi@0 315 </xsl:template>
aoqi@0 316
aoqi@0 317 <xsl:template match="agentbuf" mode="funcdescription">
aoqi@0 318 <p/>
aoqi@0 319 <xsl:apply-templates select="nullok" mode="funcdescription"/>
aoqi@0 320 <xsl:apply-templates select="child::*[position()=1]" mode="returndescription">
aoqi@0 321 <xsl:with-param name="plural" select="'plural'"/>
aoqi@0 322 </xsl:apply-templates>
aoqi@0 323 </xsl:template>
aoqi@0 324
aoqi@0 325 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jclass|jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|varargs|struct" mode="funcdescription">
aoqi@0 326 </xsl:template>
aoqi@0 327
aoqi@0 328 <xsl:template match="jthread" mode="funcdescription">
aoqi@0 329 <xsl:if test="count(@null)!=0">
aoqi@0 330 If
aoqi@0 331 <code>
aoqi@0 332 <xsl:value-of select="../@id"/>
aoqi@0 333 </code>
aoqi@0 334 is
aoqi@0 335 <code>NULL</code>, the current thread is used.
aoqi@0 336 </xsl:if>
aoqi@0 337 </xsl:template>
aoqi@0 338
aoqi@0 339 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|varargs" mode="returndescription">
aoqi@0 340 </xsl:template>
aoqi@0 341
aoqi@0 342 <xsl:template match="struct" mode="returndescription">
aoqi@0 343 <xsl:param name="plural"/>
aoqi@0 344 <xsl:variable name="structname" select="."/>
aoqi@0 345 <xsl:for-each select="//typedef[@id=$structname]|//uniontypedef[@id=$structname]">
aoqi@0 346 <xsl:for-each select="field">
aoqi@0 347 <xsl:apply-templates select="child::*[position()=1]" mode="fieldreturndescription">
aoqi@0 348 <xsl:with-param name="plural" select="$plural"/>
aoqi@0 349 </xsl:apply-templates>
aoqi@0 350 </xsl:for-each>
aoqi@0 351 </xsl:for-each>
aoqi@0 352 </xsl:template>
aoqi@0 353
aoqi@0 354 <xsl:template match="jclass|jthread|jobject|jvalue|jthreadGroup" mode="returndescription">
aoqi@0 355 <xsl:param name="plural"/>
aoqi@0 356 <xsl:text>The object</xsl:text>
aoqi@0 357 <xsl:if test="$plural='plural'">
aoqi@0 358 <xsl:text>s</xsl:text>
aoqi@0 359 </xsl:if>
aoqi@0 360 <xsl:text> returned by </xsl:text>
aoqi@0 361 <code>
aoqi@0 362 <xsl:value-of select="../../@id"/>
aoqi@0 363 </code>
aoqi@0 364 <xsl:choose>
aoqi@0 365 <xsl:when test="$plural='plural'">
aoqi@0 366 <xsl:text> are JNI local references and must be </xsl:text>
aoqi@0 367 </xsl:when>
aoqi@0 368 <xsl:otherwise>
aoqi@0 369 <xsl:text> is a JNI local reference and must be </xsl:text>
aoqi@0 370 </xsl:otherwise>
aoqi@0 371 </xsl:choose>
aoqi@0 372 <a href="#refs">managed</a>.
aoqi@0 373 </xsl:template>
aoqi@0 374
aoqi@0 375 <xsl:template match="outptr|inptr|inbuf|agentbuf|allocbuf|allocallocbuf" mode="fieldreturndescription">
aoqi@0 376 <xsl:variable name="field" select="ancestor::field"/>
aoqi@0 377 <xsl:message terminate="yes">
aoqi@0 378 outptr, allocallocbuf, outbuf, vmbuf, allocbuf, inptr, inbuf or agentbuf as type of returned field:
aoqi@0 379 <xsl:value-of select="$field/@id"/> of <xsl:value-of select="$field/../@id"/>
aoqi@0 380 </xsl:message>
aoqi@0 381 </xsl:template>
aoqi@0 382
aoqi@0 383 <xsl:template match="outbuf" mode="fieldreturndescription">
aoqi@0 384 <!-- hand document this special case.
aoqi@0 385 -->
aoqi@0 386 </xsl:template>
aoqi@0 387
aoqi@0 388 <xsl:template match="struct" mode="fieldreturndescription">
aoqi@0 389 <xsl:param name="plural"/>
aoqi@0 390 <xsl:variable name="structname" select="."/>
aoqi@0 391 <xsl:for-each select="//typedef[@id=$structname]|//uniontypedef[@id=$structname]">
aoqi@0 392 <xsl:for-each select="field">
aoqi@0 393 <xsl:apply-templates select="child::*[position()=1]" mode="fieldreturndescription">
aoqi@0 394 <xsl:with-param name="plural" select="$plural"/>
aoqi@0 395 </xsl:apply-templates>
aoqi@0 396 </xsl:for-each>
aoqi@0 397 </xsl:for-each>
aoqi@0 398 </xsl:template>
aoqi@0 399
aoqi@0 400 <xsl:template match="allocfieldbuf" mode="fieldreturndescription">
aoqi@0 401 <xsl:param name="plural"/>
aoqi@0 402 <xsl:variable name="field" select="ancestor::field"/>
aoqi@0 403 <xsl:text>The pointer</xsl:text>
aoqi@0 404 <xsl:if test="$plural='plural'">
aoqi@0 405 <xsl:text>s</xsl:text>
aoqi@0 406 </xsl:if>
aoqi@0 407 <xsl:text> returned in the field </xsl:text>
aoqi@0 408 <code>
aoqi@0 409 <xsl:value-of select="$field/@id"/>
aoqi@0 410 </code>
aoqi@0 411 <xsl:text> of </xsl:text>
aoqi@0 412 <code>
aoqi@0 413 <xsl:value-of select="$field/../@id"/>
aoqi@0 414 </code>
aoqi@0 415 <xsl:choose>
aoqi@0 416 <xsl:when test="$plural='plural'">
aoqi@0 417 <xsl:text> are newly allocated arrays. The arrays</xsl:text>
aoqi@0 418 </xsl:when>
aoqi@0 419 <xsl:otherwise>
aoqi@0 420 <xsl:text> is a newly allocated array. The array</xsl:text>
aoqi@0 421 </xsl:otherwise>
aoqi@0 422 </xsl:choose>
aoqi@0 423 <xsl:text> should be freed with </xsl:text>
aoqi@0 424 <a href="#Deallocate"><code>Deallocate</code></a>
aoqi@0 425 <xsl:text>. </xsl:text>
aoqi@0 426
aoqi@0 427 <xsl:apply-templates select="child::*[position()=1]" mode="fieldreturndescription">
aoqi@0 428 <xsl:with-param name="plural" select="'plural'"/>
aoqi@0 429 </xsl:apply-templates>
aoqi@0 430 </xsl:template>
aoqi@0 431
aoqi@0 432 <xsl:template match="ptrtype|vmbuf|jmethodID|jfieldID|jframeID|jrawMonitorID|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void" mode="fieldreturndescription">
aoqi@0 433 </xsl:template>
aoqi@0 434
aoqi@0 435 <xsl:template match="jclass|jthread|jobject|jvalue|jthreadGroup" mode="fieldreturndescription">
aoqi@0 436 <xsl:param name="plural"/>
aoqi@0 437 <xsl:variable name="field" select="ancestor::field"/>
aoqi@0 438 <xsl:text>The object</xsl:text>
aoqi@0 439 <xsl:if test="$plural='plural'">
aoqi@0 440 <xsl:text>s</xsl:text>
aoqi@0 441 </xsl:if>
aoqi@0 442 <xsl:text> returned in the field </xsl:text>
aoqi@0 443 <code>
aoqi@0 444 <xsl:value-of select="$field/@id"/>
aoqi@0 445 </code>
aoqi@0 446 <xsl:text> of </xsl:text>
aoqi@0 447 <code>
aoqi@0 448 <xsl:value-of select="$field/../@id"/>
aoqi@0 449 </code>
aoqi@0 450 <xsl:choose>
aoqi@0 451 <xsl:when test="$plural='plural'">
aoqi@0 452 <xsl:text> are JNI local references and must be </xsl:text>
aoqi@0 453 </xsl:when>
aoqi@0 454 <xsl:otherwise>
aoqi@0 455 <xsl:text> is a JNI local reference and must be </xsl:text>
aoqi@0 456 </xsl:otherwise>
aoqi@0 457 </xsl:choose>
aoqi@0 458 <a href="#refs">managed</a>.
aoqi@0 459 </xsl:template>
aoqi@0 460
aoqi@0 461 <xsl:template match="nullok" mode="signature">
aoqi@0 462 </xsl:template>
aoqi@0 463
aoqi@0 464 <xsl:template match="jmethodID|jfieldID|jrawMonitorID|jclass|jthread|jobject|jvalue|jthreadGroup|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|size_t|void" mode="signature">
aoqi@0 465 <xsl:value-of select="name()"/>
aoqi@0 466 </xsl:template>
aoqi@0 467
aoqi@0 468 <xsl:template match="jframeID" mode="signature">
aoqi@0 469 <xsl:text>jint</xsl:text>
aoqi@0 470 </xsl:template>
aoqi@0 471
aoqi@0 472 <xsl:template match="uchar" mode="signature">
aoqi@0 473 <xsl:text>unsigned char</xsl:text>
aoqi@0 474 </xsl:template>
aoqi@0 475
aoqi@0 476 <xsl:template match="enum|struct" mode="signature">
aoqi@0 477 <xsl:value-of select="."/>
aoqi@0 478 </xsl:template>
aoqi@0 479
aoqi@0 480 <xsl:template match="varargs" mode="signature">
aoqi@0 481 </xsl:template>
aoqi@0 482
aoqi@0 483 <xsl:template match="outptr|outbuf|allocfieldbuf" mode="signature">
aoqi@0 484 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 485 <xsl:text>*</xsl:text>
aoqi@0 486 </xsl:template>
aoqi@0 487
aoqi@0 488 <xsl:template match="ptrtype" mode="signature">
aoqi@0 489 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 490 </xsl:template>
aoqi@0 491
aoqi@0 492 <xsl:template match="inptr|inbuf|vmbuf" mode="signature">
aoqi@0 493 <xsl:text>const </xsl:text>
aoqi@0 494 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 495 <xsl:text>*</xsl:text>
aoqi@0 496 </xsl:template>
aoqi@0 497
aoqi@0 498 <xsl:template match="allocbuf|agentbuf" mode="signature">
aoqi@0 499 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 500 <xsl:text>**</xsl:text>
aoqi@0 501 </xsl:template>
aoqi@0 502
aoqi@0 503 <xsl:template match="allocallocbuf" mode="signature">
aoqi@0 504 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
aoqi@0 505 <xsl:text>***</xsl:text>
aoqi@0 506 </xsl:template>
aoqi@0 507
aoqi@0 508 <xsl:template match="nullok" mode="link">
aoqi@0 509 </xsl:template>
aoqi@0 510
aoqi@0 511 <xsl:template match="jmethodID|jfieldID|jrawMonitorID|jclass|jthread|jobject|jvalue|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|jthreadGroup" mode="link">
aoqi@0 512 <a>
aoqi@0 513 <xsl:attribute name="href">
aoqi@0 514 <xsl:text>#</xsl:text><xsl:value-of select="name()"/>
aoqi@0 515 </xsl:attribute>
aoqi@0 516 <xsl:value-of select="name()"/>
aoqi@0 517 </a>
aoqi@0 518 </xsl:template>
aoqi@0 519
aoqi@0 520 <xsl:template match="jframeID" mode="link">
aoqi@0 521 <a>
aoqi@0 522 <xsl:attribute name="href">
aoqi@0 523 <xsl:text>#jint</xsl:text>
aoqi@0 524 </xsl:attribute>
aoqi@0 525 <xsl:text>jint</xsl:text>
aoqi@0 526 </a>
aoqi@0 527 </xsl:template>
aoqi@0 528
aoqi@0 529 <xsl:template match="enum|struct" mode="link">
aoqi@0 530 <a>
aoqi@0 531 <xsl:attribute name="href">
aoqi@0 532 <xsl:text>#</xsl:text>
aoqi@0 533 <xsl:value-of select="."/>
aoqi@0 534 </xsl:attribute>
aoqi@0 535 <xsl:value-of select="."/>
aoqi@0 536 </a>
aoqi@0 537 </xsl:template>
aoqi@0 538
aoqi@0 539 <xsl:template match="char|size_t|void" mode="link">
aoqi@0 540 <xsl:value-of select="name()"/>
aoqi@0 541 </xsl:template>
aoqi@0 542
aoqi@0 543 <xsl:template match="uchar" mode="link">
aoqi@0 544 <xsl:text>unsigned char</xsl:text>
aoqi@0 545 </xsl:template>
aoqi@0 546
aoqi@0 547 <xsl:template match="varargs" mode="link">
aoqi@0 548 <xsl:text>...</xsl:text>
aoqi@0 549 </xsl:template>
aoqi@0 550
aoqi@0 551 <xsl:template match="ptrtype" mode="link">
aoqi@0 552 <xsl:apply-templates mode="link"/>
aoqi@0 553 </xsl:template>
aoqi@0 554
aoqi@0 555 <xsl:template match="outptr|outbuf|allocfieldbuf" mode="link">
aoqi@0 556 <xsl:apply-templates mode="link"/>
aoqi@0 557 <xsl:text>*</xsl:text>
aoqi@0 558 </xsl:template>
aoqi@0 559
aoqi@0 560 <xsl:template match="inptr|inbuf|vmbuf" mode="link">
aoqi@0 561 <xsl:text>const </xsl:text>
aoqi@0 562 <xsl:apply-templates mode="link"/>
aoqi@0 563 <xsl:text>*</xsl:text>
aoqi@0 564 </xsl:template>
aoqi@0 565
aoqi@0 566 <xsl:template match="allocbuf|agentbuf" mode="link">
aoqi@0 567 <xsl:apply-templates mode="link"/>
aoqi@0 568 <xsl:text>**</xsl:text>
aoqi@0 569 </xsl:template>
aoqi@0 570
aoqi@0 571 <xsl:template match="allocallocbuf" mode="link">
aoqi@0 572 <xsl:apply-templates mode="link"/>
aoqi@0 573 <xsl:text>***</xsl:text>
aoqi@0 574 </xsl:template>
aoqi@0 575
aoqi@0 576 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jclass|jobject|jvalue|jthreadGroup|jthread|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|size_t|void" mode="btsig">
aoqi@0 577 <xsl:value-of select="name()"/>
aoqi@0 578 </xsl:template>
aoqi@0 579
aoqi@0 580 <xsl:template match="uchar" mode="btsig">
aoqi@0 581 <xsl:text>unsigned char</xsl:text>
aoqi@0 582 </xsl:template>
aoqi@0 583
aoqi@0 584 <xsl:template match="enum|struct" mode="btsig">
aoqi@0 585 <xsl:value-of select="."/>
aoqi@0 586 </xsl:template>
aoqi@0 587
aoqi@0 588 <xsl:template match="outbuf" mode="btsig">
aoqi@0 589 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
aoqi@0 590 <xsl:text>*</xsl:text>
aoqi@0 591 </xsl:template>
aoqi@0 592
aoqi@0 593 <xsl:template name="gentypedef">
aoqi@0 594 <xsl:param name="tdef"/>
aoqi@0 595 <xsl:text>typedef struct {
aoqi@0 596 </xsl:text>
aoqi@0 597 <xsl:apply-templates select="$tdef/field" mode="signature"/>
aoqi@0 598 <xsl:text>} </xsl:text>
aoqi@0 599 <xsl:value-of select="$tdef/@id"/>
aoqi@0 600 <xsl:text>;</xsl:text>
aoqi@0 601 </xsl:template>
aoqi@0 602
aoqi@0 603 <xsl:template name="genuniontypedef">
aoqi@0 604 <xsl:param name="tdef"/>
aoqi@0 605 <xsl:text>typedef union {
aoqi@0 606 </xsl:text>
aoqi@0 607 <xsl:apply-templates select="$tdef/field" mode="signature"/>
aoqi@0 608 <xsl:text>} </xsl:text>
aoqi@0 609 <xsl:value-of select="$tdef/@id"/>
aoqi@0 610 <xsl:text>;</xsl:text>
aoqi@0 611 </xsl:template>
aoqi@0 612
aoqi@0 613
aoqi@0 614 <xsl:template match="capabilitiestypedef" mode="genstruct">
aoqi@0 615 <xsl:variable name="caps" select="count(capabilityfield)"/>
aoqi@0 616 <xsl:text>typedef struct {
aoqi@0 617 </xsl:text>
aoqi@0 618 <xsl:apply-templates select="capabilityfield" mode="signature"/>
aoqi@0 619 <xsl:variable name="rem" select="$caps mod 16"/>
aoqi@0 620 <xsl:if test="$rem != 0">
aoqi@0 621 <xsl:text> unsigned int : </xsl:text>
aoqi@0 622 <xsl:value-of select="16 - $rem"/>
aoqi@0 623 <xsl:text>;
aoqi@0 624 </xsl:text>
aoqi@0 625 </xsl:if>
aoqi@0 626 <xsl:if test="$caps &lt;= 32">
aoqi@0 627 <xsl:text> unsigned int : 16;
aoqi@0 628 </xsl:text>
aoqi@0 629 </xsl:if>
aoqi@0 630 <xsl:if test="$caps &lt;= 48">
aoqi@0 631 <xsl:text> unsigned int : 16;
aoqi@0 632 </xsl:text>
aoqi@0 633 </xsl:if>
aoqi@0 634 <xsl:if test="$caps &lt;= 64">
aoqi@0 635 <xsl:text> unsigned int : 16;
aoqi@0 636 </xsl:text>
aoqi@0 637 </xsl:if>
aoqi@0 638 <xsl:if test="$caps &lt;= 80">
aoqi@0 639 <xsl:text> unsigned int : 16;
aoqi@0 640 </xsl:text>
aoqi@0 641 </xsl:if>
aoqi@0 642 <xsl:if test="$caps &lt;= 96">
aoqi@0 643 <xsl:text> unsigned int : 16;
aoqi@0 644 </xsl:text>
aoqi@0 645 </xsl:if>
aoqi@0 646 <xsl:if test="$caps &lt;= 112">
aoqi@0 647 <xsl:text> unsigned int : 16;
aoqi@0 648 </xsl:text>
aoqi@0 649 </xsl:if>
aoqi@0 650 <xsl:text>} </xsl:text>
aoqi@0 651 <xsl:value-of select="@id"/>
aoqi@0 652 <xsl:text>;</xsl:text>
aoqi@0 653 </xsl:template>
aoqi@0 654
aoqi@0 655 <xsl:template match="capabilityfield" mode="signature">
aoqi@0 656 <xsl:text> unsigned int </xsl:text>
aoqi@0 657 <xsl:value-of select="@id"/>
aoqi@0 658 <xsl:text> : 1;
aoqi@0 659 </xsl:text>
aoqi@0 660 </xsl:template>
aoqi@0 661
aoqi@0 662 <xsl:template match="constants" mode="enum">
aoqi@0 663 <xsl:text>
aoqi@0 664 typedef </xsl:text>
aoqi@0 665 <xsl:apply-templates select="." mode="enumcore"/>
aoqi@0 666 <xsl:text> </xsl:text>
aoqi@0 667 <xsl:value-of select="@id"/>
aoqi@0 668 <xsl:text>;</xsl:text>
aoqi@0 669 </xsl:template>
aoqi@0 670
aoqi@0 671 <xsl:template match="constants" mode="constants">
aoqi@0 672 <xsl:text>
aoqi@0 673 </xsl:text>
aoqi@0 674 <xsl:apply-templates select="." mode="enumcore"/>
aoqi@0 675 <xsl:text>;</xsl:text>
aoqi@0 676 </xsl:template>
aoqi@0 677
aoqi@0 678 <xsl:template match="constants" mode="enumcore">
aoqi@0 679 <xsl:text>enum {
aoqi@0 680 </xsl:text>
aoqi@0 681 <xsl:for-each select="constant">
aoqi@0 682 <xsl:if test="position() &gt; 1">
aoqi@0 683 <xsl:text>,
aoqi@0 684 </xsl:text>
aoqi@0 685 </xsl:if>
aoqi@0 686 <xsl:apply-templates select="." mode="enum"/>
aoqi@0 687 </xsl:for-each>
aoqi@0 688 <xsl:text>
aoqi@0 689 }</xsl:text>
aoqi@0 690 </xsl:template>
aoqi@0 691
aoqi@0 692 <xsl:template match="event" mode="enum">
aoqi@0 693 <xsl:text> </xsl:text>
aoqi@0 694 <xsl:value-of select="@const"/>
aoqi@0 695 <xsl:text> = </xsl:text>
aoqi@0 696 <xsl:value-of select="@num"/>
aoqi@0 697 </xsl:template>
aoqi@0 698
aoqi@0 699 <xsl:template match="constant|errorid" mode="enum">
aoqi@0 700 <xsl:text> </xsl:text>
aoqi@0 701 <xsl:value-of select="@id"/>
aoqi@0 702 <xsl:text> = </xsl:text>
aoqi@0 703 <xsl:value-of select="@num"/>
aoqi@0 704 </xsl:template>
aoqi@0 705
aoqi@0 706
aoqi@0 707 <xsl:template name="eventStruct">
aoqi@0 708 <xsl:param name="events"/>
aoqi@0 709 <xsl:param name="index"/>
aoqi@0 710 <xsl:param name="started"/>
aoqi@0 711 <xsl:param name="comment"/>
aoqi@0 712 <xsl:variable name="thisEvent" select="$events[@num=$index]"/>
aoqi@0 713 <xsl:choose>
aoqi@0 714 <xsl:when test="count($thisEvent)=1">
aoqi@0 715 <xsl:if test="$comment='Yes'">
aoqi@0 716 <xsl:text> /* </xsl:text>
aoqi@0 717 <xsl:number value="$index" format=" 1"/>
aoqi@0 718 <xsl:text> : </xsl:text>
aoqi@0 719 <xsl:value-of select="$thisEvent/@label"/>
aoqi@0 720 <xsl:text> */
aoqi@0 721 </xsl:text>
aoqi@0 722 </xsl:if>
aoqi@0 723 <xsl:text> jvmtiEvent</xsl:text>
aoqi@0 724 <xsl:value-of select="$thisEvent/@id"/>
aoqi@0 725 <xsl:text> </xsl:text>
aoqi@0 726 <xsl:value-of select="$thisEvent/@id"/>
aoqi@0 727 <xsl:text>;
aoqi@0 728 </xsl:text>
aoqi@0 729 </xsl:when>
aoqi@0 730 <xsl:otherwise>
aoqi@0 731 <xsl:if test="$started">
aoqi@0 732 <xsl:if test="$comment='Yes'">
aoqi@0 733 <xsl:text> /* </xsl:text>
aoqi@0 734 <xsl:number value="$index" format=" 1"/>
aoqi@0 735 <xsl:text> */
aoqi@0 736 </xsl:text>
aoqi@0 737 </xsl:if>
aoqi@0 738 <xsl:text> jvmtiEventReserved reserved</xsl:text>
aoqi@0 739 <xsl:value-of select="$index"/>
aoqi@0 740 <xsl:text>;
aoqi@0 741 </xsl:text>
aoqi@0 742 </xsl:if>
aoqi@0 743 </xsl:otherwise>
aoqi@0 744 </xsl:choose>
aoqi@0 745 <xsl:if test="count($events[@num &gt; $index]) &gt; 0">
aoqi@0 746 <xsl:call-template name="eventStruct">
aoqi@0 747 <xsl:with-param name="events" select="$events"/>
aoqi@0 748 <xsl:with-param name="index" select="1+$index"/>
aoqi@0 749 <xsl:with-param name="started" select="$started or count($thisEvent)=1"/>
aoqi@0 750 <xsl:with-param name="comment" select="$comment"/>
aoqi@0 751 </xsl:call-template>
aoqi@0 752 </xsl:if>
aoqi@0 753 </xsl:template>
aoqi@0 754
aoqi@0 755
aoqi@0 756 <!-- ======== HotSpotType ======== -->
aoqi@0 757
aoqi@0 758 <xsl:template match="parameters" mode="HotSpotSig">
aoqi@0 759 <xsl:variable name="length" select="count(param)"/>
aoqi@0 760 <xsl:for-each select="param">
aoqi@0 761 <xsl:variable name="separator">
aoqi@0 762 <xsl:choose>
aoqi@0 763 <xsl:when test="position()=$length">
aoqi@0 764 <xsl:text></xsl:text>
aoqi@0 765 </xsl:when>
aoqi@0 766 <xsl:otherwise>
aoqi@0 767 <xsl:text>, </xsl:text>
aoqi@0 768 </xsl:otherwise>
aoqi@0 769 </xsl:choose>
aoqi@0 770 </xsl:variable>
aoqi@0 771 <xsl:apply-templates select="." mode="HotSpotSig">
aoqi@0 772 <xsl:with-param name="comma" select="$separator"/>
aoqi@0 773 </xsl:apply-templates>
aoqi@0 774 </xsl:for-each>
aoqi@0 775 </xsl:template>
aoqi@0 776
aoqi@0 777 <xsl:template match="param" mode="HotSpotSig">
aoqi@0 778 <xsl:param name="comma"/>
aoqi@0 779 <xsl:variable name="result">
aoqi@0 780 <xsl:apply-templates select="child::*[position()=1]" mode="HotSpotType"/>
aoqi@0 781 </xsl:variable>
aoqi@0 782 <xsl:if test="string-length($result)!=0">
aoqi@0 783 <xsl:value-of select="$result"/>
aoqi@0 784 <xsl:text> </xsl:text>
aoqi@0 785 <xsl:apply-templates select="child::*[position()=1]" mode="HotSpotName">
aoqi@0 786 <xsl:with-param name="name" select="@id"/>
aoqi@0 787 </xsl:apply-templates>
aoqi@0 788 <xsl:value-of select="$comma"/>
aoqi@0 789 </xsl:if>
aoqi@0 790 </xsl:template>
aoqi@0 791
aoqi@0 792 <xsl:template match="jthread" mode="HotSpotType">
aoqi@0 793 <xsl:choose>
aoqi@0 794 <xsl:when test="count(@impl)=0 or not(contains(@impl,'noconvert'))">
aoqi@0 795 <xsl:text>JavaThread*</xsl:text>
aoqi@0 796 </xsl:when>
aoqi@0 797 <xsl:otherwise>
aoqi@0 798 <xsl:value-of select="name()"/>
aoqi@0 799 </xsl:otherwise>
aoqi@0 800 </xsl:choose>
aoqi@0 801 </xsl:template>
aoqi@0 802
aoqi@0 803 <xsl:template match="jrawMonitorID" mode="HotSpotType">
aoqi@0 804 <xsl:text>JvmtiRawMonitor *</xsl:text>
aoqi@0 805 </xsl:template>
aoqi@0 806
aoqi@0 807 <xsl:template match="jframeID" mode="HotSpotType">
aoqi@0 808 <xsl:text>jint</xsl:text>
aoqi@0 809 </xsl:template>
aoqi@0 810
aoqi@0 811 <xsl:template match="jmethodID" mode="HotSpotType">
aoqi@0 812 <xsl:text>Method*</xsl:text>
aoqi@0 813 </xsl:template>
aoqi@0 814
aoqi@0 815 <xsl:template match="jfieldID" mode="HotSpotType">
aoqi@0 816 <xsl:text>fieldDescriptor*</xsl:text>
aoqi@0 817 </xsl:template>
aoqi@0 818
aoqi@0 819 <xsl:template match="jclass" mode="HotSpotType">
aoqi@0 820 <!--
aoqi@0 821 classes passed as part of a class/method or class/field pair are used
aoqi@0 822 by the wrapper to get the internal type but are not needed by nor
aoqi@0 823 passed to the implementation layer.
aoqi@0 824 -->
aoqi@0 825 <xsl:if test="count(@method|@field)=0">
aoqi@0 826 <xsl:text>oop</xsl:text>
aoqi@0 827 </xsl:if>
aoqi@0 828 </xsl:template>
aoqi@0 829
aoqi@0 830 <xsl:template match="nullok" mode="HotSpotType">
aoqi@0 831 </xsl:template>
aoqi@0 832
aoqi@0 833 <xsl:template match="jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|struct" mode="HotSpotType">
aoqi@0 834 <xsl:apply-templates select="." mode="btsig"/>
aoqi@0 835 </xsl:template>
aoqi@0 836
aoqi@0 837 <xsl:template match="varargs" mode="HotSpotType">
aoqi@0 838 <xsl:text> </xsl:text>
aoqi@0 839 </xsl:template>
aoqi@0 840
aoqi@0 841 <xsl:template match="outptr|outbuf|allocfieldbuf" mode="HotSpotType">
aoqi@0 842 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
aoqi@0 843 <xsl:text>*</xsl:text>
aoqi@0 844 </xsl:template>
aoqi@0 845
aoqi@0 846 <xsl:template match="ptrtype" mode="HotSpotType">
aoqi@0 847 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
aoqi@0 848 </xsl:template>
aoqi@0 849
aoqi@0 850 <xsl:template match="inptr|inbuf|vmbuf" mode="HotSpotType">
aoqi@0 851 <xsl:text>const </xsl:text>
aoqi@0 852 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
aoqi@0 853 <xsl:text>*</xsl:text>
aoqi@0 854 </xsl:template>
aoqi@0 855
aoqi@0 856 <xsl:template match="allocbuf|agentbuf" mode="HotSpotType">
aoqi@0 857 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
aoqi@0 858 <xsl:text>**</xsl:text>
aoqi@0 859 </xsl:template>
aoqi@0 860
aoqi@0 861 <xsl:template match="allocallocbuf" mode="HotSpotType">
aoqi@0 862 <xsl:apply-templates select="child::*[position()=1]" mode="btsig"/>
aoqi@0 863 <xsl:text>***</xsl:text>
aoqi@0 864 </xsl:template>
aoqi@0 865
aoqi@0 866 <!-- ======== HotSpotName ======== -->
aoqi@0 867
aoqi@0 868 <xsl:template match="jthread" mode="HotSpotName">
aoqi@0 869 <xsl:param name="name"/>
aoqi@0 870 <xsl:choose>
aoqi@0 871 <xsl:when test="count(@impl)=0 or not(contains(@impl,'noconvert'))">
aoqi@0 872 <xsl:text>java_thread</xsl:text>
aoqi@0 873 </xsl:when>
aoqi@0 874 <xsl:otherwise>
aoqi@0 875 <xsl:value-of select="$name"/>
aoqi@0 876 </xsl:otherwise>
aoqi@0 877 </xsl:choose>
aoqi@0 878 </xsl:template>
aoqi@0 879
aoqi@0 880 <xsl:template match="jrawMonitorID" mode="HotSpotName">
aoqi@0 881 <xsl:text>rmonitor</xsl:text>
aoqi@0 882 </xsl:template>
aoqi@0 883
aoqi@0 884 <xsl:template match="jframeID" mode="HotSpotName">
aoqi@0 885 <xsl:text>depth</xsl:text>
aoqi@0 886 </xsl:template>
aoqi@0 887
aoqi@0 888 <xsl:template match="jmethodID" mode="HotSpotName">
aoqi@0 889 <xsl:text>method_oop</xsl:text>
aoqi@0 890 </xsl:template>
aoqi@0 891
aoqi@0 892 <xsl:template match="jfieldID" mode="HotSpotName">
aoqi@0 893 <xsl:text>fdesc_ptr</xsl:text>
aoqi@0 894 </xsl:template>
aoqi@0 895
aoqi@0 896 <xsl:template match="jclass" mode="HotSpotName">
aoqi@0 897 <!--
aoqi@0 898 classes passed as part of a class/method or class/field pair are used
aoqi@0 899 by the wrapper to get the internal type but are not needed by nor
aoqi@0 900 passed to the implementation layer. This value is checked for empty.
aoqi@0 901 -->
aoqi@0 902 <xsl:if test="count(@method|@field)=0">
aoqi@0 903 <xsl:text>k_mirror</xsl:text>
aoqi@0 904 </xsl:if>
aoqi@0 905 </xsl:template>
aoqi@0 906
aoqi@0 907 <xsl:template match="nullok" mode="HotSpotName">
aoqi@0 908 </xsl:template>
aoqi@0 909
aoqi@0 910 <xsl:template match="jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|varargs|struct|outptr|outbuf|allocfieldbuf|ptrtype|inptr|inbuf|vmbuf|allocbuf|agentbuf|allocallocbuf" mode="HotSpotName">
aoqi@0 911 <xsl:param name="name"/>
aoqi@0 912 <xsl:value-of select="$name"/>
aoqi@0 913 </xsl:template>
aoqi@0 914
aoqi@0 915 <!-- ======== HotSpotValue ======== -->
aoqi@0 916
aoqi@0 917
aoqi@0 918 <xsl:template match="parameters" mode="HotSpotValue">
aoqi@0 919 <xsl:variable name="length" select="count(param)"/>
aoqi@0 920 <xsl:for-each select="param">
aoqi@0 921 <xsl:variable name="separator">
aoqi@0 922 <xsl:choose>
aoqi@0 923 <xsl:when test="position()=$length">
aoqi@0 924 <xsl:text></xsl:text>
aoqi@0 925 </xsl:when>
aoqi@0 926 <xsl:otherwise>
aoqi@0 927 <xsl:text>, </xsl:text>
aoqi@0 928 </xsl:otherwise>
aoqi@0 929 </xsl:choose>
aoqi@0 930 </xsl:variable>
aoqi@0 931 <xsl:apply-templates select="." mode="HotSpotValue">
aoqi@0 932 <xsl:with-param name="comma" select="$separator"/>
aoqi@0 933 </xsl:apply-templates>
aoqi@0 934 </xsl:for-each>
aoqi@0 935 </xsl:template>
aoqi@0 936
aoqi@0 937 <xsl:template match="param" mode="HotSpotValue">
aoqi@0 938 <xsl:param name="comma"/>
aoqi@0 939 <xsl:variable name="result">
aoqi@0 940 <xsl:apply-templates select="child::*[position()=1]" mode="HotSpotValue">
aoqi@0 941 <xsl:with-param name="name" select="@id"/>
aoqi@0 942 </xsl:apply-templates>
aoqi@0 943 </xsl:variable>
aoqi@0 944 <xsl:if test="string-length($result)!=0">
aoqi@0 945 <xsl:value-of select="$result"/>
aoqi@0 946 <xsl:value-of select="$comma"/>
aoqi@0 947 </xsl:if>
aoqi@0 948 </xsl:template>
aoqi@0 949
aoqi@0 950 <xsl:template match="jframeID|jmethodID|jrawMonitorID|jthread|jclass|nullok" mode="HotSpotValue">
aoqi@0 951 <xsl:param name="name"/>
aoqi@0 952 <xsl:apply-templates select="." mode="HotSpotName">
aoqi@0 953 <xsl:with-param name="name" select="$name"/>
aoqi@0 954 </xsl:apply-templates>
aoqi@0 955 </xsl:template>
aoqi@0 956
aoqi@0 957 <xsl:template match="jfieldID" mode="HotSpotValue">
aoqi@0 958 <xsl:text>&amp;fdesc</xsl:text>
aoqi@0 959 </xsl:template>
aoqi@0 960
aoqi@0 961 <xsl:template match="jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|struct|outptr|outbuf|allocfieldbuf|ptrtype|inptr|inbuf|vmbuf|allocbuf|agentbuf|allocallocbuf" mode="HotSpotValue">
aoqi@0 962 <xsl:param name="name"/>
aoqi@0 963 <xsl:value-of select="$name"/>
aoqi@0 964 </xsl:template>
aoqi@0 965
aoqi@0 966 <xsl:template match="varargs" mode="HotSpotValue">
aoqi@0 967 <xsl:text>NULL</xsl:text>
aoqi@0 968 </xsl:template>
aoqi@0 969
aoqi@0 970 </xsl:stylesheet>
aoqi@0 971

mercurial