src/share/vm/prims/jvmti.xsl

Wed, 27 Aug 2014 08:19:12 -0400

author
zgu
date
Wed, 27 Aug 2014 08:19:12 -0400
changeset 7074
833b0f92429a
parent 2862
1d80a2429f59
child 6876
710a3c8b516e
permissions
-rw-r--r--

8046598: Scalable Native memory tracking development
Summary: Enhance scalability of native memory tracking
Reviewed-by: coleenp, ctornqvi, gtriantafill

duke@435 1 <?xml version="1.0"?>
duke@435 2 <!--
trims@1907 3 Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
duke@435 4 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 5
duke@435 6 This code is free software; you can redistribute it and/or modify it
duke@435 7 under the terms of the GNU General Public License version 2 only, as
duke@435 8 published by the Free Software Foundation.
duke@435 9
duke@435 10 This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 13 version 2 for more details (a copy is included in the LICENSE file that
duke@435 14 accompanied this code).
duke@435 15
duke@435 16 You should have received a copy of the GNU General Public License version
duke@435 17 2 along with this work; if not, write to the Free Software Foundation,
duke@435 18 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 19
trims@1907 20 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 21 or visit www.oracle.com if you need additional information or have any
trims@1907 22 questions.
duke@435 23
duke@435 24 -->
duke@435 25
duke@435 26 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
duke@435 27
duke@435 28 <xsl:import href="jvmtiLib.xsl"/>
duke@435 29
duke@435 30 <xsl:output method="html" indent="yes"
duke@435 31 doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
duke@435 32 doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
duke@435 33
duke@435 34 <xsl:param name="development"></xsl:param>
duke@435 35
duke@435 36 <xsl:template match="specification">
duke@435 37 <html>
duke@435 38 <head>
duke@435 39 <title>
duke@435 40 <xsl:value-of select="@label"/>
duke@435 41 <xsl:text> </xsl:text>
duke@435 42 <xsl:call-template name="showversion"/>
duke@435 43 </title>
duke@435 44 <style type="text/css">
duke@435 45 td.tableHeader {font-size: larger}
duke@435 46 </style>
duke@435 47 </head>
duke@435 48 <body>
duke@435 49 <table border="0" width="100%">
duke@435 50 <tr>
duke@435 51 <td align="center">
duke@435 52 <xsl:apply-templates select="title"/>
duke@435 53 </td>
duke@435 54 </tr>
duke@435 55 </table>
duke@435 56 <ul>
duke@435 57 <li>
duke@435 58 <a href="#SpecificationIntro"><b>Introduction</b></a>
duke@435 59 <ul>
duke@435 60 <xsl:for-each select="intro">
duke@435 61 <li>
duke@435 62 <a>
duke@435 63 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
duke@435 64 </xsl:attribute>
duke@435 65 <b><xsl:value-of select="@label"/></b>
duke@435 66 </a>
duke@435 67 </li>
duke@435 68 </xsl:for-each>
duke@435 69 </ul>
duke@435 70 </li>
duke@435 71 <li>
duke@435 72 <a href="#FunctionSection"><b>Functions</b></a>
duke@435 73 <ul>
duke@435 74 <xsl:for-each select="functionsection/intro">
duke@435 75 <li>
duke@435 76 <a>
duke@435 77 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
duke@435 78 </xsl:attribute>
duke@435 79 <b><xsl:value-of select="@label"/></b>
duke@435 80 </a>
duke@435 81 </li>
duke@435 82 </xsl:for-each>
duke@435 83 <li>
duke@435 84 <a href="#FunctionIndex"><b>Function Index</b></a>
duke@435 85 <ul>
duke@435 86 <xsl:for-each select="functionsection/category">
duke@435 87 <li>
duke@435 88 <a>
duke@435 89 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
duke@435 90 </xsl:attribute>
duke@435 91 <b><xsl:value-of select="@label"/></b>
duke@435 92 </a>
duke@435 93 </li>
duke@435 94 </xsl:for-each>
duke@435 95 </ul>
duke@435 96 </li>
duke@435 97 <li>
duke@435 98 <a href="#ErrorSection"><b>Error Codes</b></a>
duke@435 99 </li>
duke@435 100 </ul>
duke@435 101 </li>
duke@435 102 <li>
duke@435 103 <a href="#EventSection"><b>Events</b></a>
duke@435 104 <ul>
duke@435 105 <li>
duke@435 106 <a href="#EventIndex"><b>Event Index</b></a>
duke@435 107 </li>
duke@435 108 </ul>
duke@435 109 </li>
duke@435 110 <li>
duke@435 111 <a href="#DataSection"><b>Data Types</b></a>
duke@435 112 <ul>
duke@435 113 <xsl:for-each select="//basetypes">
duke@435 114 <li>
duke@435 115 <a>
duke@435 116 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 117 <b>
duke@435 118 <xsl:value-of select="@label"/>
duke@435 119 </b>
duke@435 120 </a>
duke@435 121 </li>
duke@435 122 </xsl:for-each>
duke@435 123 <li>
duke@435 124 <a href="#StructureTypeDefinitions"><b>Structure Type Definitions</b></a>
duke@435 125 </li>
duke@435 126 <li>
duke@435 127 <a href="#FunctionTypeDefinitions"><b>Function Type Definitions</b></a>
duke@435 128 </li>
duke@435 129 <li>
duke@435 130 <a href="#EnumerationDefinitions"><b>Enumeration Definitions</b></a>
duke@435 131 </li>
duke@435 132 <li>
duke@435 133 <a href="#FunctionTable"><b>Function Table</b></a>
duke@435 134 </li>
duke@435 135 </ul>
duke@435 136 </li>
duke@435 137 <li>
duke@435 138 <a href="#ConstantIndex"><b>Constant Index</b></a>
duke@435 139 </li>
duke@435 140 <xsl:if test="$development = 'Show'">
duke@435 141 <li>
duke@435 142 <a href="#SpecificationIssues"><b>Issues</b></a>
duke@435 143 <ul>
duke@435 144 <xsl:for-each select="issuessection/intro">
duke@435 145 <li>
duke@435 146 <a>
duke@435 147 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
duke@435 148 </xsl:attribute>
duke@435 149 <b><xsl:value-of select="@label"/></b>
duke@435 150 </a>
duke@435 151 </li>
duke@435 152 </xsl:for-each>
duke@435 153 </ul>
duke@435 154 </li>
duke@435 155 </xsl:if>
duke@435 156 <li>
duke@435 157 <a href="#ChangeHistory"><b>Change History</b></a>
duke@435 158 </li>
duke@435 159 </ul>
duke@435 160 <!-- end table of contents, begin body -->
duke@435 161 <p/>
duke@435 162 <hr noshade="noshade" size="3"/>
duke@435 163 <p/>
duke@435 164 <p id="SpecificationIntro"/>
duke@435 165 <xsl:apply-templates select="intro"/>
duke@435 166 <p id="FunctionSection"/>
duke@435 167 <xsl:apply-templates select="functionsection"/>
duke@435 168 <p id="ErrorSection"/>
duke@435 169 <xsl:apply-templates select="errorsection"/>
duke@435 170 <p id="DataSection"/>
duke@435 171 <xsl:apply-templates select="datasection"/>
duke@435 172 <p id="EventSection"/>
duke@435 173 <xsl:apply-templates select="eventsection"/>
duke@435 174 <p id="ConstantIndex"/>
duke@435 175 <p/>
duke@435 176 <hr noshade="noshade" size="3"/>
duke@435 177 <h2>
duke@435 178 Constant Index
duke@435 179 </h2>
duke@435 180 <blockquote>
duke@435 181 <xsl:apply-templates select="//constant" mode="index">
duke@435 182 <xsl:sort select="@id"/>
duke@435 183 </xsl:apply-templates>
duke@435 184 </blockquote>
duke@435 185 <xsl:if test="$development = 'Show'">
duke@435 186 <p id="SpecificationIssues"/>
duke@435 187 <p/>
duke@435 188 <hr noshade="noshade" size="3"/>
duke@435 189 <h2>
duke@435 190 <xsl:value-of select="issuessection/@label"/>
duke@435 191 </h2>
duke@435 192 <xsl:apply-templates select="issuessection/intro"/>
duke@435 193 </xsl:if>
duke@435 194 <p id="ChangeHistory"/>
duke@435 195 <xsl:apply-templates select="changehistory"/>
duke@435 196 </body>
duke@435 197 </html>
duke@435 198 </xsl:template>
duke@435 199
duke@435 200 <xsl:template match="title">
duke@435 201 <h1>
duke@435 202 <xsl:apply-templates/>
duke@435 203 </h1>
duke@435 204 <h3>
duke@435 205 <xsl:value-of select="@subtitle"/>
duke@435 206 <xsl:text> </xsl:text>
duke@435 207 <xsl:call-template name="showbasicversion"/>
duke@435 208 </h3>
duke@435 209 </xsl:template>
duke@435 210
duke@435 211 <xsl:template match="functionsection">
duke@435 212 <p/>
duke@435 213 <hr noshade="noshade" size="3"/>
duke@435 214 <h2>
duke@435 215 <xsl:value-of select="@label"/>
duke@435 216 </h2>
duke@435 217 <xsl:apply-templates select="intro"/>
duke@435 218 <h3 id="FunctionIndex">Function Index</h3>
duke@435 219 <ul>
duke@435 220 <xsl:apply-templates select="category" mode="index"/>
duke@435 221 </ul>
duke@435 222 <xsl:apply-templates select="category" mode="body"/>
duke@435 223 </xsl:template>
duke@435 224
duke@435 225 <xsl:template match="category" mode="index">
duke@435 226 <li>
duke@435 227 <a>
duke@435 228 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 229 <b>
duke@435 230 <xsl:value-of select="@label"/>
duke@435 231 </b>
duke@435 232 </a>
duke@435 233 <ul>
duke@435 234 <xsl:apply-templates select="function[count(@hide)=0]" mode="index"/>
duke@435 235 </ul>
duke@435 236 </li>
duke@435 237 </xsl:template>
duke@435 238
duke@435 239 <xsl:template match="function|callback" mode="index">
duke@435 240 <li>
duke@435 241 <a>
duke@435 242 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 243 <xsl:apply-templates select="synopsis" mode="index"/>
duke@435 244 </a>
duke@435 245 </li>
duke@435 246 </xsl:template>
duke@435 247
duke@435 248 <xsl:template match="synopsis" mode="index">
duke@435 249 <xsl:value-of select="."/>
duke@435 250 </xsl:template>
duke@435 251
duke@435 252 <xsl:template match="category" mode="body">
duke@435 253 <p>
duke@435 254 <xsl:attribute name="id">
duke@435 255 <xsl:value-of select="@id"/>
duke@435 256 </xsl:attribute>
duke@435 257 </p>
duke@435 258 <hr noshade="noshade" size="3"/>
duke@435 259 <h2 align="center"><xsl:value-of select="@label"/></h2>
duke@435 260 <xsl:value-of select="@label"/> functions:
duke@435 261 <ul>
duke@435 262 <xsl:apply-templates select="function[count(@hide)=0]" mode="index"/>
duke@435 263 </ul>
duke@435 264 <xsl:variable name="calltypes" select="callback"/>
duke@435 265 <xsl:if test="count($calltypes)!=0">
duke@435 266 <xsl:value-of select="@label"/> function types:
duke@435 267 <ul>
duke@435 268 <xsl:apply-templates select="$calltypes" mode="index"/>
duke@435 269 </ul>
duke@435 270 </xsl:if>
duke@435 271 <xsl:variable name="cattypes"
duke@435 272 select="(descendant::typedef|descendant::uniontypedef|descendant::capabilitiestypedef|descendant::constants[@kind='enum'])"/>
duke@435 273 <xsl:if test="count($cattypes)!=0">
duke@435 274 <xsl:value-of select="@label"/> types:
duke@435 275 <ul>
duke@435 276 <xsl:for-each select="$cattypes">
duke@435 277 <li>
duke@435 278 <a>
duke@435 279 <xsl:attribute name="href">
duke@435 280 <xsl:text>#</xsl:text>
duke@435 281 <xsl:value-of select="@id"/>
duke@435 282 </xsl:attribute>
duke@435 283 <code><xsl:value-of select="@id"/></code>
duke@435 284 </a>
duke@435 285 <xsl:text> - </xsl:text>
duke@435 286 <xsl:value-of select="@label"/>
duke@435 287 </li>
duke@435 288 </xsl:for-each>
duke@435 289 </ul>
duke@435 290 </xsl:if>
duke@435 291 <xsl:variable name="catconst"
duke@435 292 select="(descendant::constants[@kind!='enum'])"/>
duke@435 293 <xsl:if test="count($catconst)!=0">
duke@435 294 <xsl:value-of select="@label"/> flags and constants:
duke@435 295 <ul>
duke@435 296 <xsl:for-each select="$catconst">
duke@435 297 <li>
duke@435 298 <a>
duke@435 299 <xsl:attribute name="href">
duke@435 300 <xsl:text>#</xsl:text>
duke@435 301 <xsl:value-of select="@id"/>
duke@435 302 </xsl:attribute>
duke@435 303 <xsl:value-of select="@label"/>
duke@435 304 </a>
duke@435 305 </li>
duke@435 306 </xsl:for-each>
duke@435 307 </ul>
duke@435 308 </xsl:if>
duke@435 309 <xsl:apply-templates select="intro|typedef|uniontypedef|capabilitiestypedef"/>
duke@435 310 <p/>
duke@435 311 <xsl:apply-templates select="function[count(@hide)=0]|callback" mode="body"/>
duke@435 312 </xsl:template>
duke@435 313
duke@435 314 <xsl:template match="function" mode="body">
duke@435 315 <hr noshade="noshade" width="100%" size="1">
duke@435 316 <xsl:attribute name="id">
duke@435 317 <xsl:value-of select="@id"/>
duke@435 318 </xsl:attribute>
duke@435 319
duke@435 320 </hr>
duke@435 321 <xsl:apply-templates select="synopsis" mode="body"/>
duke@435 322 <blockquote>
duke@435 323 <xsl:apply-templates select="typedef" mode="code"/>
duke@435 324 <xsl:apply-templates select="descendant::constants[@kind='enum']" mode="signature"/>
duke@435 325 <pre>
duke@435 326 <xsl:text>jvmtiError
duke@435 327 </xsl:text>
duke@435 328 <xsl:value-of select="@id"/>(jvmtiEnv* env<xsl:apply-templates select="parameters" mode="signature"/>)</pre>
duke@435 329 </blockquote>
duke@435 330 <xsl:apply-templates select="description"/>
duke@435 331 <xsl:apply-templates select="." mode="generalinfo"/>
duke@435 332 <xsl:apply-templates select="capabilities|eventcapabilities"/>
duke@435 333 <xsl:apply-templates select="typedef" mode="body"/>
duke@435 334 <xsl:apply-templates select="parameters" mode="body"/>
duke@435 335 <xsl:apply-templates select="." mode="errors"/>
duke@435 336 </xsl:template>
duke@435 337
duke@435 338 <xsl:template match="function" mode="generalinfo">
duke@435 339 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 340 <tr bgcolor="#EEEEFF">
duke@435 341 <td >
duke@435 342 <a href="#jvmtiPhase">Phase</a>
duke@435 343 </td>
duke@435 344 <td>
duke@435 345 <a href="#heapCallbacks">Callback Safe</a>
duke@435 346 </td>
duke@435 347 <td>
duke@435 348 <a href="#FunctionTable">Position</a>
duke@435 349 </td>
duke@435 350 <td>
duke@435 351 <a href="#ChangeHistory">Since</a>
duke@435 352 </td>
duke@435 353 </tr>
duke@435 354 <tr>
duke@435 355 <td >
duke@435 356 <xsl:apply-templates select="." mode="phaseinfo"/>
duke@435 357 </td>
duke@435 358 <td>
duke@435 359 <xsl:apply-templates select="." mode="callbacksafeinfo"/>
duke@435 360 </td>
duke@435 361 <td>
duke@435 362 <xsl:value-of select="@num"/>
duke@435 363 </td>
duke@435 364 <td>
duke@435 365 <xsl:value-of select="@since"/>
duke@435 366 </td>
duke@435 367 </tr>
duke@435 368 </table>
duke@435 369 </xsl:template>
duke@435 370
duke@435 371 <xsl:template match="event" mode="generalinfo">
duke@435 372 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 373 <tr bgcolor="#EEEEFF">
duke@435 374 <td >
duke@435 375 <a href="#jvmtiPhase">Phase</a>
duke@435 376 </td>
duke@435 377 <td>
duke@435 378 <a href="#jvmtiEvent">Event Type</a>
duke@435 379 </td>
duke@435 380 <td>
duke@435 381 <a href="#jvmtiEvent">Number</a>
duke@435 382 </td>
duke@435 383 <td>
duke@435 384 <a href="#enablingevents">Enabling</a>
duke@435 385 </td>
duke@435 386 <td>
duke@435 387 <a href="#ChangeHistory">Since</a>
duke@435 388 </td>
duke@435 389 </tr>
duke@435 390 <tr>
duke@435 391 <td >
duke@435 392 <xsl:apply-templates select="." mode="phaseinfo"/>
duke@435 393 </td>
duke@435 394 <td>
duke@435 395 <code><xsl:value-of select="@const"/></code>
duke@435 396 </td>
duke@435 397 <td>
duke@435 398 <xsl:value-of select="@num"/>
duke@435 399 </td>
duke@435 400 <td>
duke@435 401 <code><a href="#SetEventNotificationMode">SetEventNotificationMode</a>(JVMTI_ENABLE,
duke@435 402 <xsl:value-of select="@const"/>, NULL)</code>
duke@435 403 </td>
duke@435 404 <td>
duke@435 405 <xsl:value-of select="@since"/>
duke@435 406 </td>
duke@435 407 </tr>
duke@435 408 </table>
duke@435 409 </xsl:template>
duke@435 410
duke@435 411 <xsl:template match="function" mode="phaseinfo">
duke@435 412 may
duke@435 413 <xsl:choose>
duke@435 414 <xsl:when test="count(@phase) = 0 or @phase = 'live'">
duke@435 415 only be called during the live
duke@435 416 </xsl:when>
duke@435 417 <xsl:otherwise>
duke@435 418 <xsl:choose>
duke@435 419 <xsl:when test="@phase = 'onload'">
duke@435 420 only be called during the OnLoad or the live
duke@435 421 </xsl:when>
duke@435 422 <xsl:otherwise>
duke@435 423 <xsl:choose>
duke@435 424 <xsl:when test="@phase = 'any'">
duke@435 425 be called during any
duke@435 426 </xsl:when>
duke@435 427 <xsl:otherwise>
duke@435 428 <xsl:choose>
duke@435 429 <xsl:when test="@phase = 'start'">
duke@435 430 only be called during the start or the live
duke@435 431 </xsl:when>
duke@435 432 <xsl:otherwise>
duke@435 433 <xsl:choose>
duke@435 434 <xsl:when test="@phase = 'onloadOnly'">
duke@435 435 only be called during the OnLoad
duke@435 436 </xsl:when>
duke@435 437 <xsl:otherwise>
duke@435 438 <xsl:message terminate="yes">
duke@435 439 bad phase - <xsl:value-of select="@phase"/>
duke@435 440 </xsl:message>
duke@435 441 </xsl:otherwise>
duke@435 442 </xsl:choose>
duke@435 443 </xsl:otherwise>
duke@435 444 </xsl:choose>
duke@435 445 </xsl:otherwise>
duke@435 446 </xsl:choose>
duke@435 447 </xsl:otherwise>
duke@435 448 </xsl:choose>
duke@435 449 </xsl:otherwise>
duke@435 450 </xsl:choose>
duke@435 451 phase
duke@435 452 </xsl:template>
duke@435 453
duke@435 454
duke@435 455 <xsl:template match="event" mode="phaseinfo">
duke@435 456 sent
duke@435 457 <xsl:choose>
duke@435 458 <xsl:when test="count(@phase) = 0 or @phase = 'live'">
duke@435 459 only during the live
duke@435 460 </xsl:when>
duke@435 461 <xsl:otherwise>
duke@435 462 <xsl:choose>
duke@435 463 <xsl:when test="@phase = 'any'">
duke@435 464 during the primordial, start or live
duke@435 465 </xsl:when>
duke@435 466 <xsl:otherwise>
duke@435 467 <xsl:choose>
duke@435 468 <xsl:when test="@phase = 'start'">
duke@435 469 during the start or live
duke@435 470 </xsl:when>
duke@435 471 <xsl:otherwise>
duke@435 472 <xsl:message terminate="yes">
duke@435 473 bad phase - <xsl:value-of select="@phase"/>
duke@435 474 </xsl:message>
duke@435 475 </xsl:otherwise>
duke@435 476 </xsl:choose>
duke@435 477 </xsl:otherwise>
duke@435 478 </xsl:choose>
duke@435 479 </xsl:otherwise>
duke@435 480 </xsl:choose>
duke@435 481 phase
duke@435 482 </xsl:template>
duke@435 483
duke@435 484
duke@435 485 <xsl:template match="function" mode="callbacksafeinfo">
duke@435 486 <xsl:choose>
duke@435 487 <xsl:when test="contains(@callbacksafe,'safe')">
duke@435 488 This function may be called from the callbacks to the
duke@435 489 <a href="#Heap">Heap</a> iteration functions, or from the
duke@435 490 event handlers for the
duke@435 491 <a href="#GarbageCollectionStart"><code>GarbageCollectionStart</code></a>,
duke@435 492 <a href="#GarbageCollectionFinish"><code>GarbageCollectionFinish</code></a>,
duke@435 493 and <a href="#ObjectFree"><code>ObjectFree</code></a> events.
duke@435 494 </xsl:when>
duke@435 495 <xsl:otherwise>
duke@435 496 No
duke@435 497 </xsl:otherwise>
duke@435 498 </xsl:choose>
duke@435 499 </xsl:template>
duke@435 500
duke@435 501
duke@435 502 <xsl:template match="callback" mode="body">
duke@435 503 <hr noshade="noshade" width="100%" size="1">
duke@435 504 <xsl:attribute name="id">
duke@435 505 <xsl:value-of select="@id"/>
duke@435 506 </xsl:attribute>
duke@435 507 </hr>
duke@435 508 <xsl:apply-templates select="synopsis" mode="body"/>
duke@435 509 <table cellpadding="0" cellspacing="0" border="0" width="90%" align="center"><tr><td>
duke@435 510 <blockquote>
duke@435 511 <pre>
duke@435 512 <xsl:text>typedef </xsl:text>
duke@435 513 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 514 <xsl:text> (JNICALL *</xsl:text>
duke@435 515 <xsl:value-of select="@id"/>
duke@435 516 <xsl:text>)
duke@435 517 (</xsl:text>
duke@435 518 <xsl:for-each select="parameters">
duke@435 519 <xsl:apply-templates select="param[position()=1]" mode="signature"/>
duke@435 520 <xsl:for-each select="param[position()>1]">
duke@435 521 <xsl:text>,
duke@435 522 </xsl:text>
duke@435 523 <xsl:apply-templates select="." mode="signature"/>
duke@435 524 </xsl:for-each>
duke@435 525 </xsl:for-each>
duke@435 526 <xsl:text>);</xsl:text>
duke@435 527 </pre>
duke@435 528 </blockquote>
duke@435 529 <xsl:apply-templates select="description"/>
duke@435 530 <xsl:apply-templates select="parameters" mode="body"/>
duke@435 531 </td></tr></table>
duke@435 532 </xsl:template>
duke@435 533
duke@435 534 <xsl:template match="synopsis" mode="body">
duke@435 535 <h3><xsl:value-of select="."/></h3>
duke@435 536 </xsl:template>
duke@435 537
duke@435 538 <xsl:template match="eventsection">
duke@435 539 <p/>
duke@435 540 <hr noshade="noshade" size="3"/>
duke@435 541 <h2>
duke@435 542 <xsl:value-of select="@label"/>
duke@435 543 </h2>
duke@435 544 <xsl:apply-templates select="intro"/>
duke@435 545 <blockquote>
duke@435 546 <pre>
duke@435 547 <xsl:text>
duke@435 548 typedef struct {
duke@435 549 </xsl:text>
duke@435 550 <xsl:call-template name="eventStruct">
duke@435 551 <xsl:with-param name="events" select="event"/>
duke@435 552 <xsl:with-param name="index" select="0"/>
duke@435 553 <xsl:with-param name="started" select="false"/>
duke@435 554 <xsl:with-param name="comment" select="'No'"/>
duke@435 555 </xsl:call-template>
duke@435 556 <xsl:text>} jvmtiEventCallbacks;
duke@435 557 </xsl:text>
duke@435 558 </pre>
duke@435 559 </blockquote>
duke@435 560 <p/>
duke@435 561 <hr noshade="noshade" width="100%" size="1"/>
duke@435 562 <h3 id="EventIndex">Event Index</h3>
duke@435 563 <ul>
duke@435 564 <xsl:apply-templates select="event" mode="index">
duke@435 565 <xsl:sort select="@label"/>
duke@435 566 </xsl:apply-templates>
duke@435 567 </ul>
duke@435 568 <xsl:apply-templates select="event" mode="body"/>
duke@435 569 </xsl:template>
duke@435 570
duke@435 571 <xsl:template match="event" mode="index">
duke@435 572 <li>
duke@435 573 <a>
duke@435 574 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 575 <b>
duke@435 576 <xsl:value-of select="@label"/>
duke@435 577 </b>
duke@435 578 </a>
duke@435 579 </li>
duke@435 580 </xsl:template>
duke@435 581
duke@435 582 <xsl:template match="event" mode="body">
duke@435 583 <p>
duke@435 584 <xsl:attribute name="id">
duke@435 585 <xsl:value-of select="@id"/>
duke@435 586 </xsl:attribute>
duke@435 587 </p>
duke@435 588 <hr noshade="noshade" size="3"/>
duke@435 589 <h2><xsl:value-of select="@label"/></h2>
duke@435 590 <p/>
duke@435 591 <blockquote>
duke@435 592 <xsl:apply-templates select="typedef" mode="code"/>
duke@435 593 <pre>
duke@435 594 <xsl:text>void JNICALL
duke@435 595 </xsl:text>
duke@435 596 <xsl:value-of select="@id"/>(jvmtiEnv *jvmti_env<xsl:apply-templates select="parameters" mode="signature"/>)</pre>
duke@435 597 </blockquote>
duke@435 598 <xsl:apply-templates select="description"/>
duke@435 599 <xsl:apply-templates select="." mode="generalinfo"/>
duke@435 600 <xsl:apply-templates select="typedef" mode="body"/>
duke@435 601 <xsl:apply-templates select="capabilities"/>
duke@435 602 <xsl:apply-templates select="parameters" mode="body"/>
duke@435 603 </xsl:template>
duke@435 604
duke@435 605 <xsl:template match="capabilitiestypedef" mode="code">
duke@435 606 <blockquote>
duke@435 607 <pre>
duke@435 608 <xsl:apply-templates select="." mode="genstruct"/>
duke@435 609 </pre>
duke@435 610 </blockquote>
duke@435 611 </xsl:template>
duke@435 612
duke@435 613 <xsl:template match="typedef" mode="code">
duke@435 614 <pre>
duke@435 615 <xsl:call-template name="gentypedef">
duke@435 616 <xsl:with-param name="tdef" select="."/>
duke@435 617 </xsl:call-template>
duke@435 618 </pre>
duke@435 619 </xsl:template>
duke@435 620
duke@435 621 <xsl:template match="uniontypedef" mode="code">
duke@435 622 <pre>
duke@435 623 <xsl:call-template name="genuniontypedef">
duke@435 624 <xsl:with-param name="tdef" select="."/>
duke@435 625 </xsl:call-template>
duke@435 626 </pre>
duke@435 627 </xsl:template>
duke@435 628
duke@435 629 <xsl:template match="capabilitiestypedef|typedef|uniontypedef" mode="description">
duke@435 630 <xsl:apply-templates select="description"/>
duke@435 631 </xsl:template>
duke@435 632
duke@435 633 <xsl:template match="capabilitiestypedef|typedef|uniontypedef">
duke@435 634 <h4>
duke@435 635 <xsl:attribute name="id">
duke@435 636 <xsl:value-of select="@id"/>
duke@435 637 </xsl:attribute>
duke@435 638 <xsl:value-of select="@label"/>
duke@435 639 </h4>
duke@435 640 <xsl:apply-templates select="." mode="description"/>
duke@435 641 <blockquote>
duke@435 642 <xsl:apply-templates select="." mode="code"/>
duke@435 643 <xsl:apply-templates select="." mode="justbody"/>
duke@435 644 </blockquote>
duke@435 645 </xsl:template>
duke@435 646
duke@435 647 <xsl:template match="constants" mode="signature">
duke@435 648 <pre>
duke@435 649 <xsl:apply-templates select="." mode="enum"/>
duke@435 650 </pre>
duke@435 651 </xsl:template>
duke@435 652
duke@435 653 <xsl:template match="typedef|uniontypedef" mode="body">
duke@435 654 <p>
duke@435 655 <xsl:attribute name="id">
duke@435 656 <xsl:value-of select="@id"/>
duke@435 657 </xsl:attribute>
duke@435 658 </p>
duke@435 659 <xsl:apply-templates select="." mode="justbody"/>
duke@435 660 </xsl:template>
duke@435 661
duke@435 662 <xsl:template match="typedef|uniontypedef" mode="justbody">
duke@435 663 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 664 <tr bgcolor="#CCCCFF">
duke@435 665 <td colspan="3" align="center" class="tableHeader">
duke@435 666 <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>
duke@435 667 </td>
duke@435 668 </tr>
duke@435 669 <tr bgcolor="#EEEEFF">
duke@435 670 <td>
duke@435 671 Field
duke@435 672 </td>
duke@435 673 <td>
duke@435 674 Type
duke@435 675 </td>
duke@435 676 <td>
duke@435 677 Description
duke@435 678 </td>
duke@435 679 </tr>
duke@435 680 <xsl:apply-templates select="field" mode="body"/>
duke@435 681 </table>
duke@435 682 </xsl:template>
duke@435 683
duke@435 684 <xsl:template match="capabilitiestypedef" mode="body">
duke@435 685 <p>
duke@435 686 <xsl:attribute name="id">
duke@435 687 <xsl:value-of select="@id"/>
duke@435 688 </xsl:attribute>
duke@435 689 </p>
duke@435 690 <xsl:apply-templates select="." mode="justbody"/>
duke@435 691 </xsl:template>
duke@435 692
duke@435 693 <xsl:template match="capabilitiestypedef" mode="justbody">
duke@435 694 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 695 <tr bgcolor="#CCCCFF">
duke@435 696 <td colspan="3" align="center" class="tableHeader">
duke@435 697 <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>
duke@435 698 </td>
duke@435 699 </tr>
duke@435 700 <tr bgcolor="#EEEEFF">
duke@435 701 <td colspan="3">
duke@435 702 All types are <code>unsigned int : 1</code>
duke@435 703 </td>
duke@435 704 </tr>
duke@435 705 <tr bgcolor="#EEEEFF">
duke@435 706 <td>
duke@435 707 Field
duke@435 708 </td>
duke@435 709 <td>
duke@435 710 Description
duke@435 711 </td>
duke@435 712 <td>
duke@435 713 <a href="#ChangeHistory">Since</a>
duke@435 714 </td>
duke@435 715 </tr>
duke@435 716 <xsl:apply-templates select="capabilityfield" mode="body"/>
duke@435 717 </table>
duke@435 718 </xsl:template>
duke@435 719
duke@435 720 <xsl:template match="typedef|uniontypedef|capabilitiestypedef|constants" mode="tableentry">
duke@435 721 <tr>
duke@435 722 <td>
duke@435 723 <a>
duke@435 724 <xsl:attribute name="href">
duke@435 725 <xsl:text>#</xsl:text>
duke@435 726 <xsl:value-of select="@id"/>
duke@435 727 </xsl:attribute>
duke@435 728 <code><xsl:value-of select="@id"/></code>
duke@435 729 </a>
duke@435 730 </td>
duke@435 731 <td>
duke@435 732 <xsl:value-of select="@label"/>
duke@435 733 </td>
duke@435 734 </tr>
duke@435 735 </xsl:template>
duke@435 736
duke@435 737 <xsl:template match="field" mode="body">
duke@435 738 <tr>
duke@435 739 <td>
duke@435 740 <code>
duke@435 741 <xsl:attribute name="id">
duke@435 742 <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>
duke@435 743 </xsl:attribute>
duke@435 744 <xsl:value-of select="@id"/>
duke@435 745 </code>
duke@435 746 </td>
duke@435 747 <td>
duke@435 748 <code>
duke@435 749 <xsl:apply-templates select="child::*[position()=1]" mode="link"/>
duke@435 750 </code>
duke@435 751 </td>
duke@435 752 <td>
duke@435 753 <xsl:apply-templates select="description" mode="brief"/>
duke@435 754 </td>
duke@435 755 </tr>
duke@435 756 </xsl:template>
duke@435 757
duke@435 758 <xsl:template match="capabilityfield" mode="body">
duke@435 759 <tr>
duke@435 760 <td>
duke@435 761 <code>
duke@435 762 <xsl:choose>
duke@435 763 <xsl:when test="@disp1!=''">
duke@435 764 <xsl:value-of select="@disp1"/>
duke@435 765 <br></br>
duke@435 766 <xsl:value-of select="@disp2"/>
duke@435 767 </xsl:when>
duke@435 768 <xsl:otherwise>
duke@435 769 <xsl:value-of select="@id"/>
duke@435 770 </xsl:otherwise>
duke@435 771 </xsl:choose>
duke@435 772 </code>
duke@435 773 </td>
duke@435 774 <td>
duke@435 775 <a>
duke@435 776 <xsl:attribute name="name">
duke@435 777 <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>
duke@435 778 </xsl:attribute>
duke@435 779 </a>
duke@435 780 <xsl:apply-templates select="description" mode="brief"/>
duke@435 781 </td>
duke@435 782 <td>
duke@435 783 <xsl:value-of select="@since"/>
duke@435 784 </td>
duke@435 785 </tr>
duke@435 786 </xsl:template>
duke@435 787
duke@435 788 <xsl:template match="callback" mode="tableentry">
duke@435 789 <tr>
duke@435 790 <td>
duke@435 791 <a>
duke@435 792 <xsl:attribute name="href">
duke@435 793 <xsl:text>#</xsl:text>
duke@435 794 <xsl:value-of select="@id"/>
duke@435 795 </xsl:attribute>
duke@435 796 <code>
duke@435 797 <xsl:value-of select="@id"/>
duke@435 798 </code>
duke@435 799 </a>
duke@435 800 </td>
duke@435 801 <td>
duke@435 802 <xsl:apply-templates select="synopsis" mode="index"/>
duke@435 803 </td>
duke@435 804 </tr>
duke@435 805 </xsl:template>
duke@435 806
duke@435 807 <xsl:template match="constants">
duke@435 808 <blockquote>
duke@435 809 <a>
duke@435 810 <xsl:attribute name="name">
duke@435 811 <xsl:value-of select="@id"/>
duke@435 812 </xsl:attribute>
duke@435 813 </a>
duke@435 814 <table border="1" cellpadding="3" cellspacing="0">
duke@435 815 <tr bgcolor="#CCCCFF">
duke@435 816 <td colspan="3" align="center" class="tableHeader">
duke@435 817 <xsl:value-of select="@label"/>
duke@435 818 <xsl:if test="@kind='enum'">
duke@435 819 <xsl:text> (</xsl:text>
duke@435 820 <code>
duke@435 821 <xsl:value-of select="@id"/>
duke@435 822 </code>
duke@435 823 <xsl:text>)</xsl:text>
duke@435 824 </xsl:if>
duke@435 825 </td>
duke@435 826 </tr>
duke@435 827 <tr bgcolor="#EEEEFF">
duke@435 828 <td>
duke@435 829 Constant
duke@435 830 </td>
duke@435 831 <td>
duke@435 832 Value
duke@435 833 </td>
duke@435 834 <td>
duke@435 835 Description
duke@435 836 </td>
duke@435 837 </tr>
duke@435 838 <xsl:apply-templates select="constant" mode="body"/>
duke@435 839 </table>
duke@435 840 </blockquote>
duke@435 841 </xsl:template>
duke@435 842
duke@435 843 <xsl:template match="constant" mode="index">
duke@435 844 <a>
duke@435 845 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
duke@435 846 </xsl:attribute>
duke@435 847 <code>
duke@435 848 <xsl:value-of select="@id"/>
duke@435 849 </code>
duke@435 850 </a>
duke@435 851 <br/>
duke@435 852 </xsl:template>
duke@435 853
duke@435 854 <xsl:template match="constant" mode="body">
duke@435 855 <tr>
duke@435 856 <td>
duke@435 857 <code>
duke@435 858 <xsl:attribute name="id">
duke@435 859 <xsl:value-of select="@id"/>
duke@435 860 </xsl:attribute>
duke@435 861 <xsl:value-of select="@id"/>
duke@435 862 </code>
duke@435 863 </td>
duke@435 864 <td align="right">
duke@435 865 <xsl:value-of select="@num"/>
duke@435 866 </td>
duke@435 867 <td>
duke@435 868 <xsl:apply-templates/>
duke@435 869 </td>
duke@435 870 </tr>
duke@435 871 </xsl:template>
duke@435 872
duke@435 873 <xsl:template match="basetypes">
duke@435 874 <p>
duke@435 875 <xsl:attribute name="id">
duke@435 876 <xsl:value-of select="@id"/>
duke@435 877 </xsl:attribute>
duke@435 878 </p>
duke@435 879 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 880 <tr bgcolor="#CCCCFF">
duke@435 881 <td colspan="2" align="center" class="tableHeader">
duke@435 882 <xsl:value-of select="@label"/>
duke@435 883 </td>
duke@435 884 </tr>
duke@435 885 <tr bgcolor="#EEEEFF">
duke@435 886 <td>
duke@435 887 Type
duke@435 888 </td>
duke@435 889 <td>
duke@435 890 Description
duke@435 891 </td>
duke@435 892 </tr>
duke@435 893 <xsl:apply-templates select="basetype" mode="body"/>
duke@435 894 </table>
duke@435 895 </xsl:template>
duke@435 896
duke@435 897 <xsl:template match="basetype" mode="body">
duke@435 898 <xsl:choose>
duke@435 899 <xsl:when test="count(definition)=0">
duke@435 900 <tr>
duke@435 901 <td>
duke@435 902 <code>
duke@435 903 <xsl:value-of select="@id"/>
duke@435 904 </code>
duke@435 905 </td>
duke@435 906 <td>
duke@435 907 <a>
duke@435 908 <xsl:attribute name="name">
duke@435 909 <xsl:value-of select="@id"/>
duke@435 910 </xsl:attribute>
duke@435 911 </a>
duke@435 912 <xsl:apply-templates select="description" mode="brief"/>
duke@435 913 </td>
duke@435 914 </tr>
duke@435 915 </xsl:when>
duke@435 916 <xsl:otherwise>
duke@435 917 <tr>
duke@435 918 <td rowspan="2">
duke@435 919 <code>
duke@435 920 <xsl:value-of select="@id"/>
duke@435 921 </code>
duke@435 922 </td>
duke@435 923 <td>
duke@435 924 <a>
duke@435 925 <xsl:attribute name="name">
duke@435 926 <xsl:value-of select="@id"/>
duke@435 927 </xsl:attribute>
duke@435 928 </a>
duke@435 929 <xsl:apply-templates select="description" mode="brief"/>
duke@435 930 </td>
duke@435 931 </tr>
duke@435 932 <tr>
duke@435 933 <td>
duke@435 934 <pre>
duke@435 935 <xsl:apply-templates select="definition"/>
duke@435 936 </pre>
duke@435 937 </td>
duke@435 938 </tr>
duke@435 939 </xsl:otherwise>
duke@435 940 </xsl:choose>
duke@435 941 </xsl:template>
duke@435 942
duke@435 943 <xsl:template match="description">
duke@435 944 <xsl:apply-templates/>
duke@435 945 <p/>
duke@435 946 </xsl:template>
duke@435 947
duke@435 948 <xsl:template match="description" mode="brief">
duke@435 949 <xsl:apply-templates/>
duke@435 950 </xsl:template>
duke@435 951
duke@435 952 <xsl:template match="fieldlink">
duke@435 953 <a>
duke@435 954 <xsl:attribute name="href">#<xsl:value-of select="@struct"/>.<xsl:value-of select="@id"/></xsl:attribute>
duke@435 955 <xsl:choose>
duke@435 956 <xsl:when test=".=''">
duke@435 957 <code>
duke@435 958 <xsl:value-of select="@id"/>
duke@435 959 </code>
duke@435 960 </xsl:when>
duke@435 961 <xsl:otherwise>
duke@435 962 <xsl:apply-templates/>
duke@435 963 </xsl:otherwise>
duke@435 964 </xsl:choose>
duke@435 965 </a>
duke@435 966 </xsl:template>
duke@435 967
duke@435 968 <xsl:template match="paramlink">
duke@435 969 <a>
duke@435 970 <xsl:attribute name="href">#<xsl:value-of select="ancestor::function/@id|ancestor::event/@id"/>.<xsl:value-of select="@id"/>
duke@435 971 </xsl:attribute>
duke@435 972 <xsl:choose>
duke@435 973 <xsl:when test=".=''">
duke@435 974 <code>
duke@435 975 <xsl:value-of select="@id"/>
duke@435 976 </code>
duke@435 977 </xsl:when>
duke@435 978 <xsl:otherwise>
duke@435 979 <xsl:apply-templates/>
duke@435 980 </xsl:otherwise>
duke@435 981 </xsl:choose>
duke@435 982 </a>
duke@435 983 </xsl:template>
duke@435 984
duke@435 985 <xsl:template match="eventlink|errorlink|typelink|datalink|functionlink">
duke@435 986 <a>
duke@435 987 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 988 <xsl:choose>
duke@435 989 <xsl:when test=".=''">
duke@435 990 <code>
duke@435 991 <xsl:value-of select="@id"/>
duke@435 992 </code>
duke@435 993 </xsl:when>
duke@435 994 <xsl:otherwise>
duke@435 995 <xsl:apply-templates/>
duke@435 996 </xsl:otherwise>
duke@435 997 </xsl:choose>
duke@435 998 </a>
duke@435 999 </xsl:template>
duke@435 1000
duke@435 1001 <xsl:template match="functionphaselist">
duke@435 1002 <xsl:variable name="phase" select="@phase"/>
duke@435 1003 <ul>
duke@435 1004 <xsl:for-each select="/specification/functionsection/category/function[@phase=$phase and count(@hide)=0]">
duke@435 1005 <li>
duke@435 1006 <a>
duke@435 1007 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 1008 <b>
duke@435 1009 <xsl:value-of select="@id"/>
duke@435 1010 </b>
duke@435 1011 </a>
duke@435 1012 </li>
duke@435 1013 </xsl:for-each>
duke@435 1014 </ul>
duke@435 1015 </xsl:template>
duke@435 1016
duke@435 1017 <xsl:template match="eventphaselist">
duke@435 1018 <xsl:variable name="phase" select="@phase"/>
duke@435 1019 <ul>
duke@435 1020 <xsl:for-each select="//eventsection/event[@phase=$phase]">
duke@435 1021 <li>
duke@435 1022 <a>
duke@435 1023 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 1024 <b>
duke@435 1025 <xsl:value-of select="@id"/>
duke@435 1026 </b>
duke@435 1027 </a>
duke@435 1028 </li>
duke@435 1029 </xsl:for-each>
duke@435 1030 </ul>
duke@435 1031 </xsl:template>
duke@435 1032
duke@435 1033 <xsl:template match="externallink">
duke@435 1034 <a>
duke@435 1035 <xsl:attribute name="href">
duke@435 1036 <xsl:value-of select="@id"/>
duke@435 1037 </xsl:attribute>
duke@435 1038 <xsl:value-of select="."/>
duke@435 1039 </a>
duke@435 1040 </xsl:template>
duke@435 1041
kamg@2862 1042 <xsl:template match="vmspec">
kamg@2862 1043 <cite>
kamg@2862 1044 <xsl:text>The Java&#8482; Virtual Machine Specification</xsl:text>
kamg@2862 1045 <xsl:if test="count(@chapter)=1">
kamg@2862 1046 <xsl:text>, Chapter </xsl:text>
kamg@2862 1047 <xsl:value-of select="@chapter"/>
kamg@2862 1048 </xsl:if>
kamg@2862 1049 </cite>
duke@435 1050 </xsl:template>
duke@435 1051
duke@435 1052 <xsl:template match="internallink">
duke@435 1053 <a>
duke@435 1054 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 1055 <xsl:apply-templates/>
duke@435 1056 </a>
duke@435 1057 </xsl:template>
duke@435 1058
duke@435 1059 <xsl:template match="parameters" mode="body">
duke@435 1060 <p/>
duke@435 1061 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1062 <tr bgcolor="#CCCCFF">
duke@435 1063 <td colspan="3" align="center" class="tableHeader">
duke@435 1064 Parameters
duke@435 1065 </td>
duke@435 1066 </tr>
duke@435 1067 <tr bgcolor="#EEEEFF">
duke@435 1068 <td>
duke@435 1069 Name
duke@435 1070 </td>
duke@435 1071 <td>
duke@435 1072 Type
duke@435 1073 </td>
duke@435 1074 <td>
duke@435 1075 Description
duke@435 1076 </td>
duke@435 1077 </tr>
duke@435 1078 <xsl:apply-templates select="param[count(jclass/@method)=0]" mode="body"/>
duke@435 1079 </table>
duke@435 1080 </xsl:template>
duke@435 1081
duke@435 1082 <xsl:template match="param" mode="body">
duke@435 1083 <tr>
duke@435 1084 <td>
duke@435 1085 <code>
duke@435 1086 <xsl:attribute name="id">
duke@435 1087 <xsl:value-of select="../../@id"/>.<xsl:value-of select="@id"/>
duke@435 1088 </xsl:attribute>
duke@435 1089 <xsl:value-of select="@id"/>
duke@435 1090 </code>
duke@435 1091 </td>
duke@435 1092 <td>
duke@435 1093 <code>
duke@435 1094 <xsl:apply-templates select="child::*[position()=1]" mode="link"/>
duke@435 1095 </code>
duke@435 1096 </td>
duke@435 1097 <td>
duke@435 1098 <xsl:apply-templates select="description" mode="brief"/>
duke@435 1099 <xsl:if test="count(ancestor::function)=1">
duke@435 1100 <xsl:apply-templates select="child::*[position()=1]" mode="funcdescription"/>
duke@435 1101 </xsl:if>
duke@435 1102 </td>
duke@435 1103 </tr>
duke@435 1104 </xsl:template>
duke@435 1105
duke@435 1106 <xsl:template match="capabilities">
duke@435 1107 <p/>
duke@435 1108 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1109 <tr bgcolor="#CCCCFF">
duke@435 1110 <td colspan="2" align="center" class="tableHeader">
duke@435 1111 Capabilities
duke@435 1112 </td>
duke@435 1113 </tr>
duke@435 1114 <xsl:choose>
duke@435 1115 <xsl:when test="count(required)=0">
duke@435 1116 <tr>
duke@435 1117 <td colspan="2">
duke@435 1118 <b>Required Functionality</b>
duke@435 1119 </td>
duke@435 1120 </tr>
duke@435 1121 </xsl:when>
duke@435 1122 <xsl:otherwise>
duke@435 1123 <tr>
duke@435 1124 <td colspan="2">
duke@435 1125 <b>Optional Functionality:</b> might not be implemented for all
duke@435 1126 virtual machines.
duke@435 1127 <xsl:choose>
duke@435 1128 <xsl:when test="count(required)=1">
duke@435 1129 The following capability
duke@435 1130 </xsl:when>
duke@435 1131 <xsl:otherwise>
duke@435 1132 One of the following capabilities
duke@435 1133 </xsl:otherwise>
duke@435 1134 </xsl:choose>
duke@435 1135 (as returned by
duke@435 1136 <a href="#GetCapabilities"><code>GetCapabilities</code></a>)
duke@435 1137 must be true to use this
duke@435 1138 <xsl:choose>
duke@435 1139 <xsl:when test="ancestor::function">
duke@435 1140 function.
duke@435 1141 </xsl:when>
duke@435 1142 <xsl:otherwise>
duke@435 1143 event.
duke@435 1144 </xsl:otherwise>
duke@435 1145 </xsl:choose>
duke@435 1146 </td>
duke@435 1147 </tr>
duke@435 1148 <tr bgcolor="#EEEEFF">
duke@435 1149 <td >
duke@435 1150 Capability
duke@435 1151 </td>
duke@435 1152 <td>
duke@435 1153 Effect
duke@435 1154 </td>
duke@435 1155 </tr>
duke@435 1156 <xsl:apply-templates select="required"/>
duke@435 1157 </xsl:otherwise>
duke@435 1158 </xsl:choose>
duke@435 1159 <xsl:if test="count(capability)!=0">
duke@435 1160 <tr bgcolor="#CCCCFF">
duke@435 1161 <td colspan="2" align="center">
duke@435 1162 Optional Features
duke@435 1163 </td>
duke@435 1164 </tr>
duke@435 1165 <xsl:if test="count(required)=0">
duke@435 1166 <tr bgcolor="#EEEEFF">
duke@435 1167 <td >
duke@435 1168 Capability
duke@435 1169 </td>
duke@435 1170 <td>
duke@435 1171 Effect
duke@435 1172 </td>
duke@435 1173 </tr>
duke@435 1174 </xsl:if>
duke@435 1175 <xsl:apply-templates select="capability"/>
duke@435 1176 </xsl:if>
duke@435 1177 </table>
duke@435 1178 </xsl:template>
duke@435 1179
duke@435 1180 <xsl:template match="eventcapabilities">
duke@435 1181 <p/>
duke@435 1182 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1183 <tr bgcolor="#CCCCFF">
duke@435 1184 <td colspan="2" align="center" class="tableHeader">
duke@435 1185 Capabilities
duke@435 1186 </td>
duke@435 1187 </tr>
duke@435 1188 <tr>
duke@435 1189 <td colspan="2">
duke@435 1190 <b>Required Functionality</b>
duke@435 1191 </td>
duke@435 1192 </tr>
duke@435 1193 <tr bgcolor="#CCCCFF">
duke@435 1194 <td colspan="2" align="center">
duke@435 1195 Event Enabling Capabilities
duke@435 1196 </td>
duke@435 1197 </tr>
duke@435 1198 <tr bgcolor="#EEEEFF">
duke@435 1199 <td >
duke@435 1200 Capability
duke@435 1201 </td>
duke@435 1202 <td>
duke@435 1203 Events
duke@435 1204 </td>
duke@435 1205 </tr>
duke@435 1206 <xsl:for-each select="//capabilityfield">
duke@435 1207 <xsl:variable name="capa" select="@id"/>
duke@435 1208 <xsl:variable name="events" select="//event[capabilities/required/@id=$capa]"/>
duke@435 1209 <xsl:if test="count($events)">
duke@435 1210 <tr>
duke@435 1211 <td>
duke@435 1212 <a>
duke@435 1213 <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>
duke@435 1214 </xsl:attribute>
duke@435 1215 <code>
duke@435 1216 <xsl:value-of select="@id"/>
duke@435 1217 </code>
duke@435 1218 </a>
duke@435 1219 </td>
duke@435 1220 <td>
duke@435 1221 <xsl:for-each select="$events">
duke@435 1222 <a>
duke@435 1223 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
duke@435 1224 </xsl:attribute>
duke@435 1225 <code>
duke@435 1226 <xsl:value-of select="@id"/>
duke@435 1227 </code>
duke@435 1228 </a>
duke@435 1229 <br/>
duke@435 1230 </xsl:for-each>
duke@435 1231 </td>
duke@435 1232 </tr>
duke@435 1233 </xsl:if>
duke@435 1234 </xsl:for-each>
duke@435 1235 </table>
duke@435 1236 </xsl:template>
duke@435 1237
duke@435 1238 <xsl:template match="capability|required">
duke@435 1239 <tr>
duke@435 1240 <td>
duke@435 1241 <a>
duke@435 1242 <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>
duke@435 1243 </xsl:attribute>
duke@435 1244 <code>
duke@435 1245 <xsl:value-of select="@id"/>
duke@435 1246 </code>
duke@435 1247 </a>
duke@435 1248 </td>
duke@435 1249 <td>
duke@435 1250 <xsl:choose>
duke@435 1251 <xsl:when test=".=''">
duke@435 1252 <xsl:variable name="desiredID" select="@id"/>
duke@435 1253 <xsl:for-each select="//capabilityfield[@id=$desiredID]">
duke@435 1254 <xsl:apply-templates select="description" mode="brief"/>
duke@435 1255 </xsl:for-each>
duke@435 1256 </xsl:when>
duke@435 1257 <xsl:otherwise>
duke@435 1258 <xsl:apply-templates/>
duke@435 1259 </xsl:otherwise>
duke@435 1260 </xsl:choose>
duke@435 1261 </td>
duke@435 1262 </tr>
duke@435 1263 </xsl:template>
duke@435 1264
duke@435 1265 <xsl:template match="function" mode="errors">
duke@435 1266 <xsl:variable name="haserrors">
duke@435 1267 <xsl:apply-templates select="capabilities/required" mode="haserrors"/>
duke@435 1268 <xsl:apply-templates select="errors/error" mode="haserrors"/>
duke@435 1269 <xsl:apply-templates select="parameters/param" mode="haserrors"/>
duke@435 1270 </xsl:variable>
duke@435 1271 <p/>
duke@435 1272 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1273 <tr bgcolor="#CCCCFF">
duke@435 1274 <td colspan="2" align="center" class="tableHeader">
duke@435 1275 Errors
duke@435 1276 </td>
duke@435 1277 </tr>
duke@435 1278 <xsl:choose>
duke@435 1279 <xsl:when test="contains($haserrors,'yes')">
duke@435 1280 <tr>
duke@435 1281 <td colspan="2">
duke@435 1282 This function returns either a
duke@435 1283 <a href="#universal-error">universal error</a>
duke@435 1284 or one of the following errors
duke@435 1285 </td>
duke@435 1286 </tr>
duke@435 1287 <tr bgcolor="#EEEEFF">
duke@435 1288 <td>
duke@435 1289 Error
duke@435 1290 </td>
duke@435 1291 <td>
duke@435 1292 Description
duke@435 1293 </td>
duke@435 1294 </tr>
duke@435 1295 <xsl:apply-templates select="capabilities/required" mode="errors"/>
duke@435 1296 <xsl:apply-templates select="errors/error"/>
duke@435 1297 <xsl:apply-templates select="parameters/param" mode="errors"/>
duke@435 1298 </xsl:when>
duke@435 1299 <xsl:otherwise>
duke@435 1300 <tr>
duke@435 1301 <td colspan="2">
duke@435 1302 This function returns a
duke@435 1303 <a href="#universal-error">universal error</a>
duke@435 1304 </td>
duke@435 1305 </tr>
duke@435 1306 </xsl:otherwise>
duke@435 1307 </xsl:choose>
duke@435 1308 </table>
duke@435 1309 </xsl:template>
duke@435 1310
duke@435 1311 <xsl:template match="required" mode="haserrors">
duke@435 1312 yes
duke@435 1313 </xsl:template>
duke@435 1314
duke@435 1315 <xsl:template match="required" mode="errors">
duke@435 1316 <tr>
duke@435 1317 <td>
duke@435 1318 <a href="#JVMTI_ERROR_MUST_POSSESS_CAPABILITY">
duke@435 1319 <code>
duke@435 1320 JVMTI_ERROR_MUST_POSSESS_CAPABILITY
duke@435 1321 </code>
duke@435 1322 </a>
duke@435 1323 </td>
duke@435 1324 <td>
duke@435 1325 The environment does not possess the capability
duke@435 1326 <a>
duke@435 1327 <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/></xsl:attribute>
duke@435 1328 <code>
duke@435 1329 <xsl:value-of select="@id"/>
duke@435 1330 </code>
duke@435 1331 </a>.
duke@435 1332 Use <a href="#AddCapabilities"><code>AddCapabilities</code></a>.
duke@435 1333 </td>
duke@435 1334 </tr>
duke@435 1335 </xsl:template>
duke@435 1336
duke@435 1337 <xsl:template match="param" mode="haserrors">
duke@435 1338 <xsl:apply-templates mode="haserrors"/>
duke@435 1339 </xsl:template>
duke@435 1340
duke@435 1341 <xsl:template match="param" mode="errors">
duke@435 1342 <xsl:apply-templates select="." mode="errors1"/>
duke@435 1343 <xsl:apply-templates select="." mode="errors2"/>
duke@435 1344 </xsl:template>
duke@435 1345
duke@435 1346 <xsl:template match="param" mode="errors1">
duke@435 1347 <xsl:variable name="haserrors">
duke@435 1348 <xsl:apply-templates mode="haserrors"/>
duke@435 1349 </xsl:variable>
duke@435 1350 <xsl:if test="contains($haserrors,'yes')!=0">
duke@435 1351 <xsl:variable name="erroridraw">
duke@435 1352 <xsl:apply-templates mode="errorid"/>
duke@435 1353 </xsl:variable>
duke@435 1354 <xsl:variable name="errorid" select="normalize-space($erroridraw)"/>
duke@435 1355 <tr>
duke@435 1356 <td>
duke@435 1357 <a>
duke@435 1358 <xsl:attribute name="href">#<xsl:value-of select="$errorid"/></xsl:attribute>
duke@435 1359 <code>
duke@435 1360 <xsl:value-of select="$errorid"/>
duke@435 1361 </code>
duke@435 1362 </a>
duke@435 1363 </td>
duke@435 1364 <td>
duke@435 1365 <xsl:apply-templates mode="errordesc">
duke@435 1366 <xsl:with-param name="id" select="@id"/>
duke@435 1367 </xsl:apply-templates>
duke@435 1368 </td>
duke@435 1369 </tr>
duke@435 1370 </xsl:if>
duke@435 1371 </xsl:template>
duke@435 1372
duke@435 1373 <xsl:template match="param" mode="errors2">
duke@435 1374 <xsl:variable name="haserrors2">
duke@435 1375 <xsl:apply-templates mode="haserrors2"/>
duke@435 1376 </xsl:variable>
duke@435 1377 <xsl:if test="contains($haserrors2,'yes')!=0">
duke@435 1378 <xsl:variable name="erroridraw2">
duke@435 1379 <xsl:apply-templates mode="errorid2"/>
duke@435 1380 </xsl:variable>
duke@435 1381 <xsl:variable name="errorid2" select="normalize-space($erroridraw2)"/>
duke@435 1382 <tr>
duke@435 1383 <td>
duke@435 1384 <a>
duke@435 1385 <xsl:attribute name="href">#<xsl:value-of select="$errorid2"/></xsl:attribute>
duke@435 1386 <code>
duke@435 1387 <xsl:value-of select="$errorid2"/>
duke@435 1388 </code>
duke@435 1389 </a>
duke@435 1390 </td>
duke@435 1391 <td>
duke@435 1392 <xsl:apply-templates mode="errordesc2">
duke@435 1393 <xsl:with-param name="id" select="@id"/>
duke@435 1394 </xsl:apply-templates>
duke@435 1395 </td>
duke@435 1396 </tr>
duke@435 1397 </xsl:if>
duke@435 1398 </xsl:template>
duke@435 1399
duke@435 1400 <xsl:template match="description" mode="haserrors">
duke@435 1401 </xsl:template>
duke@435 1402
duke@435 1403 <xsl:template match="description" mode="errorid">
duke@435 1404 </xsl:template>
duke@435 1405
duke@435 1406 <xsl:template match="description" mode="errordesc">
duke@435 1407 </xsl:template>
duke@435 1408
duke@435 1409 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jthread|jthreadGroup|jobject|enum|jlocation" mode="haserrors">
duke@435 1410 yes
duke@435 1411 </xsl:template>
duke@435 1412
duke@435 1413 <xsl:template match="jclass" mode="haserrors">
duke@435 1414 <xsl:if test="count(@method)=0">
duke@435 1415 yes
duke@435 1416 </xsl:if>
duke@435 1417 </xsl:template>
duke@435 1418
duke@435 1419 <xsl:template match="description|jclass|jfieldID|jrawMonitorID|
duke@435 1420 jthreadGroup|jobject|enum|jlocation|jvalue|jchar|jint|jlong|jfloat|jdouble|jboolean|
duke@435 1421 char|uchar|size_t|void|varargs|struct|
duke@435 1422 ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="haserrors2">
duke@435 1423 </xsl:template>
duke@435 1424
duke@435 1425 <xsl:template match="jmethodID" mode="haserrors2">
duke@435 1426 <xsl:if test="count(@native)=1 and contains(@native,'error')">
duke@435 1427 yes
duke@435 1428 </xsl:if>
duke@435 1429 </xsl:template>
duke@435 1430
duke@435 1431 <xsl:template match="jthread" mode="haserrors2">
duke@435 1432 <xsl:if test="count(@started)=0 or contains(@started,'yes') or @started=''">
duke@435 1433 yes
duke@435 1434 </xsl:if>
duke@435 1435 </xsl:template>
duke@435 1436
duke@435 1437 <xsl:template match="jframeID" mode="haserrors2">
duke@435 1438 yes
duke@435 1439 </xsl:template>
duke@435 1440
duke@435 1441 <xsl:template match="description" mode="errorid2">
duke@435 1442 </xsl:template>
duke@435 1443
duke@435 1444 <xsl:template match="description" mode="errordesc2">
duke@435 1445 </xsl:template>
duke@435 1446
duke@435 1447 <xsl:template match="jmethodID" mode="errorid">
duke@435 1448 <xsl:text>JVMTI_ERROR_INVALID_METHODID</xsl:text>
duke@435 1449 </xsl:template>
duke@435 1450
duke@435 1451 <xsl:template match="jmethodID" mode="errorid2">
duke@435 1452 <xsl:text>JVMTI_ERROR_NATIVE_METHOD</xsl:text>
duke@435 1453 </xsl:template>
duke@435 1454
duke@435 1455 <xsl:template match="jmethodID" mode="errordesc">
duke@435 1456 <xsl:param name="id"/>
duke@435 1457 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1458 <xsl:text> is not a jmethodID.</xsl:text>
duke@435 1459 </xsl:template>
duke@435 1460
duke@435 1461 <xsl:template match="jmethodID" mode="errordesc2">
duke@435 1462 <xsl:param name="id"/>
duke@435 1463 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1464 <xsl:text> is a native method.</xsl:text>
duke@435 1465 </xsl:template>
duke@435 1466
duke@435 1467 <xsl:template match="jfieldID" mode="errorid">
duke@435 1468 <xsl:text>JVMTI_ERROR_INVALID_FIELDID</xsl:text>
duke@435 1469 </xsl:template>
duke@435 1470
duke@435 1471 <xsl:template match="jfieldID" mode="errordesc">
duke@435 1472 <xsl:param name="id"/>
duke@435 1473 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1474 <xsl:text> is not a jfieldID.</xsl:text>
duke@435 1475 </xsl:template>
duke@435 1476
duke@435 1477 <xsl:template match="jframeID" mode="errorid">
duke@435 1478 <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>
duke@435 1479 </xsl:template>
duke@435 1480
duke@435 1481 <xsl:template match="jframeID" mode="errorid2">
duke@435 1482 <xsl:text>JVMTI_ERROR_NO_MORE_FRAMES</xsl:text>
duke@435 1483 </xsl:template>
duke@435 1484
duke@435 1485 <xsl:template match="jframeID" mode="errordesc">
duke@435 1486 <xsl:param name="id"/>
duke@435 1487 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1488 <xsl:text> is less than zero.</xsl:text>
duke@435 1489 </xsl:template>
duke@435 1490
duke@435 1491 <xsl:template match="jframeID" mode="errordesc2">
duke@435 1492 <xsl:param name="id"/>
duke@435 1493 <xsl:text>There are no stack frames at the specified </xsl:text>
duke@435 1494 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1495 <xsl:text>.</xsl:text>
duke@435 1496 </xsl:template>
duke@435 1497
duke@435 1498 <xsl:template match="jrawMonitorID" mode="errorid">
duke@435 1499 <xsl:text>JVMTI_ERROR_INVALID_MONITOR</xsl:text>
duke@435 1500 </xsl:template>
duke@435 1501
duke@435 1502 <xsl:template match="jrawMonitorID" mode="errordesc">
duke@435 1503 <xsl:param name="id"/>
duke@435 1504 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1505 <xsl:text> is not a jrawMonitorID.</xsl:text>
duke@435 1506 </xsl:template>
duke@435 1507
duke@435 1508 <xsl:template match="jclass" mode="errorid">
duke@435 1509 <xsl:text>JVMTI_ERROR_INVALID_CLASS</xsl:text>
duke@435 1510 </xsl:template>
duke@435 1511
duke@435 1512 <xsl:template match="jclass" mode="errordesc">
duke@435 1513 <xsl:param name="id"/>
duke@435 1514 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1515 <xsl:text> is not a class object or the class has been unloaded.</xsl:text>
duke@435 1516 </xsl:template>
duke@435 1517
duke@435 1518 <xsl:template match="jthread" mode="errorid">
duke@435 1519 <xsl:text>JVMTI_ERROR_INVALID_THREAD</xsl:text>
duke@435 1520 </xsl:template>
duke@435 1521
duke@435 1522 <xsl:template match="jthread" mode="errorid2">
duke@435 1523 <xsl:text>JVMTI_ERROR_THREAD_NOT_ALIVE</xsl:text>
duke@435 1524 </xsl:template>
duke@435 1525
duke@435 1526 <xsl:template match="jthread" mode="errordesc">
duke@435 1527 <xsl:param name="id"/>
duke@435 1528 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1529 <xsl:text> is not a thread object.</xsl:text>
duke@435 1530 </xsl:template>
duke@435 1531
duke@435 1532 <xsl:template match="jthread" mode="errordesc2">
duke@435 1533 <xsl:param name="id"/>
duke@435 1534 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1535 <xsl:text> is not live (has not been started or is now dead).</xsl:text>
duke@435 1536 </xsl:template>
duke@435 1537
duke@435 1538 <xsl:template match="jthreadGroup" mode="errorid">
duke@435 1539 <xsl:text>JVMTI_ERROR_INVALID_THREAD_GROUP</xsl:text>
duke@435 1540 </xsl:template>
duke@435 1541
duke@435 1542 <xsl:template match="jthreadGroup" mode="errordesc">
duke@435 1543 <xsl:param name="id"/>
duke@435 1544 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1545 <xsl:text> is not a thread group object.</xsl:text>
duke@435 1546 </xsl:template>
duke@435 1547
duke@435 1548 <xsl:template match="jobject" mode="errorid">
duke@435 1549 <xsl:text>JVMTI_ERROR_INVALID_OBJECT</xsl:text>
duke@435 1550 </xsl:template>
duke@435 1551
duke@435 1552 <xsl:template match="jobject" mode="errordesc">
duke@435 1553 <xsl:param name="id"/>
duke@435 1554 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1555 <xsl:text> is not an object.</xsl:text>
duke@435 1556 </xsl:template>
duke@435 1557
duke@435 1558 <xsl:template match="enum" mode="errorid">
duke@435 1559 <xsl:choose>
duke@435 1560 <xsl:when test=".='jvmtiEvent'">
duke@435 1561 <xsl:text>JVMTI_ERROR_INVALID_EVENT_TYPE</xsl:text>
duke@435 1562 </xsl:when>
duke@435 1563 <xsl:otherwise>
duke@435 1564 <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>
duke@435 1565 </xsl:otherwise>
duke@435 1566 </xsl:choose>
duke@435 1567 </xsl:template>
duke@435 1568
duke@435 1569 <xsl:template match="enum" mode="errordesc">
duke@435 1570 <xsl:param name="id"/>
duke@435 1571 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1572 <xsl:text> is not a </xsl:text>
duke@435 1573 <xsl:value-of select="."/>
duke@435 1574 <xsl:text>.</xsl:text>
duke@435 1575 </xsl:template>
duke@435 1576
duke@435 1577 <xsl:template match="jlocation" mode="errorid">
duke@435 1578 <xsl:text>JVMTI_ERROR_INVALID_LOCATION</xsl:text>
duke@435 1579 </xsl:template>
duke@435 1580
duke@435 1581 <xsl:template match="jlocation" mode="errordesc">
duke@435 1582 <xsl:param name="id"/>
duke@435 1583 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1584 <xsl:text> is not a valid location.</xsl:text>
duke@435 1585 </xsl:template>
duke@435 1586
duke@435 1587 <xsl:template match="jint" mode="haserrors">
duke@435 1588 <xsl:if test="count(@min)=1">
duke@435 1589 yes
duke@435 1590 </xsl:if>
duke@435 1591 </xsl:template>
duke@435 1592
duke@435 1593 <xsl:template match="jint" mode="errorid">
duke@435 1594 <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>
duke@435 1595 </xsl:template>
duke@435 1596
duke@435 1597 <xsl:template match="jint" mode="errordesc">
duke@435 1598 <xsl:param name="id"/>
duke@435 1599 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1600 <xsl:text> is less than </xsl:text>
duke@435 1601 <code><xsl:value-of select="@min"/></code>
duke@435 1602 <xsl:text>.</xsl:text>
duke@435 1603 </xsl:template>
duke@435 1604
duke@435 1605 <xsl:template match="jvalue|jchar|jlong|jfloat|jdouble|jboolean|char|uchar|size_t|void|varargs|struct" mode="haserrors">
duke@435 1606 </xsl:template>
duke@435 1607
duke@435 1608 <xsl:template match="jvalue|jchar|jlong|jfloat|jdouble|jboolean|char|uchar|size_t|void|varargs|struct" mode="errordesc">
duke@435 1609 <xsl:param name="id"/>
duke@435 1610 <xsl:message terminate="yes">
duke@435 1611 attempt to get error description for <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1612 </xsl:message>
duke@435 1613 </xsl:template>
duke@435 1614
duke@435 1615 <xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="haserrors">
duke@435 1616 <xsl:if test="count(nullok)=0">
duke@435 1617 yes
duke@435 1618 </xsl:if>
duke@435 1619 </xsl:template>
duke@435 1620
duke@435 1621 <xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="errorid">
duke@435 1622 <xsl:text>JVMTI_ERROR_NULL_POINTER</xsl:text>
duke@435 1623 </xsl:template>
duke@435 1624
duke@435 1625 <xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="errordesc">
duke@435 1626 <xsl:param name="id"/>
duke@435 1627 <xsl:if test="count(nullok)=1">
duke@435 1628 <xsl:message terminate="yes">
duke@435 1629 attempt to get error description in null ok case for <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1630 </xsl:message>
duke@435 1631 </xsl:if>
duke@435 1632 <xsl:apply-templates select="." mode="paramlink"/>
duke@435 1633 <xsl:text> is </xsl:text>
duke@435 1634 <code>NULL</code>
duke@435 1635 <xsl:text>.</xsl:text>
duke@435 1636 </xsl:template>
duke@435 1637
duke@435 1638 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jint|jclass|jthread|jthreadGroup|jobject|enum|jlocation|ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="paramlink">
duke@435 1639 <a>
duke@435 1640 <xsl:attribute name="href">#<xsl:value-of select="ancestor::function/@id|ancestor::event/@id"/>.<xsl:value-of select="ancestor::param/@id"/>
duke@435 1641 </xsl:attribute>
duke@435 1642 <code>
duke@435 1643 <xsl:value-of select="ancestor::param/@id"/>
duke@435 1644 </code>
duke@435 1645 </a>
duke@435 1646 </xsl:template>
duke@435 1647
duke@435 1648 <xsl:template match="error" mode="haserrors">
duke@435 1649 yes
duke@435 1650 </xsl:template>
duke@435 1651
duke@435 1652 <xsl:template match="error">
duke@435 1653 <tr>
duke@435 1654 <td>
duke@435 1655 <a>
duke@435 1656 <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
duke@435 1657 <code>
duke@435 1658 <xsl:value-of select="@id"/>
duke@435 1659 </code>
duke@435 1660 </a>
duke@435 1661 </td>
duke@435 1662 <td>
duke@435 1663 <xsl:apply-templates/>
duke@435 1664 </td>
duke@435 1665 </tr>
duke@435 1666 </xsl:template>
duke@435 1667
duke@435 1668 <xsl:template match="errorsection">
duke@435 1669 <p/>
duke@435 1670 <hr noshade="noshade" size="3"/>
duke@435 1671 <h2>
duke@435 1672 Errors
duke@435 1673 </h2>
duke@435 1674 <p/>
duke@435 1675 <xsl:apply-templates select="intro"/>
duke@435 1676 <p/>
duke@435 1677 <xsl:apply-templates select="errorcategory"/>
duke@435 1678 <p/>
duke@435 1679 </xsl:template>
duke@435 1680
duke@435 1681 <xsl:template match="datasection">
duke@435 1682 <p/>
duke@435 1683 <hr noshade="noshade" size="3"/>
duke@435 1684 <h2>
duke@435 1685 Data Types
duke@435 1686 </h2>
duke@435 1687 <p/>
duke@435 1688 <xsl:apply-templates select="intro"/>
duke@435 1689 <xsl:apply-templates select="basetypes"/>
duke@435 1690 <p/>
duke@435 1691 <a name="StructureTypeDefinitions"></a>
duke@435 1692 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1693 <tr bgcolor="#CCCCFF">
duke@435 1694 <td colspan="2" align="center" class="tableHeader">
duke@435 1695 Structure Type Definitions
duke@435 1696 </td>
duke@435 1697 </tr>
duke@435 1698 <tr bgcolor="#EEEEFF">
duke@435 1699 <td>
duke@435 1700 Type
duke@435 1701 </td>
duke@435 1702 <td>
duke@435 1703 Description
duke@435 1704 </td>
duke@435 1705 </tr>
duke@435 1706 <xsl:apply-templates select="//typedef|//uniontypedef|//capabilitiestypedef" mode="tableentry">
duke@435 1707 <xsl:sort select="@id"/>
duke@435 1708 </xsl:apply-templates>
duke@435 1709 </table>
duke@435 1710 <p/>
duke@435 1711 <a name="FunctionTypeDefinitions"></a>
duke@435 1712 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1713 <tr bgcolor="#CCCCFF">
duke@435 1714 <td colspan="2" align="center" class="tableHeader">
duke@435 1715 Function Type Definitions
duke@435 1716 </td>
duke@435 1717 </tr>
duke@435 1718 <tr bgcolor="#EEEEFF">
duke@435 1719 <td>
duke@435 1720 Type
duke@435 1721 </td>
duke@435 1722 <td>
duke@435 1723 Description
duke@435 1724 </td>
duke@435 1725 </tr>
duke@435 1726 <xsl:apply-templates select="//callback" mode="tableentry">
duke@435 1727 <xsl:sort select="@id"/>
duke@435 1728 </xsl:apply-templates>
duke@435 1729 </table>
duke@435 1730 <p/>
duke@435 1731 <a name="EnumerationDefinitions"></a>
duke@435 1732 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1733 <tr bgcolor="#CCCCFF">
duke@435 1734 <td colspan="2" align="center" class="tableHeader">
duke@435 1735 Enumeration Definitions
duke@435 1736 </td>
duke@435 1737 </tr>
duke@435 1738 <tr bgcolor="#EEEEFF">
duke@435 1739 <td>
duke@435 1740 Type
duke@435 1741 </td>
duke@435 1742 <td>
duke@435 1743 Description
duke@435 1744 </td>
duke@435 1745 </tr>
duke@435 1746 <xsl:apply-templates select="//constants[@kind='enum']" mode="tableentry">
duke@435 1747 <xsl:sort select="@id"/>
duke@435 1748 </xsl:apply-templates>
duke@435 1749 </table>
duke@435 1750 <p/>
duke@435 1751 <a name="FunctionTable"></a>
duke@435 1752 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1753 <tr bgcolor="#CCCCFF">
duke@435 1754 <td colspan="3" align="center" class="tableHeader">
duke@435 1755 Function Table Layout
duke@435 1756 </td>
duke@435 1757 </tr>
duke@435 1758 <tr bgcolor="#EEEEFF">
duke@435 1759 <td>
duke@435 1760 Position
duke@435 1761 </td>
duke@435 1762 <td>
duke@435 1763 Function
duke@435 1764 </td>
duke@435 1765 <td>
duke@435 1766 Declaration
duke@435 1767 </td>
duke@435 1768 </tr>
duke@435 1769 <xsl:call-template name="funcStruct">
duke@435 1770 <xsl:with-param name="funcs" select="//functionsection/category/function[count(@hide)=0]"/>
duke@435 1771 <xsl:with-param name="index" select="1"/>
duke@435 1772 </xsl:call-template>
duke@435 1773 </table>
duke@435 1774 <p/>
duke@435 1775 </xsl:template>
duke@435 1776
duke@435 1777
duke@435 1778 <xsl:template name="funcStruct">
duke@435 1779 <xsl:param name="funcs"/>
duke@435 1780 <xsl:param name="index"/>
duke@435 1781 <xsl:variable name="thisFunction" select="$funcs[@num=$index]"/>
duke@435 1782 <tr>
duke@435 1783 <td align="right">
duke@435 1784 <xsl:number value="$index" format=" 1"/>
duke@435 1785 </td>
duke@435 1786 <xsl:choose>
duke@435 1787 <xsl:when test="count($thisFunction)=1">
duke@435 1788 <td>
duke@435 1789 <a>
duke@435 1790 <xsl:attribute name="href">
duke@435 1791 <xsl:text>#</xsl:text>
duke@435 1792 <xsl:value-of select="$thisFunction/@id"/>
duke@435 1793 </xsl:attribute>
duke@435 1794 <xsl:value-of select="$thisFunction/synopsis"/>
duke@435 1795 </a>
duke@435 1796 </td>
duke@435 1797 <td>
duke@435 1798 <pre>
duke@435 1799 <xsl:text>jvmtiError (JNICALL *</xsl:text>
duke@435 1800 <xsl:value-of select="$thisFunction/@id"/>
duke@435 1801 <xsl:text>) (jvmtiEnv* env</xsl:text>
duke@435 1802 <xsl:apply-templates select="$thisFunction/parameters" mode="signature">
duke@435 1803 <xsl:with-param name="comma">
duke@435 1804 <xsl:text>, &#xA; </xsl:text>
duke@435 1805 </xsl:with-param>
duke@435 1806 </xsl:apply-templates>
duke@435 1807 <xsl:text>);</xsl:text>
duke@435 1808 </pre>
duke@435 1809 </td>
duke@435 1810 </xsl:when>
duke@435 1811 <xsl:otherwise>
duke@435 1812 <xsl:if test="count($thisFunction) != 0">
duke@435 1813 <xsl:message terminate="yes">
duke@435 1814 More than one function has index number <xsl:number value="$index" format=" 1"/>.
duke@435 1815 </xsl:message>
duke@435 1816 </xsl:if>
duke@435 1817 <td>
duke@435 1818 <i>reserved</i>
duke@435 1819 </td>
duke@435 1820 <td>
duke@435 1821 <pre>
duke@435 1822 <xsl:text>void *reserved</xsl:text>
duke@435 1823 <xsl:value-of select="$index"/>
duke@435 1824 <xsl:text>;</xsl:text>
duke@435 1825 </pre>
duke@435 1826 </td>
duke@435 1827 </xsl:otherwise>
duke@435 1828 </xsl:choose>
duke@435 1829 </tr>
duke@435 1830 <xsl:if test="count($funcs[@num &gt; $index]) &gt; 0">
duke@435 1831 <xsl:call-template name="funcStruct">
duke@435 1832 <xsl:with-param name="funcs" select="$funcs"/>
duke@435 1833 <xsl:with-param name="index" select="1+$index"/>
duke@435 1834 </xsl:call-template>
duke@435 1835 </xsl:if>
duke@435 1836 </xsl:template>
duke@435 1837
duke@435 1838
duke@435 1839
duke@435 1840 <xsl:template match="errorcategory">
duke@435 1841 <h3>
duke@435 1842 <xsl:attribute name="id">
duke@435 1843 <xsl:value-of select="@id"/>
duke@435 1844 </xsl:attribute>
duke@435 1845 <xsl:value-of select="@label"/>
duke@435 1846 </h3>
duke@435 1847 <xsl:apply-templates select="intro"/>
duke@435 1848 <p/>
duke@435 1849 <dl>
duke@435 1850 <xsl:apply-templates select="errorid"/>
duke@435 1851 </dl>
duke@435 1852 <p/>
duke@435 1853 </xsl:template>
duke@435 1854
duke@435 1855 <xsl:template match="errorid">
duke@435 1856 <dt>
duke@435 1857 <code>
duke@435 1858 <xsl:attribute name="id">
duke@435 1859 <xsl:value-of select="@id"/>
duke@435 1860 </xsl:attribute>
duke@435 1861 <xsl:value-of select="@id"/> (<xsl:value-of select="@num"/>)
duke@435 1862 </code>
duke@435 1863 </dt>
duke@435 1864 <dd>
duke@435 1865 <xsl:apply-templates/>
duke@435 1866 <p/>
duke@435 1867 </dd>
duke@435 1868 </xsl:template>
duke@435 1869
duke@435 1870 <xsl:template match="changehistory">
duke@435 1871 <p/><hr noshade="noshade" size="3"/>
duke@435 1872 <h2>Change History</h2>
duke@435 1873 Last update: <xsl:value-of select="@update"/><br/>
duke@435 1874 Version: <xsl:call-template name="showversion"/>
duke@435 1875 <p/>
duke@435 1876 <xsl:apply-templates select="intro"/>
duke@435 1877 <p/>
duke@435 1878 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1879 <tr bgcolor="#EEEEFF">
duke@435 1880 <td>
duke@435 1881 <b>Version</b><br/>
duke@435 1882 <b>Date</b>
duke@435 1883 </td>
duke@435 1884 <td>
duke@435 1885 <b>Changes</b>
duke@435 1886 </td>
duke@435 1887 </tr>
duke@435 1888 <xsl:apply-templates select="change"/>
duke@435 1889 </table>
duke@435 1890 </xsl:template>
duke@435 1891
duke@435 1892 <xsl:template match="change">
duke@435 1893 <tr>
duke@435 1894 <td>
duke@435 1895 <xsl:if test="count(@version)">
duke@435 1896 <b>
duke@435 1897 <xsl:value-of select="@version"/>
duke@435 1898 </b>
duke@435 1899 <br/>
duke@435 1900 </xsl:if>
duke@435 1901 <xsl:value-of select="@date"/>
duke@435 1902 </td>
duke@435 1903 <td>
duke@435 1904 <xsl:apply-templates/>
duke@435 1905 </td>
duke@435 1906 </tr>
duke@435 1907 </xsl:template>
duke@435 1908
duke@435 1909 <xsl:template match="intro">
duke@435 1910 <xsl:if test="@id!=''">
duke@435 1911 <xsl:choose>
duke@435 1912 <xsl:when test="@label!=''">
duke@435 1913 <h4>
duke@435 1914 <xsl:attribute name="id">
duke@435 1915 <xsl:value-of select="@id"/>
duke@435 1916 </xsl:attribute>
duke@435 1917 <xsl:value-of select="@label"/>
duke@435 1918 </h4>
duke@435 1919 </xsl:when>
duke@435 1920 <xsl:otherwise>
duke@435 1921 <a>
duke@435 1922 <xsl:attribute name="name">
duke@435 1923 <xsl:value-of select="@id"/>
duke@435 1924 </xsl:attribute>
duke@435 1925 </a>
duke@435 1926 </xsl:otherwise>
duke@435 1927 </xsl:choose>
duke@435 1928 </xsl:if>
duke@435 1929 <xsl:apply-templates/>
duke@435 1930 </xsl:template>
duke@435 1931
duke@435 1932 <xsl:template match="issue">
duke@435 1933 <xsl:if test="$development = 'Show'">
duke@435 1934 <p style="color: red">
duke@435 1935 To be resolved:
duke@435 1936 <xsl:apply-templates/>
duke@435 1937 </p>
duke@435 1938 </xsl:if>
duke@435 1939 </xsl:template>
duke@435 1940
duke@435 1941 <xsl:template match="rationale">
duke@435 1942 <p style="color: purple">
duke@435 1943 Rationale:
duke@435 1944 <xsl:apply-templates/>
duke@435 1945 </p>
duke@435 1946 </xsl:template>
duke@435 1947
duke@435 1948 <xsl:template match="todo">
duke@435 1949 <xsl:if test="$development = 'Show'">
duke@435 1950 <p style="color: green">
duke@435 1951 To do:
duke@435 1952 <xsl:apply-templates/>
duke@435 1953 </p>
duke@435 1954 </xsl:if>
duke@435 1955 </xsl:template>
duke@435 1956
duke@435 1957 <xsl:template match="elide">
duke@435 1958 </xsl:template>
duke@435 1959
duke@435 1960 <xsl:template match="b">
duke@435 1961 <b>
duke@435 1962 <xsl:apply-templates/>
duke@435 1963 </b>
duke@435 1964 </xsl:template>
duke@435 1965
duke@435 1966 <xsl:template match="example">
duke@435 1967 <blockquote>
duke@435 1968 <pre>
duke@435 1969 <xsl:apply-templates/>
duke@435 1970 </pre>
duke@435 1971 </blockquote>
duke@435 1972 </xsl:template>
duke@435 1973
duke@435 1974
duke@435 1975 <xsl:template match="table">
duke@435 1976 <table border="1" cellpadding="3" cellspacing="0" width="100%">
duke@435 1977 <xsl:apply-templates/>
duke@435 1978 </table>
duke@435 1979 </xsl:template>
duke@435 1980
duke@435 1981 <xsl:template match="tr">
duke@435 1982 <tr>
duke@435 1983 <xsl:apply-templates/>
duke@435 1984 </tr>
duke@435 1985 </xsl:template>
duke@435 1986
duke@435 1987 <xsl:template match="td">
duke@435 1988 <td>
duke@435 1989 <xsl:attribute name="align">
duke@435 1990 <xsl:value-of select="@align"/>
duke@435 1991 </xsl:attribute>
duke@435 1992 <xsl:apply-templates/>
duke@435 1993 </td>
duke@435 1994 </xsl:template>
duke@435 1995
duke@435 1996 <xsl:template match="th">
duke@435 1997 <th bgcolor="#EEEEFF">
duke@435 1998 <xsl:attribute name="align">
duke@435 1999 <xsl:value-of select="@align"/>
duke@435 2000 </xsl:attribute>
duke@435 2001 <xsl:apply-templates/>
duke@435 2002 </th>
duke@435 2003 </xsl:template>
duke@435 2004
duke@435 2005 <xsl:template match="dl">
duke@435 2006 <dl>
duke@435 2007 <xsl:apply-templates/>
duke@435 2008 </dl>
duke@435 2009 </xsl:template>
duke@435 2010
duke@435 2011 <xsl:template match="dt">
duke@435 2012 <dt>
duke@435 2013 <xsl:apply-templates/>
duke@435 2014 </dt>
duke@435 2015 </xsl:template>
duke@435 2016
duke@435 2017 <xsl:template match="dd">
duke@435 2018 <dd>
duke@435 2019 <xsl:apply-templates/>
duke@435 2020 </dd>
duke@435 2021 </xsl:template>
duke@435 2022
duke@435 2023 <xsl:template match="p">
duke@435 2024 <p>
duke@435 2025 <xsl:apply-templates/>
duke@435 2026 </p>
duke@435 2027 </xsl:template>
duke@435 2028
duke@435 2029 <xsl:template match="br">
duke@435 2030 <br>
duke@435 2031 <xsl:apply-templates/>
duke@435 2032 </br>
duke@435 2033 </xsl:template>
duke@435 2034
duke@435 2035 <xsl:template match="ul">
duke@435 2036 <ul>
duke@435 2037 <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
duke@435 2038 <xsl:apply-templates/>
duke@435 2039 </ul>
duke@435 2040 </xsl:template>
duke@435 2041
duke@435 2042 <xsl:template match="li">
duke@435 2043 <li>
duke@435 2044 <xsl:apply-templates/>
duke@435 2045 </li>
duke@435 2046 </xsl:template>
duke@435 2047
duke@435 2048 <xsl:template match="code">
duke@435 2049 <code>
duke@435 2050 <xsl:apply-templates/>
duke@435 2051 </code>
duke@435 2052 </xsl:template>
duke@435 2053
duke@435 2054 <xsl:template match="tm">
duke@435 2055 <xsl:apply-templates/>
duke@435 2056 <sup style="font-size: xx-small">
duke@435 2057 <xsl:text>TM</xsl:text>
duke@435 2058 </sup>
duke@435 2059 <xsl:text>&#032;</xsl:text>
duke@435 2060 </xsl:template>
duke@435 2061
duke@435 2062 <xsl:template match="b">
duke@435 2063 <b>
duke@435 2064 <xsl:apply-templates/>
duke@435 2065 </b>
duke@435 2066 </xsl:template>
duke@435 2067
duke@435 2068 <xsl:template match="i">
duke@435 2069 <i>
duke@435 2070 <xsl:apply-templates/>
duke@435 2071 </i>
duke@435 2072 </xsl:template>
duke@435 2073
duke@435 2074 <xsl:template match="space">
duke@435 2075 <xsl:text>&#032;</xsl:text>
duke@435 2076 </xsl:template>
duke@435 2077
duke@435 2078 <xsl:template match="jvmti">
duke@435 2079 <xsl:text>JVM</xsl:text><small style="font-size: xx-small">&#160;</small><xsl:text>TI</xsl:text>
duke@435 2080 </xsl:template>
duke@435 2081
duke@435 2082
duke@435 2083 </xsl:stylesheet>

mercurial