Path: blob/master/src/hotspot/share/prims/jvmti.xsl
41144 views
<?xml version="1.0"?>1<!--2Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.3DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.45This code is free software; you can redistribute it and/or modify it6under the terms of the GNU General Public License version 2 only, as7published by the Free Software Foundation.89This code is distributed in the hope that it will be useful, but WITHOUT10ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or11FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License12version 2 for more details (a copy is included in the LICENSE file that13accompanied this code).1415You should have received a copy of the GNU General Public License version162 along with this work; if not, write to the Free Software Foundation,17Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.1819Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA20or visit www.oracle.com if you need additional information or have any21questions.2223-->2425<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">2627<xsl:import href="jvmtiLib.xsl"/>2829<xsl:output method="html" indent="yes"30doctype-system="about:legacy-compat"/>3132<xsl:param name="development"></xsl:param>3334<xsl:template match="specification">35<html lang="en">36<head>37<title>38<xsl:value-of select="@label"/>39<xsl:text> </xsl:text>40<xsl:call-template name="showversion"/>41</title>42<style>43.centered { text-align: center; }44.leftAligned { text-align: left; }45.rightAligned { text-align: right; }46.bgLight { background-color: #EEEEFF; }47.bgDark { background-color: #CCCCFF}48th { font-weight: normal; text-align: left; }49div.sep { height: 10px; }50div.callbackCtnr { margin: 0 5%; }51hr { border-width:0; color:gray; background-color:gray; }52hr.thick { height:3px; }53hr.thin { height:1px; }54table.bordered, div.bordered { border: 2px solid black; border-spacing: 0; border-collapse: collapse; }55table.bordered td, table.bordered th, div.bordered div.divTableHead, div.bordered .divTableCell {56padding: 3px;57border: 2px solid black;58}59.wide { width: 100%; }60table.bordered caption, divCaption {61border: 2px solid black;62border-bottom-width: 0;63}64.captionTitle {65background-color: #CCCCFF;66font-size: larger;67text-align:center;68padding: 3px;69}70.captionDescr {71border-top: 2px solid black;72padding: 3px;73text-align: left;74}75div.divTable { display: table; }76<!-- workaround for <div> with border, display: table & width: 100% -->77div.wideDivTableCtnr { padding-right: 2px; }78div.divTableRow { display: table-row; }79div.divTableHead, div.divTableCell { display: table-cell; vertical-align: middle; }80div.divTableHead { font-weight: bold; text-align: center; }81table.bordered td.noPadding { padding: 0; }82div.withPadding { padding: 3px; }83div.topBorder { border-top: 2px solid black; }84</style>85</head>86<body>87<header class="centered">88<xsl:apply-templates select="title"/>89</header>90<nav>91<ul>92<li>93<a href="#SpecificationIntro"><b>Introduction</b></a>94<ul>95<xsl:for-each select="intro">96<li>97<a>98<xsl:attribute name="href">#<xsl:value-of select="@id"/>99</xsl:attribute>100<b><xsl:value-of select="@label"/></b>101</a>102</li>103</xsl:for-each>104</ul>105</li>106<li>107<a href="#FunctionSection"><b>Functions</b></a>108<ul>109<xsl:for-each select="functionsection/intro">110<li>111<a>112<xsl:attribute name="href">#<xsl:value-of select="@id"/>113</xsl:attribute>114<b><xsl:value-of select="@label"/></b>115</a>116</li>117</xsl:for-each>118<li>119<a href="#FunctionIndex"><b>Function Index</b></a>120<ul>121<xsl:for-each select="functionsection/category">122<li>123<a>124<xsl:attribute name="href">#<xsl:value-of select="@id"/>125</xsl:attribute>126<b><xsl:value-of select="@label"/></b>127</a>128</li>129</xsl:for-each>130</ul>131</li>132<li>133<a href="#ErrorSection"><b>Error Codes</b></a>134</li>135</ul>136</li>137<li>138<a href="#EventSection"><b>Events</b></a>139<ul>140<li>141<a href="#EventIndex"><b>Event Index</b></a>142</li>143</ul>144</li>145<li>146<a href="#DataSection"><b>Data Types</b></a>147<ul>148<xsl:for-each select="//basetypes">149<li>150<a>151<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>152<b>153<xsl:value-of select="@label"/>154</b>155</a>156</li>157</xsl:for-each>158<li>159<a href="#StructureTypeDefinitions"><b>Structure Type Definitions</b></a>160</li>161<li>162<a href="#FunctionTypeDefinitions"><b>Function Type Definitions</b></a>163</li>164<li>165<a href="#EnumerationDefinitions"><b>Enumeration Definitions</b></a>166</li>167<li>168<a href="#FunctionTable"><b>Function Table</b></a>169</li>170</ul>171</li>172<li>173<a href="#ConstantIndex"><b>Constant Index</b></a>174</li>175<xsl:if test="$development = 'Show'">176<li>177<a href="#SpecificationIssues"><b>Issues</b></a>178<ul>179<xsl:for-each select="issuessection/intro">180<li>181<a>182<xsl:attribute name="href">#<xsl:value-of select="@id"/>183</xsl:attribute>184<b><xsl:value-of select="@label"/></b>185</a>186</li>187</xsl:for-each>188</ul>189</li>190</xsl:if>191<li>192<a href="#ChangeHistory"><b>Change History</b></a>193</li>194</ul>195</nav>196<!-- end table of contents, begin body -->197<main>198<div class="sep"/>199<hr class="thick"/>200<div class="sep"/>201<p id="SpecificationIntro"/>202<xsl:apply-templates select="intro"/>203<p id="FunctionSection"/>204<xsl:apply-templates select="functionsection"/>205<p id="ErrorSection"/>206<xsl:apply-templates select="errorsection"/>207<p id="DataSection"/>208<xsl:apply-templates select="datasection"/>209<p id="EventSection"/>210<xsl:apply-templates select="eventsection"/>211<p id="ConstantIndex"/>212<div class="sep"/>213<hr class="thick"/>214<h2>215Constant Index216</h2>217<blockquote>218<xsl:apply-templates select="//constant" mode="index">219<xsl:sort select="@id"/>220</xsl:apply-templates>221</blockquote>222<xsl:if test="$development = 'Show'">223<p id="SpecificationIssues"/>224<div class="sep"/>225<hr class="thick"/>226<h2>227<xsl:value-of select="issuessection/@label"/>228</h2>229<xsl:apply-templates select="issuessection/intro"/>230</xsl:if>231<p id="ChangeHistory"/>232<xsl:apply-templates select="changehistory"/>233</main>234</body>235</html>236</xsl:template>237238<xsl:template match="title">239<h1>240<xsl:apply-templates/>241</h1>242<h2>243<xsl:value-of select="@subtitle"/>244<xsl:text> </xsl:text>245<xsl:call-template name="showbasicversion"/>246</h2>247</xsl:template>248249<xsl:template match="functionsection">250<div class="sep"/>251<hr class="thick"/>252<h2>253<xsl:value-of select="@label"/>254</h2>255<xsl:apply-templates select="intro"/>256<h3 id="FunctionIndex">Function Index</h3>257<ul>258<xsl:apply-templates select="category" mode="index"/>259</ul>260<xsl:apply-templates select="category" mode="body"/>261</xsl:template>262263<xsl:template match="category" mode="index">264<li>265<a>266<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>267<b>268<xsl:value-of select="@label"/>269</b>270</a>271<ul>272<xsl:apply-templates select="function[count(@hide)=0]" mode="index"/>273</ul>274</li>275</xsl:template>276277<xsl:template match="function|callback" mode="index">278<li>279<a>280<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>281<xsl:apply-templates select="synopsis" mode="index"/>282</a>283</li>284</xsl:template>285286<xsl:template match="synopsis" mode="index">287<xsl:value-of select="."/>288</xsl:template>289290<xsl:template match="category" mode="body">291<p>292<xsl:attribute name="id">293<xsl:value-of select="@id"/>294</xsl:attribute>295</p>296<hr class="thick"/>297<h2 class="centered"><xsl:value-of select="@label"/></h2>298<xsl:value-of select="@label"/> functions:299<ul>300<xsl:apply-templates select="function[count(@hide)=0]" mode="index"/>301</ul>302<xsl:variable name="calltypes" select="callback"/>303<xsl:if test="count($calltypes)!=0">304<xsl:value-of select="@label"/> function types:305<ul>306<xsl:apply-templates select="$calltypes" mode="index"/>307</ul>308</xsl:if>309<xsl:variable name="cattypes"310select="(descendant::typedef|descendant::uniontypedef|descendant::capabilitiestypedef|descendant::constants[@kind='enum'])"/>311<xsl:if test="count($cattypes)!=0">312<xsl:value-of select="@label"/> types:313<ul>314<xsl:for-each select="$cattypes">315<li>316<a>317<xsl:attribute name="href">318<xsl:text>#</xsl:text>319<xsl:value-of select="@id"/>320</xsl:attribute>321<code><xsl:value-of select="@id"/></code>322</a>323<xsl:text> - </xsl:text>324<xsl:value-of select="@label"/>325</li>326</xsl:for-each>327</ul>328</xsl:if>329<xsl:variable name="catconst"330select="(descendant::constants[@kind!='enum'])"/>331<xsl:if test="count($catconst)!=0">332<xsl:value-of select="@label"/> flags and constants:333<ul>334<xsl:for-each select="$catconst">335<li>336<a>337<xsl:attribute name="href">338<xsl:text>#</xsl:text>339<xsl:value-of select="@id"/>340</xsl:attribute>341<xsl:value-of select="@label"/>342</a>343</li>344</xsl:for-each>345</ul>346</xsl:if>347<xsl:apply-templates select="intro|typedef|uniontypedef|capabilitiestypedef"/>348<div class="sep"/>349<xsl:apply-templates select="function[count(@hide)=0]|callback" mode="body"/>350</xsl:template>351352<xsl:template match="function" mode="body">353<hr class="thin">354<xsl:attribute name="id">355<xsl:value-of select="@id"/>356</xsl:attribute>357358</hr>359<xsl:apply-templates select="synopsis" mode="body"/>360<blockquote>361<xsl:apply-templates select="typedef" mode="code"/>362<xsl:apply-templates select="descendant::constants[@kind='enum']" mode="signature"/>363<pre>364<xsl:text>jvmtiError365</xsl:text>366<xsl:value-of select="@id"/>(jvmtiEnv* env<xsl:apply-templates select="parameters" mode="signature"/>)</pre>367</blockquote>368<xsl:apply-templates select="description"/>369<xsl:apply-templates select="." mode="generalinfo"/>370<xsl:apply-templates select="capabilities|eventcapabilities"/>371<xsl:apply-templates select="typedef" mode="body"/>372<xsl:apply-templates select="parameters" mode="body"/>373<xsl:apply-templates select="." mode="errors"/>374</xsl:template>375376<xsl:template match="function" mode="generalinfo">377<div class="wideDivTableCtnr">378<div class="divTable bordered wide">379<div class="divTableRow bgLight">380<div class="divTableCell"><a href="#jvmtiPhase">Phase</a></div>381<div class="divTableCell"><a href="#heapCallbacks">Callback Safe</a></div>382<div class="divTableCell"><a href="#FunctionTable">Position</a></div>383<div class="divTableCell"><a href="#ChangeHistory">Since</a></div>384</div>385<div class="divTableRow">386<div class="divTableCell">387<xsl:apply-templates select="." mode="phaseinfo"/>388</div>389<div class="divTableCell">390<xsl:apply-templates select="." mode="callbacksafeinfo"/>391</div>392<div class="divTableCell">393<xsl:value-of select="@num"/>394</div>395<div class="divTableCell">396<xsl:value-of select="@since"/>397</div>398</div>399</div>400</div>401</xsl:template>402403<xsl:template match="event" mode="generalinfo">404<div class="wideDivTableCtnr">405<div class="divTable bordered wide">406<div class="divTableRow bgLight">407<div class="divTableCell"><a href="#jvmtiPhase">Phase</a></div>408<div class="divTableCell"><a href="#heapCallbacks">Event Type</a></div>409<div class="divTableCell"><a href="#FunctionTable">Number</a></div>410<div class="divTableCell"><a href="#FunctionTable">Enabling</a></div>411<div class="divTableCell"><a href="#ChangeHistory">Since</a></div>412</div>413<div class="divTableRow">414<div class="divTableCell">415<xsl:apply-templates select="." mode="phaseinfo"/>416</div>417<div class="divTableCell">418<code><xsl:value-of select="@const"/></code>419</div>420<div class="divTableCell">421<xsl:value-of select="@num"/>422</div>423<div class="divTableCell">424<code><a href="#SetEventNotificationMode">SetEventNotificationMode</a>(JVMTI_ENABLE,425<xsl:value-of select="@const"/>, NULL)</code>426</div>427<div class="divTableCell">428<xsl:value-of select="@since"/>429</div>430</div>431</div>432</div>433</xsl:template>434435<xsl:template match="function" mode="phaseinfo">436may437<xsl:choose>438<xsl:when test="count(@phase) = 0 or @phase = 'live'">439only be called during the live440</xsl:when>441<xsl:otherwise>442<xsl:choose>443<xsl:when test="@phase = 'onload'">444only be called during the OnLoad or the live445</xsl:when>446<xsl:otherwise>447<xsl:choose>448<xsl:when test="@phase = 'any'">449be called during any450</xsl:when>451<xsl:otherwise>452<xsl:choose>453<xsl:when test="@phase = 'start'">454only be called during the start or the live455</xsl:when>456<xsl:otherwise>457<xsl:choose>458<xsl:when test="@phase = 'onloadOnly'">459only be called during the OnLoad460</xsl:when>461<xsl:otherwise>462<xsl:message terminate="yes">463bad phase - <xsl:value-of select="@phase"/>464</xsl:message>465</xsl:otherwise>466</xsl:choose>467</xsl:otherwise>468</xsl:choose>469</xsl:otherwise>470</xsl:choose>471</xsl:otherwise>472</xsl:choose>473</xsl:otherwise>474</xsl:choose>475phase476</xsl:template>477478479<xsl:template match="event" mode="phaseinfo">480sent481<xsl:choose>482<xsl:when test="count(@phase) = 0 or @phase = 'live'">483only during the live484</xsl:when>485<xsl:otherwise>486<xsl:choose>487<xsl:when test="@phase = 'any'">488during the primordial, start or live489</xsl:when>490<xsl:otherwise>491<xsl:choose>492<xsl:when test="@phase = 'start'">493during the start or live494</xsl:when>495<xsl:otherwise>496<xsl:message terminate="yes">497bad phase - <xsl:value-of select="@phase"/>498</xsl:message>499</xsl:otherwise>500</xsl:choose>501</xsl:otherwise>502</xsl:choose>503</xsl:otherwise>504</xsl:choose>505phase506</xsl:template>507508509<xsl:template match="function" mode="callbacksafeinfo">510<xsl:choose>511<xsl:when test="contains(@callbacksafe,'safe')">512This function may be called from the callbacks to the513<a href="#Heap">Heap</a> iteration functions, or from the514event handlers for the515<a href="#GarbageCollectionStart"><code>GarbageCollectionStart</code></a>,516<a href="#GarbageCollectionFinish"><code>GarbageCollectionFinish</code></a>,517and <a href="#ObjectFree"><code>ObjectFree</code></a> events.518</xsl:when>519<xsl:otherwise>520No521</xsl:otherwise>522</xsl:choose>523</xsl:template>524525526<xsl:template match="callback" mode="body">527<hr class="thin">528<xsl:attribute name="id">529<xsl:value-of select="@id"/>530</xsl:attribute>531</hr>532<xsl:apply-templates select="synopsis" mode="body"/>533<div class="callbackCtnr">534<blockquote>535<pre>536<xsl:text>typedef </xsl:text>537<xsl:apply-templates select="child::*[position()=1]" mode="signature"/>538<xsl:text> (JNICALL *</xsl:text>539<xsl:value-of select="@id"/>540<xsl:text>)541(</xsl:text>542<xsl:for-each select="parameters">543<xsl:apply-templates select="param[position()=1]" mode="signature"/>544<xsl:for-each select="param[position()>1]">545<xsl:text>,546</xsl:text>547<xsl:apply-templates select="." mode="signature"/>548</xsl:for-each>549</xsl:for-each>550<xsl:text>);</xsl:text>551</pre>552</blockquote>553<xsl:apply-templates select="description"/>554<xsl:apply-templates select="parameters" mode="body"/>555</div>556</xsl:template>557558<xsl:template match="synopsis" mode="body">559<h3><xsl:value-of select="."/></h3>560</xsl:template>561562<xsl:template match="eventsection">563<div class="sep"/>564<hr class="thick"/>565<h2>566<xsl:value-of select="@label"/>567</h2>568<xsl:apply-templates select="intro"/>569<blockquote>570<pre>571<xsl:text>572typedef struct {573</xsl:text>574<xsl:call-template name="eventStruct">575<xsl:with-param name="events" select="event"/>576<xsl:with-param name="index" select="0"/>577<xsl:with-param name="started" select="false"/>578<xsl:with-param name="comment" select="'No'"/>579</xsl:call-template>580<xsl:text>} jvmtiEventCallbacks;581</xsl:text>582</pre>583</blockquote>584<div class="sep"/>585<hr class="thin"/>586<h3 id="EventIndex">Event Index</h3>587<ul>588<xsl:apply-templates select="event" mode="index">589<xsl:sort select="@label"/>590</xsl:apply-templates>591</ul>592<xsl:apply-templates select="event" mode="body"/>593</xsl:template>594595<xsl:template match="event" mode="index">596<li>597<a>598<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>599<b>600<xsl:value-of select="@label"/>601</b>602</a>603</li>604</xsl:template>605606<xsl:template match="event" mode="body">607<p>608<xsl:attribute name="id">609<xsl:value-of select="@id"/>610</xsl:attribute>611</p>612<hr class="thick"/>613<h2><xsl:value-of select="@label"/></h2>614<div class="sep"/>615<blockquote>616<xsl:apply-templates select="typedef" mode="code"/>617<pre>618<xsl:text>void JNICALL619</xsl:text>620<xsl:value-of select="@id"/>(jvmtiEnv *jvmti_env<xsl:apply-templates select="parameters" mode="signature"/>)</pre>621</blockquote>622<xsl:apply-templates select="description"/>623<xsl:apply-templates select="." mode="generalinfo"/>624<xsl:apply-templates select="typedef" mode="body"/>625<xsl:apply-templates select="capabilities"/>626<xsl:apply-templates select="parameters" mode="body"/>627</xsl:template>628629<xsl:template match="capabilitiestypedef" mode="code">630<blockquote>631<pre>632<xsl:apply-templates select="." mode="genstruct"/>633</pre>634</blockquote>635</xsl:template>636637<xsl:template match="typedef" mode="code">638<pre>639<xsl:call-template name="gentypedef">640<xsl:with-param name="tdef" select="."/>641</xsl:call-template>642</pre>643</xsl:template>644645<xsl:template match="uniontypedef" mode="code">646<pre>647<xsl:call-template name="genuniontypedef">648<xsl:with-param name="tdef" select="."/>649</xsl:call-template>650</pre>651</xsl:template>652653<xsl:template match="capabilitiestypedef|typedef|uniontypedef" mode="description">654<xsl:apply-templates select="description"/>655</xsl:template>656657<xsl:template match="capabilitiestypedef|typedef|uniontypedef">658<h3>659<xsl:attribute name="id">660<xsl:value-of select="@id"/>661</xsl:attribute>662<xsl:value-of select="@label"/>663</h3>664<xsl:apply-templates select="." mode="description"/>665<blockquote>666<xsl:apply-templates select="." mode="code"/>667<xsl:apply-templates select="." mode="justbody"/>668</blockquote>669</xsl:template>670671<xsl:template match="constants" mode="signature">672<pre>673<xsl:apply-templates select="." mode="enum"/>674</pre>675</xsl:template>676677<xsl:template match="typedef|uniontypedef" mode="body">678<p>679<xsl:attribute name="id">680<xsl:value-of select="@id"/>681</xsl:attribute>682</p>683<xsl:apply-templates select="." mode="justbody"/>684</xsl:template>685686<xsl:template match="typedef|uniontypedef" mode="justbody">687<table class="bordered wide">688<caption class="captionTitle">689<code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>690</caption>691<tr class="bgLight">692<th scope="col">Field</th>693<th scope="col">Type</th>694<th scope="col">Description</th>695</tr>696<xsl:apply-templates select="field" mode="body"/>697</table>698</xsl:template>699700<xsl:template match="capabilitiestypedef" mode="body">701<p>702<xsl:attribute name="id">703<xsl:value-of select="@id"/>704</xsl:attribute>705</p>706<xsl:apply-templates select="." mode="justbody"/>707</xsl:template>708709<xsl:template match="capabilitiestypedef" mode="justbody">710<table class="bordered wide">711<caption>712<div class="captionTitle">713<code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>714</div>715<div class="captionDescr">All types are <code>unsigned int : 1</code></div>716</caption>717<tr class="bgLight">718<th scope="col">Field</th>719<th scope="col">Description</th>720<th scope="col"><a href="#ChangeHistory">Since</a></th>721</tr>722<xsl:apply-templates select="capabilityfield" mode="body"/>723</table>724</xsl:template>725726<xsl:template match="typedef|uniontypedef|capabilitiestypedef|constants" mode="tableentry">727<tr>728<th scope="row">729<a>730<xsl:attribute name="href">731<xsl:text>#</xsl:text>732<xsl:value-of select="@id"/>733</xsl:attribute>734<code><xsl:value-of select="@id"/></code>735</a>736</th>737<td>738<xsl:value-of select="@label"/>739</td>740</tr>741</xsl:template>742743<xsl:template match="field" mode="body">744<tr>745<th scope="row">746<code>747<xsl:attribute name="id">748<xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>749</xsl:attribute>750<xsl:value-of select="@id"/>751</code>752</th>753<td>754<code>755<xsl:apply-templates select="child::*[position()=1]" mode="link"/>756</code>757</td>758<td>759<xsl:apply-templates select="description" mode="brief"/>760</td>761</tr>762</xsl:template>763764<xsl:template match="capabilityfield" mode="body">765<tr>766<th scope="row">767<code>768<xsl:choose>769<xsl:when test="@disp1!=''">770<xsl:value-of select="@disp1"/>771<br></br>772<xsl:value-of select="@disp2"/>773</xsl:when>774<xsl:otherwise>775<xsl:value-of select="@id"/>776</xsl:otherwise>777</xsl:choose>778</code>779</th>780<td>781<xsl:attribute name="id">782<xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>783</xsl:attribute>784<xsl:apply-templates select="description" mode="brief"/>785</td>786<td>787<xsl:value-of select="@since"/>788</td>789</tr>790</xsl:template>791792<xsl:template match="callback" mode="tableentry">793<tr>794<th scope="row">795<a>796<xsl:attribute name="href">797<xsl:text>#</xsl:text>798<xsl:value-of select="@id"/>799</xsl:attribute>800<code>801<xsl:value-of select="@id"/>802</code>803</a>804</th>805<td>806<xsl:apply-templates select="synopsis" mode="index"/>807</td>808</tr>809</xsl:template>810811<xsl:template match="constants">812<blockquote>813<table class="bordered">814<xsl:attribute name="id">815<xsl:value-of select="@id"/>816</xsl:attribute>817<caption class="captionTitle">818<xsl:value-of select="@label"/>819<xsl:if test="@kind='enum'">820<xsl:text> (</xsl:text>821<code>822<xsl:value-of select="@id"/>823</code>824<xsl:text>)</xsl:text>825</xsl:if>826</caption>827828<tr class="bgLight">829<th scope="col">Constant</th>830<th scope="col">Value</th>831<th scope="col">Description</th>832</tr>833<xsl:apply-templates select="constant" mode="body"/>834</table>835</blockquote>836</xsl:template>837838<xsl:template match="constant" mode="index">839<a>840<xsl:attribute name="href">#<xsl:value-of select="@id"/>841</xsl:attribute>842<code>843<xsl:value-of select="@id"/>844</code>845</a>846<br/>847</xsl:template>848849<xsl:template match="constant" mode="body">850<tr>851<th scope="row">852<code>853<xsl:attribute name="id">854<xsl:value-of select="@id"/>855</xsl:attribute>856<xsl:value-of select="@id"/>857</code>858</th>859<td class="rightAligned">860<xsl:value-of select="@num"/>861</td>862<td>863<xsl:apply-templates/>864</td>865</tr>866</xsl:template>867868<xsl:template match="basetypes">869<p>870<xsl:attribute name="id">871<xsl:value-of select="@id"/>872</xsl:attribute>873</p>874<table class="bordered wide">875<caption class="captionTitle"><xsl:value-of select="@label"/></caption>876<tr class="bgLight">877<th scope="col">Type</th>878<th scope="col">Description</th>879</tr>880<xsl:apply-templates select="basetype" mode="body"/>881</table>882</xsl:template>883884<xsl:template match="basetype" mode="body">885<tr>886<th scope="row">887<code>888<xsl:value-of select="@id"/>889</code>890</th>891<td class="noPadding">892<div class="withPadding">893<a>894<xsl:attribute name="id">895<xsl:choose>896<xsl:when test="count(@name)=1">897<xsl:value-of select="@name"/>898</xsl:when>899<xsl:otherwise>900<xsl:value-of select="@id"/>901</xsl:otherwise>902</xsl:choose>903</xsl:attribute>904</a>905<xsl:apply-templates select="description" mode="brief"/>906</div>907<xsl:if test="count(definition)!=0">908<div class="withPadding topBorder">909<pre>910<xsl:apply-templates select="definition"/>911</pre>912</div>913</xsl:if>914</td>915</tr>916</xsl:template>917918<xsl:template match="description">919<xsl:apply-templates/>920<div class="sep"/>921</xsl:template>922923<xsl:template match="description" mode="brief">924<xsl:apply-templates/>925</xsl:template>926927<xsl:template match="fieldlink">928<a>929<xsl:attribute name="href">#<xsl:value-of select="@struct"/>.<xsl:value-of select="@id"/></xsl:attribute>930<xsl:choose>931<xsl:when test=".=''">932<code>933<xsl:value-of select="@id"/>934</code>935</xsl:when>936<xsl:otherwise>937<xsl:apply-templates/>938</xsl:otherwise>939</xsl:choose>940</a>941</xsl:template>942943<xsl:template match="paramlink">944<a>945<xsl:attribute name="href">#<xsl:value-of select="ancestor::function/@id|ancestor::event/@id"/>.<xsl:value-of select="@id"/>946</xsl:attribute>947<xsl:choose>948<xsl:when test=".=''">949<code>950<xsl:value-of select="@id"/>951</code>952</xsl:when>953<xsl:otherwise>954<xsl:apply-templates/>955</xsl:otherwise>956</xsl:choose>957</a>958</xsl:template>959960<xsl:template match="eventlink|errorlink|typelink|datalink|functionlink">961<a>962<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>963<xsl:choose>964<xsl:when test=".=''">965<code>966<xsl:value-of select="@id"/>967</code>968</xsl:when>969<xsl:otherwise>970<xsl:apply-templates/>971</xsl:otherwise>972</xsl:choose>973</a>974</xsl:template>975976<xsl:template match="functionphaselist">977<xsl:variable name="phase" select="@phase"/>978<ul>979<xsl:for-each select="/specification/functionsection/category/function[@phase=$phase and count(@hide)=0]">980<li>981<a>982<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>983<b>984<xsl:value-of select="@id"/>985</b>986</a>987</li>988</xsl:for-each>989</ul>990</xsl:template>991992<xsl:template match="eventphaselist">993<xsl:variable name="phase" select="@phase"/>994<ul>995<xsl:for-each select="//eventsection/event[@phase=$phase]">996<li>997<a>998<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>999<b>1000<xsl:value-of select="@id"/>1001</b>1002</a>1003</li>1004</xsl:for-each>1005</ul>1006</xsl:template>10071008<xsl:template match="externallink">1009<a>1010<xsl:attribute name="href">1011<xsl:value-of select="@id"/>1012</xsl:attribute>1013<xsl:value-of select="."/>1014</a>1015</xsl:template>10161017<xsl:template match="vmspec">1018<cite>1019<xsl:text>The Java™ Virtual Machine Specification</xsl:text>1020<xsl:if test="count(@chapter)=1">1021<xsl:text>, Chapter </xsl:text>1022<xsl:value-of select="@chapter"/>1023</xsl:if>1024</cite>1025</xsl:template>10261027<xsl:template match="internallink">1028<a>1029<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>1030<xsl:apply-templates/>1031</a>1032</xsl:template>10331034<xsl:template match="parameters" mode="body">1035<div class="sep"/>1036<!--1037docchecker complains if a table has only one row.1038-->1039<xsl:choose>1040<xsl:when test="count(param)!=0">1041<table class="bordered wide">1042<caption class="captionTitle">Parameters</caption>1043<tr class="bgLight">1044<th scope="col">Name</th>1045<th scope="col">Type</th>1046<th scope="col">Description</th>1047</tr>1048<xsl:apply-templates select="param[count(jclass/@method)=0]" mode="body"/>1049</table>1050</xsl:when>1051<xsl:otherwise>1052<div class="bordered">1053<div class="captionTitle">Parameters</div>1054<div class="captionDescr">None</div>1055</div>1056</xsl:otherwise>1057</xsl:choose>1058</xsl:template>10591060<xsl:template match="param" mode="body">1061<tr>1062<th scope="row">1063<code>1064<xsl:attribute name="id">1065<xsl:value-of select="../../@id"/>.<xsl:value-of select="@id"/>1066</xsl:attribute>1067<xsl:value-of select="@id"/>1068</code>1069</th>1070<td>1071<code>1072<xsl:apply-templates select="child::*[position()=1]" mode="link"/>1073</code>1074</td>1075<td>1076<xsl:apply-templates select="description" mode="brief"/>1077<xsl:if test="count(ancestor::function)=1">1078<xsl:apply-templates select="child::*[position()=1]" mode="funcdescription"/>1079</xsl:if>1080</td>1081</tr>1082</xsl:template>10831084<xsl:template match="capabilities">1085<div class="sep"/>1086<!--1087docchecker complains if a table has only one column.1088-->1089<xsl:choose>1090<xsl:when test="count(required)!=0 or count(capability)!=0">1091<table class="bordered wide">1092<caption>1093<div class="captionTitle">Capabilities</div>1094<xsl:choose>1095<xsl:when test="count(required)=0">1096<div class="captionDescr"><b>Required Functionality</b></div>1097</xsl:when>1098<xsl:otherwise>1099<div class="captionDescr">1100<b>Optional Functionality:</b> might not be implemented for all virtual machines.1101<xsl:choose>1102<xsl:when test="count(required)=1">1103The following capability1104</xsl:when>1105<xsl:otherwise>1106One of the following capabilities1107</xsl:otherwise>1108</xsl:choose>1109(as returned by <a href="#GetCapabilities"><code>GetCapabilities</code></a>)1110must be true to use this1111<xsl:choose>1112<xsl:when test="ancestor::function">1113function.1114</xsl:when>1115<xsl:otherwise>1116event.1117</xsl:otherwise>1118</xsl:choose>1119</div>1120</xsl:otherwise>1121</xsl:choose>1122</caption>1123<xsl:if test="count(required)!=0">1124<tr class="bgLight">1125<th scope="col">Capability</th>1126<th scope="col">Effect</th>1127</tr>1128<xsl:apply-templates select="required"/>1129</xsl:if>11301131<xsl:if test="count(capability)!=0">1132<tr class="bgDark">1133<th colspan="2" scope="rowgroup" class="centered">1134Optional Features1135</th>1136</tr>1137<xsl:if test="count(required)=0">1138<tr class="bgLight">1139<th scope="col">Capability</th>1140<th scope="col">Effect</th>1141</tr>1142</xsl:if>1143<xsl:apply-templates select="capability"/>1144</xsl:if>1145</table>1146</xsl:when>1147<xsl:otherwise>1148<div class="bordered">1149<div class="captionTitle">Capabilities</div>1150<div class="captionDescr"><b>Required Functionality</b></div>1151</div>1152</xsl:otherwise>1153</xsl:choose>1154</xsl:template>11551156<xsl:template match="eventcapabilities">1157<div class="sep"/>1158<table class="bordered wide">1159<caption>1160<div class="captionTitle">Capabilities</div>1161<div class="captionDescr"><b>Required Functionality</b></div>1162</caption>1163<tr class="bgDark">1164<th colspan="2" scope="rowgroup" class="centered">1165Event Enabling Capabilities1166</th>1167</tr>1168<tr class="bgLight">1169<th scope="col">Capability</th>1170<th scope="col">Events</th>1171</tr>1172<xsl:for-each select="//capabilityfield">1173<xsl:variable name="capa" select="@id"/>1174<xsl:variable name="events" select="//event[capabilities/required/@id=$capa]"/>1175<xsl:if test="count($events)">1176<tr>1177<th scope="row">1178<a>1179<xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>1180</xsl:attribute>1181<code>1182<xsl:value-of select="@id"/>1183</code>1184</a>1185</th>1186<td>1187<xsl:for-each select="$events">1188<a>1189<xsl:attribute name="href">#<xsl:value-of select="@id"/>1190</xsl:attribute>1191<code>1192<xsl:value-of select="@id"/>1193</code>1194</a>1195<br/>1196</xsl:for-each>1197</td>1198</tr>1199</xsl:if>1200</xsl:for-each>1201</table>1202</xsl:template>12031204<xsl:template match="capability|required">1205<tr>1206<th scope="row">1207<a>1208<xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>1209</xsl:attribute>1210<code>1211<xsl:value-of select="@id"/>1212</code>1213</a>1214</th>1215<td>1216<xsl:choose>1217<xsl:when test=".=''">1218<xsl:variable name="desiredID" select="@id"/>1219<xsl:for-each select="//capabilityfield[@id=$desiredID]">1220<xsl:apply-templates select="description" mode="brief"/>1221</xsl:for-each>1222</xsl:when>1223<xsl:otherwise>1224<xsl:apply-templates/>1225</xsl:otherwise>1226</xsl:choose>1227</td>1228</tr>1229</xsl:template>12301231<xsl:template match="function" mode="errors">1232<xsl:variable name="haserrors">1233<xsl:apply-templates select="capabilities/required" mode="haserrors"/>1234<xsl:apply-templates select="errors/error" mode="haserrors"/>1235<xsl:apply-templates select="parameters/param" mode="haserrors"/>1236</xsl:variable>1237<div class="sep"/>1238<!--1239docchecker complains if a table has only one column.1240-->1241<xsl:choose>1242<xsl:when test="contains($haserrors,'yes')">1243<table class="bordered wide">1244<caption>1245<div class="captionTitle">Errors</div>1246<div class="captionDescr">1247This function returns either a1248<a href="#universal-error">universal error</a>1249or one of the following errors1250</div>1251</caption>1252<tr class="bgLight">1253<th scope="col">Error</th>1254<th scope="col">Description</th>1255</tr>1256<xsl:apply-templates select="capabilities/required" mode="errors"/>1257<xsl:apply-templates select="errors/error"/>1258<xsl:apply-templates select="parameters/param" mode="errors"/>1259</table>1260</xsl:when>1261<xsl:otherwise>1262<div class="bordered">1263<div class="captionTitle">Errors</div>1264<div class="captionDescr">1265This function returns a1266<a href="#universal-error">universal error</a>1267</div>1268</div>1269</xsl:otherwise>1270</xsl:choose>1271</xsl:template>12721273<xsl:template match="required" mode="haserrors">1274yes1275</xsl:template>12761277<xsl:template match="required" mode="errors">1278<tr>1279<th scope="row">1280<a href="#JVMTI_ERROR_MUST_POSSESS_CAPABILITY">1281<code>1282JVMTI_ERROR_MUST_POSSESS_CAPABILITY1283</code>1284</a>1285</th>1286<td>1287The environment does not possess the capability1288<a>1289<xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/></xsl:attribute>1290<code>1291<xsl:value-of select="@id"/>1292</code>1293</a>.1294Use <a href="#AddCapabilities"><code>AddCapabilities</code></a>.1295</td>1296</tr>1297</xsl:template>12981299<xsl:template match="param" mode="haserrors">1300<xsl:apply-templates mode="haserrors"/>1301</xsl:template>13021303<xsl:template match="param" mode="errors">1304<xsl:apply-templates select="." mode="errors1"/>1305<xsl:apply-templates select="." mode="errors2"/>1306</xsl:template>13071308<xsl:template match="param" mode="errors1">1309<xsl:variable name="haserrors">1310<xsl:apply-templates mode="haserrors"/>1311</xsl:variable>1312<xsl:if test="contains($haserrors,'yes')!=0">1313<xsl:variable name="erroridraw">1314<xsl:apply-templates mode="errorid"/>1315</xsl:variable>1316<xsl:variable name="errorid" select="normalize-space($erroridraw)"/>1317<tr>1318<th scope="row">1319<a>1320<xsl:attribute name="href">#<xsl:value-of select="$errorid"/></xsl:attribute>1321<code>1322<xsl:value-of select="$errorid"/>1323</code>1324</a>1325</th>1326<td>1327<xsl:apply-templates mode="errordesc">1328<xsl:with-param name="id" select="@id"/>1329</xsl:apply-templates>1330</td>1331</tr>1332</xsl:if>1333</xsl:template>13341335<xsl:template match="param" mode="errors2">1336<xsl:variable name="haserrors2">1337<xsl:apply-templates mode="haserrors2"/>1338</xsl:variable>1339<xsl:if test="contains($haserrors2,'yes')!=0">1340<xsl:variable name="erroridraw2">1341<xsl:apply-templates mode="errorid2"/>1342</xsl:variable>1343<xsl:variable name="errorid2" select="normalize-space($erroridraw2)"/>1344<tr>1345<th scope="row">1346<a>1347<xsl:attribute name="href">#<xsl:value-of select="$errorid2"/></xsl:attribute>1348<code>1349<xsl:value-of select="$errorid2"/>1350</code>1351</a>1352</th>1353<td>1354<xsl:apply-templates mode="errordesc2">1355<xsl:with-param name="id" select="@id"/>1356</xsl:apply-templates>1357</td>1358</tr>1359</xsl:if>1360</xsl:template>13611362<xsl:template match="description" mode="haserrors">1363</xsl:template>13641365<xsl:template match="description" mode="errorid">1366</xsl:template>13671368<xsl:template match="description" mode="errordesc">1369</xsl:template>13701371<xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jthread|jthreadGroup|jobject|enum|jlocation" mode="haserrors">1372yes1373</xsl:template>13741375<xsl:template match="jclass" mode="haserrors">1376<xsl:if test="count(@method)=0">1377yes1378</xsl:if>1379</xsl:template>13801381<xsl:template match="description|jclass|jfieldID|jrawMonitorID|1382jthreadGroup|jobject|enum|jlocation|jvalue|jchar|jint|jlong|jfloat|jdouble|jboolean|1383char|uchar|size_t|void|varargs|struct|1384ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="haserrors2">1385</xsl:template>13861387<xsl:template match="jmethodID" mode="haserrors2">1388<xsl:if test="count(@native)=1 and contains(@native,'error')">1389yes1390</xsl:if>1391</xsl:template>13921393<xsl:template match="jthread" mode="haserrors2">1394<xsl:if test="count(@started)=0 or contains(@started,'yes') or @started=''">1395yes1396</xsl:if>1397</xsl:template>13981399<xsl:template match="jframeID" mode="haserrors2">1400yes1401</xsl:template>14021403<xsl:template match="description" mode="errorid2">1404</xsl:template>14051406<xsl:template match="description" mode="errordesc2">1407</xsl:template>14081409<xsl:template match="jmethodID" mode="errorid">1410<xsl:text>JVMTI_ERROR_INVALID_METHODID</xsl:text>1411</xsl:template>14121413<xsl:template match="jmethodID" mode="errorid2">1414<xsl:text>JVMTI_ERROR_NATIVE_METHOD</xsl:text>1415</xsl:template>14161417<xsl:template match="jmethodID" mode="errordesc">1418<xsl:param name="id"/>1419<xsl:apply-templates select="." mode="paramlink"/>1420<xsl:text> is not a jmethodID.</xsl:text>1421</xsl:template>14221423<xsl:template match="jmethodID" mode="errordesc2">1424<xsl:param name="id"/>1425<xsl:apply-templates select="." mode="paramlink"/>1426<xsl:text> is a native method.</xsl:text>1427</xsl:template>14281429<xsl:template match="jfieldID" mode="errorid">1430<xsl:text>JVMTI_ERROR_INVALID_FIELDID</xsl:text>1431</xsl:template>14321433<xsl:template match="jfieldID" mode="errordesc">1434<xsl:param name="id"/>1435<xsl:apply-templates select="." mode="paramlink"/>1436<xsl:text> is not a jfieldID.</xsl:text>1437</xsl:template>14381439<xsl:template match="jframeID" mode="errorid">1440<xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>1441</xsl:template>14421443<xsl:template match="jframeID" mode="errorid2">1444<xsl:text>JVMTI_ERROR_NO_MORE_FRAMES</xsl:text>1445</xsl:template>14461447<xsl:template match="jframeID" mode="errordesc">1448<xsl:param name="id"/>1449<xsl:apply-templates select="." mode="paramlink"/>1450<xsl:text> is less than zero.</xsl:text>1451</xsl:template>14521453<xsl:template match="jframeID" mode="errordesc2">1454<xsl:param name="id"/>1455<xsl:text>There are no stack frames at the specified </xsl:text>1456<xsl:apply-templates select="." mode="paramlink"/>1457<xsl:text>.</xsl:text>1458</xsl:template>14591460<xsl:template match="jrawMonitorID" mode="errorid">1461<xsl:text>JVMTI_ERROR_INVALID_MONITOR</xsl:text>1462</xsl:template>14631464<xsl:template match="jrawMonitorID" mode="errordesc">1465<xsl:param name="id"/>1466<xsl:apply-templates select="." mode="paramlink"/>1467<xsl:text> is not a jrawMonitorID.</xsl:text>1468</xsl:template>14691470<xsl:template match="jclass" mode="errorid">1471<xsl:text>JVMTI_ERROR_INVALID_CLASS</xsl:text>1472</xsl:template>14731474<xsl:template match="jclass" mode="errordesc">1475<xsl:param name="id"/>1476<xsl:apply-templates select="." mode="paramlink"/>1477<xsl:text> is not a class object or the class has been unloaded.</xsl:text>1478</xsl:template>14791480<xsl:template match="jthread" mode="errorid">1481<xsl:text>JVMTI_ERROR_INVALID_THREAD</xsl:text>1482</xsl:template>14831484<xsl:template match="jthread" mode="errorid2">1485<xsl:text>JVMTI_ERROR_THREAD_NOT_ALIVE</xsl:text>1486</xsl:template>14871488<xsl:template match="jthread" mode="errordesc">1489<xsl:param name="id"/>1490<xsl:apply-templates select="." mode="paramlink"/>1491<xsl:text> is not a thread object.</xsl:text>1492</xsl:template>14931494<xsl:template match="jthread" mode="errordesc2">1495<xsl:param name="id"/>1496<xsl:apply-templates select="." mode="paramlink"/>1497<xsl:text> is not live (has not been started or is now dead).</xsl:text>1498</xsl:template>14991500<xsl:template match="jthreadGroup" mode="errorid">1501<xsl:text>JVMTI_ERROR_INVALID_THREAD_GROUP</xsl:text>1502</xsl:template>15031504<xsl:template match="jthreadGroup" mode="errordesc">1505<xsl:param name="id"/>1506<xsl:apply-templates select="." mode="paramlink"/>1507<xsl:text> is not a thread group object.</xsl:text>1508</xsl:template>15091510<xsl:template match="jobject" mode="errorid">1511<xsl:text>JVMTI_ERROR_INVALID_OBJECT</xsl:text>1512</xsl:template>15131514<xsl:template match="jobject" mode="errordesc">1515<xsl:param name="id"/>1516<xsl:apply-templates select="." mode="paramlink"/>1517<xsl:text> is not an object.</xsl:text>1518</xsl:template>15191520<xsl:template match="enum" mode="errorid">1521<xsl:choose>1522<xsl:when test=".='jvmtiEvent'">1523<xsl:text>JVMTI_ERROR_INVALID_EVENT_TYPE</xsl:text>1524</xsl:when>1525<xsl:otherwise>1526<xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>1527</xsl:otherwise>1528</xsl:choose>1529</xsl:template>15301531<xsl:template match="enum" mode="errordesc">1532<xsl:param name="id"/>1533<xsl:apply-templates select="." mode="paramlink"/>1534<xsl:text> is not a </xsl:text>1535<xsl:value-of select="."/>1536<xsl:text>.</xsl:text>1537</xsl:template>15381539<xsl:template match="jlocation" mode="errorid">1540<xsl:text>JVMTI_ERROR_INVALID_LOCATION</xsl:text>1541</xsl:template>15421543<xsl:template match="jlocation" mode="errordesc">1544<xsl:param name="id"/>1545<xsl:apply-templates select="." mode="paramlink"/>1546<xsl:text> is not a valid location.</xsl:text>1547</xsl:template>15481549<xsl:template match="jint" mode="haserrors">1550<xsl:if test="count(@min)=1">1551yes1552</xsl:if>1553</xsl:template>15541555<xsl:template match="jint" mode="errorid">1556<xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>1557</xsl:template>15581559<xsl:template match="jint" mode="errordesc">1560<xsl:param name="id"/>1561<xsl:apply-templates select="." mode="paramlink"/>1562<xsl:text> is less than </xsl:text>1563<code><xsl:value-of select="@min"/></code>1564<xsl:text>.</xsl:text>1565</xsl:template>15661567<xsl:template match="jvalue|jchar|jlong|jfloat|jdouble|jboolean|char|uchar|size_t|void|varargs|struct" mode="haserrors">1568</xsl:template>15691570<xsl:template match="jvalue|jchar|jlong|jfloat|jdouble|jboolean|char|uchar|size_t|void|varargs|struct" mode="errordesc">1571<xsl:param name="id"/>1572<xsl:message terminate="yes">1573attempt to get error description for <xsl:apply-templates select="." mode="paramlink"/>1574</xsl:message>1575</xsl:template>15761577<xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="haserrors">1578<xsl:if test="count(nullok)=0">1579yes1580</xsl:if>1581</xsl:template>15821583<xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="errorid">1584<xsl:text>JVMTI_ERROR_NULL_POINTER</xsl:text>1585</xsl:template>15861587<xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="errordesc">1588<xsl:param name="id"/>1589<xsl:if test="count(nullok)=1">1590<xsl:message terminate="yes">1591attempt to get error description in null ok case for <xsl:apply-templates select="." mode="paramlink"/>1592</xsl:message>1593</xsl:if>1594<xsl:apply-templates select="." mode="paramlink"/>1595<xsl:text> is </xsl:text>1596<code>NULL</code>1597<xsl:text>.</xsl:text>1598</xsl:template>15991600<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">1601<a>1602<xsl:attribute name="href">#<xsl:value-of select="ancestor::function/@id|ancestor::event/@id"/>.<xsl:value-of select="ancestor::param/@id"/>1603</xsl:attribute>1604<code>1605<xsl:value-of select="ancestor::param/@id"/>1606</code>1607</a>1608</xsl:template>16091610<xsl:template match="error" mode="haserrors">1611yes1612</xsl:template>16131614<xsl:template match="error">1615<tr>1616<th scope="row">1617<a>1618<xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>1619<code>1620<xsl:value-of select="@id"/>1621</code>1622</a>1623</th>1624<td>1625<xsl:apply-templates/>1626</td>1627</tr>1628</xsl:template>16291630<xsl:template match="errorsection">1631<div class="sep"/>1632<hr class="thick"/>1633<h2>1634Errors1635</h2>1636<div class="sep"/>1637<xsl:apply-templates select="intro"/>1638<div class="sep"/>1639<xsl:apply-templates select="errorcategory"/>1640<div class="sep"/>1641</xsl:template>16421643<xsl:template match="datasection">1644<div class="sep"/>1645<hr class="thick"/>1646<h2>1647Data Types1648</h2>1649<div class="sep"/>1650<xsl:apply-templates select="intro"/>1651<xsl:apply-templates select="basetypes"/>1652<div class="sep"/>1653<table id="StructureTypeDefinitions" class="bordered wide">1654<caption class="captionTitle">Structure Type Definitions</caption>1655<tr class="bgLight">1656<th scope="col">Type</th>1657<th scope="col">Description</th>1658</tr>1659<xsl:apply-templates select="//typedef|//uniontypedef|//capabilitiestypedef" mode="tableentry">1660<xsl:sort select="@id"/>1661</xsl:apply-templates>1662</table>1663<div class="sep"/>1664<table id="FunctionTypeDefinitions" class="bordered wide">1665<caption class="captionTitle">Function Type Definitions</caption>1666<tr class="bgLight">1667<th scope="col">Type</th>1668<th scope="col">Description</th>1669</tr>1670<xsl:apply-templates select="//callback" mode="tableentry">1671<xsl:sort select="@id"/>1672</xsl:apply-templates>1673</table>1674<div class="sep"/>1675<table id="EnumerationDefinitions" class="bordered wide">1676<caption class="captionTitle">Enumeration Definitions</caption>1677<tr class="bgLight">1678<th scope="col">Type</th>1679<th scope="col">Description</th>1680</tr>1681<xsl:apply-templates select="//constants[@kind='enum']" mode="tableentry">1682<xsl:sort select="@id"/>1683</xsl:apply-templates>1684</table>1685<div class="sep"/>1686<table id="FunctionTable" class="bordered wide">1687<caption class="captionTitle">Function Table Layout</caption>1688<tr class="bgLight">1689<th scope="col">Position</th>1690<th scope="col">Function</th>1691<th scope="col">Declaration</th>1692</tr>1693<xsl:call-template name="funcStruct">1694<xsl:with-param name="funcs" select="//functionsection/category/function[count(@hide)=0]"/>1695<xsl:with-param name="index" select="1"/>1696</xsl:call-template>1697</table>1698<div class="sep"/>1699</xsl:template>170017011702<xsl:template name="funcStruct">1703<xsl:param name="funcs"/>1704<xsl:param name="index"/>1705<xsl:variable name="thisFunction" select="$funcs[@num=$index]"/>1706<tr>1707<th scope="row" class="rightAligned">1708<xsl:number value="$index" format=" 1"/>1709</th>1710<xsl:choose>1711<xsl:when test="count($thisFunction)=1">1712<td>1713<a>1714<xsl:attribute name="href">1715<xsl:text>#</xsl:text>1716<xsl:value-of select="$thisFunction/@id"/>1717</xsl:attribute>1718<xsl:value-of select="$thisFunction/synopsis"/>1719</a>1720</td>1721<td>1722<pre>1723<xsl:text>jvmtiError (JNICALL *</xsl:text>1724<xsl:value-of select="$thisFunction/@id"/>1725<xsl:text>) (jvmtiEnv* env</xsl:text>1726<xsl:apply-templates select="$thisFunction/parameters" mode="signature">1727<xsl:with-param name="comma">1728<xsl:text>,
 </xsl:text>1729</xsl:with-param>1730</xsl:apply-templates>1731<xsl:text>);</xsl:text>1732</pre>1733</td>1734</xsl:when>1735<xsl:otherwise>1736<xsl:if test="count($thisFunction) != 0">1737<xsl:message terminate="yes">1738More than one function has index number <xsl:number value="$index" format=" 1"/>.1739</xsl:message>1740</xsl:if>1741<td>1742<i>reserved</i>1743</td>1744<td>1745<pre>1746<xsl:text>void *reserved</xsl:text>1747<xsl:value-of select="$index"/>1748<xsl:text>;</xsl:text>1749</pre>1750</td>1751</xsl:otherwise>1752</xsl:choose>1753</tr>1754<xsl:if test="count($funcs[@num > $index]) > 0">1755<xsl:call-template name="funcStruct">1756<xsl:with-param name="funcs" select="$funcs"/>1757<xsl:with-param name="index" select="1+$index"/>1758</xsl:call-template>1759</xsl:if>1760</xsl:template>1761176217631764<xsl:template match="errorcategory">1765<h3>1766<xsl:attribute name="id">1767<xsl:value-of select="@id"/>1768</xsl:attribute>1769<xsl:value-of select="@label"/>1770</h3>1771<xsl:apply-templates select="intro"/>1772<div class="sep"/>1773<dl>1774<xsl:apply-templates select="errorid"/>1775</dl>1776<div class="sep"/>1777</xsl:template>17781779<xsl:template match="errorid">1780<dt>1781<code>1782<xsl:attribute name="id">1783<xsl:value-of select="@id"/>1784</xsl:attribute>1785<xsl:value-of select="@id"/> (<xsl:value-of select="@num"/>)1786</code>1787</dt>1788<dd>1789<xsl:apply-templates/>1790<div class="sep"/>1791</dd>1792</xsl:template>17931794<xsl:template name="lastchangeversion">1795<xsl:for-each select="//change">1796<xsl:if test="position() = last()">1797<xsl:value-of select="@version"/>1798</xsl:if>1799</xsl:for-each>1800</xsl:template>18011802<xsl:template match="changehistory">1803<div class="sep"/>1804<hr class="thick"/>1805<h2>Change History</h2>1806Last update: <xsl:value-of select="@update"/><br/>1807Version: <xsl:call-template name="lastchangeversion"/>1808<div class="sep"/>1809<xsl:apply-templates select="intro"/>1810<div class="sep"/>1811<table class="bordered wide">1812<tr class="bgLight">1813<th scope="col">1814<b>Version</b><br/>1815<b>Date</b>1816</th>1817<th scope="col">1818<b>Changes</b>1819</th>1820</tr>1821<xsl:apply-templates select="change"/>1822</table>1823</xsl:template>18241825<xsl:template match="change">1826<tr>1827<th scope="row">1828<xsl:if test="count(@version)">1829<b>1830<xsl:value-of select="@version"/>1831</b>1832<br/>1833</xsl:if>1834<xsl:value-of select="@date"/>1835</th>1836<td>1837<xsl:apply-templates/>1838</td>1839</tr>1840</xsl:template>18411842<xsl:template match="intro">1843<xsl:if test="@id!=''">1844<xsl:choose>1845<xsl:when test="@label!=''">1846<h3>1847<xsl:attribute name="id">1848<xsl:value-of select="@id"/>1849</xsl:attribute>1850<xsl:value-of select="@label"/>1851</h3>1852</xsl:when>1853<xsl:otherwise>1854<a>1855<xsl:attribute name="name">1856<xsl:value-of select="@id"/>1857</xsl:attribute>1858</a>1859</xsl:otherwise>1860</xsl:choose>1861</xsl:if>1862<xsl:apply-templates/>1863</xsl:template>18641865<xsl:template match="issue">1866<xsl:if test="$development = 'Show'">1867<p style="color: red">1868To be resolved:1869<xsl:apply-templates/>1870</p>1871</xsl:if>1872</xsl:template>18731874<xsl:template match="rationale">1875<p style="color: purple">1876Rationale:1877<xsl:apply-templates/>1878</p>1879</xsl:template>18801881<xsl:template match="todo">1882<xsl:if test="$development = 'Show'">1883<p style="color: green">1884To do:1885<xsl:apply-templates/>1886</p>1887</xsl:if>1888</xsl:template>18891890<xsl:template match="elide">1891</xsl:template>18921893<xsl:template match="b">1894<b>1895<xsl:apply-templates/>1896</b>1897</xsl:template>18981899<xsl:template match="example">1900<blockquote>1901<pre>1902<xsl:apply-templates/>1903</pre>1904</blockquote>1905</xsl:template>190619071908<xsl:template match="table">1909<table class="bordered wide">1910<xsl:apply-templates/>1911</table>1912</xsl:template>19131914<xsl:template match="tr">1915<tr>1916<xsl:if test="@class">1917<xsl:attribute name="class">1918<xsl:value-of select="@class"/>1919</xsl:attribute>1920</xsl:if>1921<xsl:apply-templates/>1922</tr>1923</xsl:template>19241925<xsl:template match="td">1926<td>1927<xsl:if test="@class">1928<xsl:attribute name="class">1929<xsl:value-of select="@class"/>1930</xsl:attribute>1931</xsl:if>1932<xsl:apply-templates/>1933</td>1934</xsl:template>19351936<xsl:template match="th">1937<th>1938<xsl:if test="@class">1939<xsl:attribute name="class">1940<xsl:value-of select="@class"/>1941</xsl:attribute>1942</xsl:if>1943<xsl:if test="@scope">1944<xsl:attribute name="scope">1945<xsl:value-of select="@scope"/>1946</xsl:attribute>1947</xsl:if>1948<xsl:apply-templates/>1949</th>1950</xsl:template>19511952<xsl:template match="dl">1953<dl>1954<xsl:apply-templates/>1955</dl>1956</xsl:template>19571958<xsl:template match="dt">1959<dt>1960<xsl:apply-templates/>1961</dt>1962</xsl:template>19631964<xsl:template match="dd">1965<dd>1966<xsl:apply-templates/>1967</dd>1968</xsl:template>19691970<xsl:template match="blockquote">1971<blockquote>1972<xsl:apply-templates/>1973</blockquote>1974</xsl:template>19751976<xsl:template match="p">1977<div class="sep"/>1978</xsl:template>19791980<xsl:template match="br">1981<br>1982<xsl:apply-templates/>1983</br>1984</xsl:template>19851986<xsl:template match="ul">1987<ul>1988<xsl:attribute name="style">list-style-type:<xsl:value-of select="@type"/></xsl:attribute>1989<xsl:apply-templates/>1990</ul>1991</xsl:template>19921993<xsl:template match="li">1994<li>1995<xsl:apply-templates/>1996</li>1997</xsl:template>19981999<xsl:template match="code">2000<code>2001<xsl:apply-templates/>2002</code>2003</xsl:template>20042005<xsl:template match="tm">2006<xsl:apply-templates/>2007<sup style="font-size: xx-small">2008<xsl:text>TM</xsl:text>2009</sup>2010<xsl:text> </xsl:text>2011</xsl:template>20122013<xsl:template match="b">2014<b>2015<xsl:apply-templates/>2016</b>2017</xsl:template>20182019<xsl:template match="i">2020<i>2021<xsl:apply-templates/>2022</i>2023</xsl:template>20242025<xsl:template match="space">2026<xsl:text> </xsl:text>2027</xsl:template>20282029<xsl:template match="jvmti">2030<xsl:text>JVM</xsl:text><small style="font-size: xx-small"> </small><xsl:text>TI</xsl:text>2031</xsl:template>203220332034</xsl:stylesheet>203520362037