Mercurial > hg > graal-compiler
diff src/share/vm/prims/jvmti.xsl @ 0:a61af66fc99e jdk7-b24
Initial load
author | duke |
---|---|
date | Sat, 01 Dec 2007 00:00:00 +0000 |
parents | |
children | c18cbe5936b8 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/share/vm/prims/jvmti.xsl Sat Dec 01 00:00:00 2007 +0000 @@ -0,0 +1,2103 @@ +<?xml version="1.0"?> +<!-- + Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + + This code is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License version 2 only, as + published by the Free Software Foundation. + + This code is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + version 2 for more details (a copy is included in the LICENSE file that + accompanied this code). + + You should have received a copy of the GNU General Public License version + 2 along with this work; if not, write to the Free Software Foundation, + Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + + Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + CA 95054 USA or visit www.sun.com if you need additional information or + have any questions. + +--> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> + +<xsl:import href="jvmtiLib.xsl"/> + +<xsl:output method="html" indent="yes" + doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" + doctype-system="http://www.w3.org/TR/html4/loose.dtd"/> + +<xsl:param name="development"></xsl:param> + +<xsl:template match="specification"> + <html> + <head> + <title> + <xsl:value-of select="@label"/> + <xsl:text> </xsl:text> + <xsl:call-template name="showversion"/> + </title> + <style type="text/css"> + td.tableHeader {font-size: larger} + </style> + </head> + <body> + <table border="0" width="100%"> + <tr> + <td align="center"> + <xsl:apply-templates select="title"/> + </td> + </tr> + </table> + <ul> + <li> + <a href="#SpecificationIntro"><b>Introduction</b></a> + <ul> + <xsl:for-each select="intro"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/> + </xsl:attribute> + <b><xsl:value-of select="@label"/></b> + </a> + </li> + </xsl:for-each> + </ul> + </li> + <li> + <a href="#FunctionSection"><b>Functions</b></a> + <ul> + <xsl:for-each select="functionsection/intro"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/> + </xsl:attribute> + <b><xsl:value-of select="@label"/></b> + </a> + </li> + </xsl:for-each> + <li> + <a href="#FunctionIndex"><b>Function Index</b></a> + <ul> + <xsl:for-each select="functionsection/category"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/> + </xsl:attribute> + <b><xsl:value-of select="@label"/></b> + </a> + </li> + </xsl:for-each> + </ul> + </li> + <li> + <a href="#ErrorSection"><b>Error Codes</b></a> + </li> + </ul> + </li> + <li> + <a href="#EventSection"><b>Events</b></a> + <ul> + <li> + <a href="#EventIndex"><b>Event Index</b></a> + </li> + </ul> + </li> + <li> + <a href="#DataSection"><b>Data Types</b></a> + <ul> + <xsl:for-each select="//basetypes"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <b> + <xsl:value-of select="@label"/> + </b> + </a> + </li> + </xsl:for-each> + <li> + <a href="#StructureTypeDefinitions"><b>Structure Type Definitions</b></a> + </li> + <li> + <a href="#FunctionTypeDefinitions"><b>Function Type Definitions</b></a> + </li> + <li> + <a href="#EnumerationDefinitions"><b>Enumeration Definitions</b></a> + </li> + <li> + <a href="#FunctionTable"><b>Function Table</b></a> + </li> + </ul> + </li> + <li> + <a href="#ConstantIndex"><b>Constant Index</b></a> + </li> + <xsl:if test="$development = 'Show'"> + <li> + <a href="#SpecificationIssues"><b>Issues</b></a> + <ul> + <xsl:for-each select="issuessection/intro"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/> + </xsl:attribute> + <b><xsl:value-of select="@label"/></b> + </a> + </li> + </xsl:for-each> + </ul> + </li> + </xsl:if> + <li> + <a href="#ChangeHistory"><b>Change History</b></a> + </li> + </ul> + <!-- end table of contents, begin body --> + <p/> + <hr noshade="noshade" size="3"/> + <p/> + <p id="SpecificationIntro"/> + <xsl:apply-templates select="intro"/> + <p id="FunctionSection"/> + <xsl:apply-templates select="functionsection"/> + <p id="ErrorSection"/> + <xsl:apply-templates select="errorsection"/> + <p id="DataSection"/> + <xsl:apply-templates select="datasection"/> + <p id="EventSection"/> + <xsl:apply-templates select="eventsection"/> + <p id="ConstantIndex"/> + <p/> + <hr noshade="noshade" size="3"/> + <h2> + Constant Index + </h2> + <blockquote> + <xsl:apply-templates select="//constant" mode="index"> + <xsl:sort select="@id"/> + </xsl:apply-templates> + </blockquote> + <xsl:if test="$development = 'Show'"> + <p id="SpecificationIssues"/> + <p/> + <hr noshade="noshade" size="3"/> + <h2> + <xsl:value-of select="issuessection/@label"/> + </h2> + <xsl:apply-templates select="issuessection/intro"/> + </xsl:if> + <p id="ChangeHistory"/> + <xsl:apply-templates select="changehistory"/> + </body> +</html> +</xsl:template> + +<xsl:template match="title"> + <h1> + <xsl:apply-templates/> + </h1> + <h3> + <xsl:value-of select="@subtitle"/> + <xsl:text> </xsl:text> + <xsl:call-template name="showbasicversion"/> + </h3> +</xsl:template> + +<xsl:template match="functionsection"> + <p/> + <hr noshade="noshade" size="3"/> + <h2> + <xsl:value-of select="@label"/> + </h2> + <xsl:apply-templates select="intro"/> + <h3 id="FunctionIndex">Function Index</h3> + <ul> + <xsl:apply-templates select="category" mode="index"/> + </ul> + <xsl:apply-templates select="category" mode="body"/> +</xsl:template> + +<xsl:template match="category" mode="index"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <b> + <xsl:value-of select="@label"/> + </b> + </a> + <ul> + <xsl:apply-templates select="function[count(@hide)=0]" mode="index"/> + </ul> + </li> +</xsl:template> + +<xsl:template match="function|callback" mode="index"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <xsl:apply-templates select="synopsis" mode="index"/> + </a> + </li> +</xsl:template> + +<xsl:template match="synopsis" mode="index"> + <xsl:value-of select="."/> +</xsl:template> + +<xsl:template match="category" mode="body"> + <p> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </p> + <hr noshade="noshade" size="3"/> + <h2 align="center"><xsl:value-of select="@label"/></h2> + <xsl:value-of select="@label"/> functions: + <ul> + <xsl:apply-templates select="function[count(@hide)=0]" mode="index"/> + </ul> + <xsl:variable name="calltypes" select="callback"/> + <xsl:if test="count($calltypes)!=0"> + <xsl:value-of select="@label"/> function types: + <ul> + <xsl:apply-templates select="$calltypes" mode="index"/> + </ul> + </xsl:if> + <xsl:variable name="cattypes" + select="(descendant::typedef|descendant::uniontypedef|descendant::capabilitiestypedef|descendant::constants[@kind='enum'])"/> + <xsl:if test="count($cattypes)!=0"> + <xsl:value-of select="@label"/> types: + <ul> + <xsl:for-each select="$cattypes"> + <li> + <a> + <xsl:attribute name="href"> + <xsl:text>#</xsl:text> + <xsl:value-of select="@id"/> + </xsl:attribute> + <code><xsl:value-of select="@id"/></code> + </a> + <xsl:text> - </xsl:text> + <xsl:value-of select="@label"/> + </li> + </xsl:for-each> + </ul> + </xsl:if> + <xsl:variable name="catconst" + select="(descendant::constants[@kind!='enum'])"/> + <xsl:if test="count($catconst)!=0"> + <xsl:value-of select="@label"/> flags and constants: + <ul> + <xsl:for-each select="$catconst"> + <li> + <a> + <xsl:attribute name="href"> + <xsl:text>#</xsl:text> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@label"/> + </a> + </li> + </xsl:for-each> + </ul> + </xsl:if> + <xsl:apply-templates select="intro|typedef|uniontypedef|capabilitiestypedef"/> + <p/> + <xsl:apply-templates select="function[count(@hide)=0]|callback" mode="body"/> +</xsl:template> + +<xsl:template match="function" mode="body"> + <hr noshade="noshade" width="100%" size="1"> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + + </hr> + <xsl:apply-templates select="synopsis" mode="body"/> + <blockquote> + <xsl:apply-templates select="typedef" mode="code"/> + <xsl:apply-templates select="descendant::constants[@kind='enum']" mode="signature"/> + <pre> + <xsl:text>jvmtiError +</xsl:text> + <xsl:value-of select="@id"/>(jvmtiEnv* env<xsl:apply-templates select="parameters" mode="signature"/>)</pre> + </blockquote> + <xsl:apply-templates select="description"/> + <xsl:apply-templates select="." mode="generalinfo"/> + <xsl:apply-templates select="capabilities|eventcapabilities"/> + <xsl:apply-templates select="typedef" mode="body"/> + <xsl:apply-templates select="parameters" mode="body"/> + <xsl:apply-templates select="." mode="errors"/> +</xsl:template> + +<xsl:template match="function" mode="generalinfo"> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#EEEEFF"> + <td > + <a href="#jvmtiPhase">Phase</a> + </td> + <td> + <a href="#heapCallbacks">Callback Safe</a> + </td> + <td> + <a href="#FunctionTable">Position</a> + </td> + <td> + <a href="#ChangeHistory">Since</a> + </td> + </tr> + <tr> + <td > + <xsl:apply-templates select="." mode="phaseinfo"/> + </td> + <td> + <xsl:apply-templates select="." mode="callbacksafeinfo"/> + </td> + <td> + <xsl:value-of select="@num"/> + </td> + <td> + <xsl:value-of select="@since"/> + </td> + </tr> + </table> +</xsl:template> + +<xsl:template match="event" mode="generalinfo"> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#EEEEFF"> + <td > + <a href="#jvmtiPhase">Phase</a> + </td> + <td> + <a href="#jvmtiEvent">Event Type</a> + </td> + <td> + <a href="#jvmtiEvent">Number</a> + </td> + <td> + <a href="#enablingevents">Enabling</a> + </td> + <td> + <a href="#ChangeHistory">Since</a> + </td> + </tr> + <tr> + <td > + <xsl:apply-templates select="." mode="phaseinfo"/> + </td> + <td> + <code><xsl:value-of select="@const"/></code> + </td> + <td> + <xsl:value-of select="@num"/> + </td> + <td> + <code><a href="#SetEventNotificationMode">SetEventNotificationMode</a>(JVMTI_ENABLE, + <xsl:value-of select="@const"/>, NULL)</code> + </td> + <td> + <xsl:value-of select="@since"/> + </td> + </tr> + </table> +</xsl:template> + +<xsl:template match="function" mode="phaseinfo"> + may + <xsl:choose> + <xsl:when test="count(@phase) = 0 or @phase = 'live'"> + only be called during the live + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="@phase = 'onload'"> + only be called during the OnLoad or the live + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="@phase = 'any'"> + be called during any + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="@phase = 'start'"> + only be called during the start or the live + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="@phase = 'onloadOnly'"> + only be called during the OnLoad + </xsl:when> + <xsl:otherwise> + <xsl:message terminate="yes"> + bad phase - <xsl:value-of select="@phase"/> + </xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + phase +</xsl:template> + + +<xsl:template match="event" mode="phaseinfo"> + sent + <xsl:choose> + <xsl:when test="count(@phase) = 0 or @phase = 'live'"> + only during the live + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="@phase = 'any'"> + during the primordial, start or live + </xsl:when> + <xsl:otherwise> + <xsl:choose> + <xsl:when test="@phase = 'start'"> + during the start or live + </xsl:when> + <xsl:otherwise> + <xsl:message terminate="yes"> + bad phase - <xsl:value-of select="@phase"/> + </xsl:message> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> + phase +</xsl:template> + + +<xsl:template match="function" mode="callbacksafeinfo"> + <xsl:choose> + <xsl:when test="contains(@callbacksafe,'safe')"> + This function may be called from the callbacks to the + <a href="#Heap">Heap</a> iteration functions, or from the + event handlers for the + <a href="#GarbageCollectionStart"><code>GarbageCollectionStart</code></a>, + <a href="#GarbageCollectionFinish"><code>GarbageCollectionFinish</code></a>, + and <a href="#ObjectFree"><code>ObjectFree</code></a> events. + </xsl:when> + <xsl:otherwise> + No + </xsl:otherwise> + </xsl:choose> +</xsl:template> + + +<xsl:template match="callback" mode="body"> + <hr noshade="noshade" width="100%" size="1"> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </hr> + <xsl:apply-templates select="synopsis" mode="body"/> + <table cellpadding="0" cellspacing="0" border="0" width="90%" align="center"><tr><td> + <blockquote> + <pre> + <xsl:text>typedef </xsl:text> + <xsl:apply-templates select="child::*[position()=1]" mode="signature"/> + <xsl:text> (JNICALL *</xsl:text> + <xsl:value-of select="@id"/> + <xsl:text>) + (</xsl:text> + <xsl:for-each select="parameters"> + <xsl:apply-templates select="param[position()=1]" mode="signature"/> + <xsl:for-each select="param[position()>1]"> + <xsl:text>, + </xsl:text> + <xsl:apply-templates select="." mode="signature"/> + </xsl:for-each> + </xsl:for-each> + <xsl:text>);</xsl:text> + </pre> + </blockquote> + <xsl:apply-templates select="description"/> + <xsl:apply-templates select="parameters" mode="body"/> +</td></tr></table> +</xsl:template> + +<xsl:template match="synopsis" mode="body"> + <h3><xsl:value-of select="."/></h3> +</xsl:template> + +<xsl:template match="eventsection"> + <p/> + <hr noshade="noshade" size="3"/> + <h2> + <xsl:value-of select="@label"/> + </h2> + <xsl:apply-templates select="intro"/> + <blockquote> + <pre> + <xsl:text> +typedef struct { +</xsl:text> + <xsl:call-template name="eventStruct"> + <xsl:with-param name="events" select="event"/> + <xsl:with-param name="index" select="0"/> + <xsl:with-param name="started" select="false"/> + <xsl:with-param name="comment" select="'No'"/> + </xsl:call-template> + <xsl:text>} jvmtiEventCallbacks; +</xsl:text> + </pre> + </blockquote> + <p/> + <hr noshade="noshade" width="100%" size="1"/> + <h3 id="EventIndex">Event Index</h3> + <ul> + <xsl:apply-templates select="event" mode="index"> + <xsl:sort select="@label"/> + </xsl:apply-templates> + </ul> + <xsl:apply-templates select="event" mode="body"/> +</xsl:template> + +<xsl:template match="event" mode="index"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <b> + <xsl:value-of select="@label"/> + </b> + </a> + </li> +</xsl:template> + +<xsl:template match="event" mode="body"> + <p> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </p> + <hr noshade="noshade" size="3"/> + <h2><xsl:value-of select="@label"/></h2> + <p/> + <blockquote> + <xsl:apply-templates select="typedef" mode="code"/> + <pre> +<xsl:text>void JNICALL +</xsl:text> + <xsl:value-of select="@id"/>(jvmtiEnv *jvmti_env<xsl:apply-templates select="parameters" mode="signature"/>)</pre> + </blockquote> + <xsl:apply-templates select="description"/> + <xsl:apply-templates select="." mode="generalinfo"/> + <xsl:apply-templates select="typedef" mode="body"/> + <xsl:apply-templates select="capabilities"/> + <xsl:apply-templates select="parameters" mode="body"/> +</xsl:template> + +<xsl:template match="capabilitiestypedef" mode="code"> + <blockquote> + <pre> + <xsl:apply-templates select="." mode="genstruct"/> + </pre> + </blockquote> +</xsl:template> + +<xsl:template match="typedef" mode="code"> + <pre> + <xsl:call-template name="gentypedef"> + <xsl:with-param name="tdef" select="."/> + </xsl:call-template> + </pre> +</xsl:template> + +<xsl:template match="uniontypedef" mode="code"> + <pre> + <xsl:call-template name="genuniontypedef"> + <xsl:with-param name="tdef" select="."/> + </xsl:call-template> + </pre> +</xsl:template> + +<xsl:template match="capabilitiestypedef|typedef|uniontypedef" mode="description"> + <xsl:apply-templates select="description"/> +</xsl:template> + +<xsl:template match="capabilitiestypedef|typedef|uniontypedef"> + <h4> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@label"/> + </h4> + <xsl:apply-templates select="." mode="description"/> + <blockquote> + <xsl:apply-templates select="." mode="code"/> + <xsl:apply-templates select="." mode="justbody"/> + </blockquote> +</xsl:template> + +<xsl:template match="constants" mode="signature"> + <pre> + <xsl:apply-templates select="." mode="enum"/> + </pre> +</xsl:template> + +<xsl:template match="typedef|uniontypedef" mode="body"> + <p> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </p> + <xsl:apply-templates select="." mode="justbody"/> +</xsl:template> + +<xsl:template match="typedef|uniontypedef" mode="justbody"> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="3" align="center" class="tableHeader"> + <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/> + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Field + </td> + <td> + Type + </td> + <td> + Description + </td> + </tr> + <xsl:apply-templates select="field" mode="body"/> + </table> +</xsl:template> + +<xsl:template match="capabilitiestypedef" mode="body"> + <p> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </p> + <xsl:apply-templates select="." mode="justbody"/> +</xsl:template> + +<xsl:template match="capabilitiestypedef" mode="justbody"> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="3" align="center" class="tableHeader"> + <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/> + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td colspan="3"> + All types are <code>unsigned int : 1</code> + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Field + </td> + <td> + Description + </td> + <td> + <a href="#ChangeHistory">Since</a> + </td> + </tr> + <xsl:apply-templates select="capabilityfield" mode="body"/> + </table> +</xsl:template> + +<xsl:template match="typedef|uniontypedef|capabilitiestypedef|constants" mode="tableentry"> + <tr> + <td> + <a> + <xsl:attribute name="href"> + <xsl:text>#</xsl:text> + <xsl:value-of select="@id"/> + </xsl:attribute> + <code><xsl:value-of select="@id"/></code> + </a> + </td> + <td> + <xsl:value-of select="@label"/> + </td> + </tr> +</xsl:template> + +<xsl:template match="field" mode="body"> + <tr> + <td> + <code> + <xsl:attribute name="id"> + <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@id"/> + </code> + </td> + <td> + <code> + <xsl:apply-templates select="child::*[position()=1]" mode="link"/> + </code> + </td> + <td> + <xsl:apply-templates select="description" mode="brief"/> + </td> + </tr> +</xsl:template> + +<xsl:template match="capabilityfield" mode="body"> + <tr> + <td> + <code> + <xsl:choose> + <xsl:when test="@disp1!=''"> + <xsl:value-of select="@disp1"/> + <br></br> + <xsl:value-of select="@disp2"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@id"/> + </xsl:otherwise> + </xsl:choose> + </code> + </td> + <td> + <a> + <xsl:attribute name="name"> + <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/> + </xsl:attribute> + </a> + <xsl:apply-templates select="description" mode="brief"/> + </td> + <td> + <xsl:value-of select="@since"/> + </td> + </tr> +</xsl:template> + +<xsl:template match="callback" mode="tableentry"> + <tr> + <td> + <a> + <xsl:attribute name="href"> + <xsl:text>#</xsl:text> + <xsl:value-of select="@id"/> + </xsl:attribute> + <code> + <xsl:value-of select="@id"/> + </code> + </a> + </td> + <td> + <xsl:apply-templates select="synopsis" mode="index"/> + </td> + </tr> +</xsl:template> + +<xsl:template match="constants"> + <blockquote> + <a> + <xsl:attribute name="name"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </a> + <table border="1" cellpadding="3" cellspacing="0"> + <tr bgcolor="#CCCCFF"> + <td colspan="3" align="center" class="tableHeader"> + <xsl:value-of select="@label"/> + <xsl:if test="@kind='enum'"> + <xsl:text> (</xsl:text> + <code> + <xsl:value-of select="@id"/> + </code> + <xsl:text>)</xsl:text> + </xsl:if> + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Constant + </td> + <td> + Value + </td> + <td> + Description + </td> + </tr> + <xsl:apply-templates select="constant" mode="body"/> + </table> + </blockquote> +</xsl:template> + +<xsl:template match="constant" mode="index"> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/> + </xsl:attribute> + <code> + <xsl:value-of select="@id"/> + </code> + </a> + <br/> +</xsl:template> + +<xsl:template match="constant" mode="body"> + <tr> + <td> + <code> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@id"/> + </code> + </td> + <td align="right"> + <xsl:value-of select="@num"/> + </td> + <td> + <xsl:apply-templates/> + </td> + </tr> +</xsl:template> + +<xsl:template match="basetypes"> + <p> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </p> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center" class="tableHeader"> + <xsl:value-of select="@label"/> + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Type + </td> + <td> + Description + </td> + </tr> + <xsl:apply-templates select="basetype" mode="body"/> + </table> +</xsl:template> + +<xsl:template match="basetype" mode="body"> + <xsl:choose> + <xsl:when test="count(definition)=0"> + <tr> + <td> + <code> + <xsl:value-of select="@id"/> + </code> + </td> + <td> + <a> + <xsl:attribute name="name"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </a> + <xsl:apply-templates select="description" mode="brief"/> + </td> + </tr> + </xsl:when> + <xsl:otherwise> + <tr> + <td rowspan="2"> + <code> + <xsl:value-of select="@id"/> + </code> + </td> + <td> + <a> + <xsl:attribute name="name"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </a> + <xsl:apply-templates select="description" mode="brief"/> + </td> + </tr> + <tr> + <td> + <pre> + <xsl:apply-templates select="definition"/> + </pre> + </td> + </tr> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="description"> + <xsl:apply-templates/> + <p/> +</xsl:template> + +<xsl:template match="description" mode="brief"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="fieldlink"> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@struct"/>.<xsl:value-of select="@id"/></xsl:attribute> + <xsl:choose> + <xsl:when test=".=''"> + <code> + <xsl:value-of select="@id"/> + </code> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </a> +</xsl:template> + +<xsl:template match="paramlink"> + <a> + <xsl:attribute name="href">#<xsl:value-of select="ancestor::function/@id|ancestor::event/@id"/>.<xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:choose> + <xsl:when test=".=''"> + <code> + <xsl:value-of select="@id"/> + </code> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </a> +</xsl:template> + +<xsl:template match="eventlink|errorlink|typelink|datalink|functionlink"> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <xsl:choose> + <xsl:when test=".=''"> + <code> + <xsl:value-of select="@id"/> + </code> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </a> +</xsl:template> + +<xsl:template match="functionphaselist"> + <xsl:variable name="phase" select="@phase"/> + <ul> + <xsl:for-each select="/specification/functionsection/category/function[@phase=$phase and count(@hide)=0]"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <b> + <xsl:value-of select="@id"/> + </b> + </a> + </li> + </xsl:for-each> + </ul> +</xsl:template> + +<xsl:template match="eventphaselist"> + <xsl:variable name="phase" select="@phase"/> + <ul> + <xsl:for-each select="//eventsection/event[@phase=$phase]"> + <li> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <b> + <xsl:value-of select="@id"/> + </b> + </a> + </li> + </xsl:for-each> + </ul> +</xsl:template> + +<xsl:template match="externallink"> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="."/> + </a> +</xsl:template> + +<xsl:template match="vmspeclink"> + <xsl:if test="count(@id)=1"> + <a> + <xsl:attribute name="href"> + <xsl:text>http://java.sun.com/docs/books/vmspec/2nd-edition/html/</xsl:text> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@name"/> + </a> + <xsl:text> </xsl:text> + <xsl:choose> + <xsl:when test="count(@preposition)=1"> + <xsl:value-of select="@preposition"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>of</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:text> the </xsl:text> + </xsl:if> + <a> + <xsl:attribute name="href"> + <xsl:text>http://java.sun.com/docs/books/vmspec/</xsl:text> + </xsl:attribute> + <i> + <xsl:text>Java Virtual Machine Specification</xsl:text> + </i> + </a> +</xsl:template> + +<xsl:template match="internallink"> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <xsl:apply-templates/> + </a> +</xsl:template> + +<xsl:template match="parameters" mode="body"> + <p/> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="3" align="center" class="tableHeader"> + Parameters + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Name + </td> + <td> + Type + </td> + <td> + Description + </td> + </tr> + <xsl:apply-templates select="param[count(jclass/@method)=0]" mode="body"/> + </table> +</xsl:template> + +<xsl:template match="param" mode="body"> + <tr> + <td> + <code> + <xsl:attribute name="id"> + <xsl:value-of select="../../@id"/>.<xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@id"/> + </code> + </td> + <td> + <code> + <xsl:apply-templates select="child::*[position()=1]" mode="link"/> + </code> + </td> + <td> + <xsl:apply-templates select="description" mode="brief"/> + <xsl:if test="count(ancestor::function)=1"> + <xsl:apply-templates select="child::*[position()=1]" mode="funcdescription"/> + </xsl:if> + </td> + </tr> +</xsl:template> + +<xsl:template match="capabilities"> + <p/> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center" class="tableHeader"> + Capabilities + </td> + </tr> + <xsl:choose> + <xsl:when test="count(required)=0"> + <tr> + <td colspan="2"> + <b>Required Functionality</b> + </td> + </tr> + </xsl:when> + <xsl:otherwise> + <tr> + <td colspan="2"> + <b>Optional Functionality:</b> might not be implemented for all + virtual machines. + <xsl:choose> + <xsl:when test="count(required)=1"> + The following capability + </xsl:when> + <xsl:otherwise> + One of the following capabilities + </xsl:otherwise> + </xsl:choose> + (as returned by + <a href="#GetCapabilities"><code>GetCapabilities</code></a>) + must be true to use this + <xsl:choose> + <xsl:when test="ancestor::function"> + function. + </xsl:when> + <xsl:otherwise> + event. + </xsl:otherwise> + </xsl:choose> + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td > + Capability + </td> + <td> + Effect + </td> + </tr> + <xsl:apply-templates select="required"/> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="count(capability)!=0"> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center"> + Optional Features + </td> + </tr> + <xsl:if test="count(required)=0"> + <tr bgcolor="#EEEEFF"> + <td > + Capability + </td> + <td> + Effect + </td> + </tr> + </xsl:if> + <xsl:apply-templates select="capability"/> + </xsl:if> + </table> +</xsl:template> + +<xsl:template match="eventcapabilities"> + <p/> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center" class="tableHeader"> + Capabilities + </td> + </tr> + <tr> + <td colspan="2"> + <b>Required Functionality</b> + </td> + </tr> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center"> + Event Enabling Capabilities + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td > + Capability + </td> + <td> + Events + </td> + </tr> + <xsl:for-each select="//capabilityfield"> + <xsl:variable name="capa" select="@id"/> + <xsl:variable name="events" select="//event[capabilities/required/@id=$capa]"/> + <xsl:if test="count($events)"> + <tr> + <td> + <a> + <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/> + </xsl:attribute> + <code> + <xsl:value-of select="@id"/> + </code> + </a> + </td> + <td> + <xsl:for-each select="$events"> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/> + </xsl:attribute> + <code> + <xsl:value-of select="@id"/> + </code> + </a> + <br/> + </xsl:for-each> + </td> + </tr> + </xsl:if> + </xsl:for-each> + </table> +</xsl:template> + +<xsl:template match="capability|required"> + <tr> + <td> + <a> + <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/> + </xsl:attribute> + <code> + <xsl:value-of select="@id"/> + </code> + </a> + </td> + <td> + <xsl:choose> + <xsl:when test=".=''"> + <xsl:variable name="desiredID" select="@id"/> + <xsl:for-each select="//capabilityfield[@id=$desiredID]"> + <xsl:apply-templates select="description" mode="brief"/> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </td> + </tr> +</xsl:template> + +<xsl:template match="function" mode="errors"> + <xsl:variable name="haserrors"> + <xsl:apply-templates select="capabilities/required" mode="haserrors"/> + <xsl:apply-templates select="errors/error" mode="haserrors"/> + <xsl:apply-templates select="parameters/param" mode="haserrors"/> + </xsl:variable> + <p/> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center" class="tableHeader"> + Errors + </td> + </tr> + <xsl:choose> + <xsl:when test="contains($haserrors,'yes')"> + <tr> + <td colspan="2"> + This function returns either a + <a href="#universal-error">universal error</a> + or one of the following errors + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Error + </td> + <td> + Description + </td> + </tr> + <xsl:apply-templates select="capabilities/required" mode="errors"/> + <xsl:apply-templates select="errors/error"/> + <xsl:apply-templates select="parameters/param" mode="errors"/> + </xsl:when> + <xsl:otherwise> + <tr> + <td colspan="2"> + This function returns a + <a href="#universal-error">universal error</a> + </td> + </tr> + </xsl:otherwise> + </xsl:choose> + </table> +</xsl:template> + +<xsl:template match="required" mode="haserrors"> + yes +</xsl:template> + +<xsl:template match="required" mode="errors"> + <tr> + <td> + <a href="#JVMTI_ERROR_MUST_POSSESS_CAPABILITY"> + <code> + JVMTI_ERROR_MUST_POSSESS_CAPABILITY + </code> + </a> + </td> + <td> + The environment does not possess the capability + <a> + <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/></xsl:attribute> + <code> + <xsl:value-of select="@id"/> + </code> + </a>. + Use <a href="#AddCapabilities"><code>AddCapabilities</code></a>. + </td> + </tr> +</xsl:template> + +<xsl:template match="param" mode="haserrors"> + <xsl:apply-templates mode="haserrors"/> +</xsl:template> + +<xsl:template match="param" mode="errors"> + <xsl:apply-templates select="." mode="errors1"/> + <xsl:apply-templates select="." mode="errors2"/> +</xsl:template> + +<xsl:template match="param" mode="errors1"> + <xsl:variable name="haserrors"> + <xsl:apply-templates mode="haserrors"/> + </xsl:variable> + <xsl:if test="contains($haserrors,'yes')!=0"> + <xsl:variable name="erroridraw"> + <xsl:apply-templates mode="errorid"/> + </xsl:variable> + <xsl:variable name="errorid" select="normalize-space($erroridraw)"/> + <tr> + <td> + <a> + <xsl:attribute name="href">#<xsl:value-of select="$errorid"/></xsl:attribute> + <code> + <xsl:value-of select="$errorid"/> + </code> + </a> + </td> + <td> + <xsl:apply-templates mode="errordesc"> + <xsl:with-param name="id" select="@id"/> + </xsl:apply-templates> + </td> + </tr> + </xsl:if> +</xsl:template> + +<xsl:template match="param" mode="errors2"> + <xsl:variable name="haserrors2"> + <xsl:apply-templates mode="haserrors2"/> + </xsl:variable> + <xsl:if test="contains($haserrors2,'yes')!=0"> + <xsl:variable name="erroridraw2"> + <xsl:apply-templates mode="errorid2"/> + </xsl:variable> + <xsl:variable name="errorid2" select="normalize-space($erroridraw2)"/> + <tr> + <td> + <a> + <xsl:attribute name="href">#<xsl:value-of select="$errorid2"/></xsl:attribute> + <code> + <xsl:value-of select="$errorid2"/> + </code> + </a> + </td> + <td> + <xsl:apply-templates mode="errordesc2"> + <xsl:with-param name="id" select="@id"/> + </xsl:apply-templates> + </td> + </tr> + </xsl:if> +</xsl:template> + +<xsl:template match="description" mode="haserrors"> +</xsl:template> + +<xsl:template match="description" mode="errorid"> +</xsl:template> + +<xsl:template match="description" mode="errordesc"> +</xsl:template> + +<xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jthread|jthreadGroup|jobject|enum|jlocation" mode="haserrors"> + yes +</xsl:template> + +<xsl:template match="jclass" mode="haserrors"> + <xsl:if test="count(@method)=0"> + yes + </xsl:if> +</xsl:template> + +<xsl:template match="description|jclass|jfieldID|jrawMonitorID| + jthreadGroup|jobject|enum|jlocation|jvalue|jchar|jint|jlong|jfloat|jdouble|jboolean| + char|uchar|size_t|void|varargs|struct| + ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="haserrors2"> +</xsl:template> + +<xsl:template match="jmethodID" mode="haserrors2"> + <xsl:if test="count(@native)=1 and contains(@native,'error')"> + yes + </xsl:if> +</xsl:template> + +<xsl:template match="jthread" mode="haserrors2"> + <xsl:if test="count(@started)=0 or contains(@started,'yes') or @started=''"> + yes + </xsl:if> +</xsl:template> + +<xsl:template match="jframeID" mode="haserrors2"> + yes +</xsl:template> + +<xsl:template match="description" mode="errorid2"> +</xsl:template> + +<xsl:template match="description" mode="errordesc2"> +</xsl:template> + +<xsl:template match="jmethodID" mode="errorid"> + <xsl:text>JVMTI_ERROR_INVALID_METHODID</xsl:text> +</xsl:template> + +<xsl:template match="jmethodID" mode="errorid2"> + <xsl:text>JVMTI_ERROR_NATIVE_METHOD</xsl:text> +</xsl:template> + +<xsl:template match="jmethodID" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not a jmethodID.</xsl:text> +</xsl:template> + +<xsl:template match="jmethodID" mode="errordesc2"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is a native method.</xsl:text> +</xsl:template> + +<xsl:template match="jfieldID" mode="errorid"> + <xsl:text>JVMTI_ERROR_INVALID_FIELDID</xsl:text> +</xsl:template> + +<xsl:template match="jfieldID" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not a jfieldID.</xsl:text> +</xsl:template> + +<xsl:template match="jframeID" mode="errorid"> + <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text> +</xsl:template> + +<xsl:template match="jframeID" mode="errorid2"> + <xsl:text>JVMTI_ERROR_NO_MORE_FRAMES</xsl:text> +</xsl:template> + +<xsl:template match="jframeID" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is less than zero.</xsl:text> +</xsl:template> + +<xsl:template match="jframeID" mode="errordesc2"> + <xsl:param name="id"/> + <xsl:text>There are no stack frames at the specified </xsl:text> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text>.</xsl:text> +</xsl:template> + +<xsl:template match="jrawMonitorID" mode="errorid"> + <xsl:text>JVMTI_ERROR_INVALID_MONITOR</xsl:text> +</xsl:template> + +<xsl:template match="jrawMonitorID" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not a jrawMonitorID.</xsl:text> +</xsl:template> + +<xsl:template match="jclass" mode="errorid"> + <xsl:text>JVMTI_ERROR_INVALID_CLASS</xsl:text> +</xsl:template> + +<xsl:template match="jclass" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not a class object or the class has been unloaded.</xsl:text> +</xsl:template> + +<xsl:template match="jthread" mode="errorid"> + <xsl:text>JVMTI_ERROR_INVALID_THREAD</xsl:text> +</xsl:template> + +<xsl:template match="jthread" mode="errorid2"> + <xsl:text>JVMTI_ERROR_THREAD_NOT_ALIVE</xsl:text> +</xsl:template> + +<xsl:template match="jthread" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not a thread object.</xsl:text> +</xsl:template> + +<xsl:template match="jthread" mode="errordesc2"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not live (has not been started or is now dead).</xsl:text> +</xsl:template> + +<xsl:template match="jthreadGroup" mode="errorid"> + <xsl:text>JVMTI_ERROR_INVALID_THREAD_GROUP</xsl:text> +</xsl:template> + +<xsl:template match="jthreadGroup" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not a thread group object.</xsl:text> +</xsl:template> + +<xsl:template match="jobject" mode="errorid"> + <xsl:text>JVMTI_ERROR_INVALID_OBJECT</xsl:text> +</xsl:template> + +<xsl:template match="jobject" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not an object.</xsl:text> +</xsl:template> + +<xsl:template match="enum" mode="errorid"> + <xsl:choose> + <xsl:when test=".='jvmtiEvent'"> + <xsl:text>JVMTI_ERROR_INVALID_EVENT_TYPE</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="enum" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not a </xsl:text> + <xsl:value-of select="."/> + <xsl:text>.</xsl:text> +</xsl:template> + +<xsl:template match="jlocation" mode="errorid"> + <xsl:text>JVMTI_ERROR_INVALID_LOCATION</xsl:text> +</xsl:template> + +<xsl:template match="jlocation" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is not a valid location.</xsl:text> +</xsl:template> + +<xsl:template match="jint" mode="haserrors"> + <xsl:if test="count(@min)=1"> + yes + </xsl:if> +</xsl:template> + +<xsl:template match="jint" mode="errorid"> + <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text> +</xsl:template> + +<xsl:template match="jint" mode="errordesc"> + <xsl:param name="id"/> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is less than </xsl:text> + <code><xsl:value-of select="@min"/></code> + <xsl:text>.</xsl:text> +</xsl:template> + +<xsl:template match="jvalue|jchar|jlong|jfloat|jdouble|jboolean|char|uchar|size_t|void|varargs|struct" mode="haserrors"> +</xsl:template> + +<xsl:template match="jvalue|jchar|jlong|jfloat|jdouble|jboolean|char|uchar|size_t|void|varargs|struct" mode="errordesc"> + <xsl:param name="id"/> + <xsl:message terminate="yes"> + attempt to get error description for <xsl:apply-templates select="." mode="paramlink"/> + </xsl:message> +</xsl:template> + +<xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="haserrors"> + <xsl:if test="count(nullok)=0"> + yes + </xsl:if> +</xsl:template> + +<xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="errorid"> + <xsl:text>JVMTI_ERROR_NULL_POINTER</xsl:text> +</xsl:template> + +<xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="errordesc"> + <xsl:param name="id"/> + <xsl:if test="count(nullok)=1"> + <xsl:message terminate="yes"> + attempt to get error description in null ok case for <xsl:apply-templates select="." mode="paramlink"/> + </xsl:message> + </xsl:if> + <xsl:apply-templates select="." mode="paramlink"/> + <xsl:text> is </xsl:text> + <code>NULL</code> + <xsl:text>.</xsl:text> +</xsl:template> + +<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"> + <a> + <xsl:attribute name="href">#<xsl:value-of select="ancestor::function/@id|ancestor::event/@id"/>.<xsl:value-of select="ancestor::param/@id"/> + </xsl:attribute> + <code> + <xsl:value-of select="ancestor::param/@id"/> + </code> + </a> +</xsl:template> + +<xsl:template match="error" mode="haserrors"> + yes +</xsl:template> + +<xsl:template match="error"> + <tr> + <td> + <a> + <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute> + <code> + <xsl:value-of select="@id"/> + </code> + </a> + </td> + <td> + <xsl:apply-templates/> + </td> + </tr> +</xsl:template> + +<xsl:template match="errorsection"> + <p/> + <hr noshade="noshade" size="3"/> + <h2> + Errors + </h2> + <p/> + <xsl:apply-templates select="intro"/> + <p/> + <xsl:apply-templates select="errorcategory"/> + <p/> +</xsl:template> + +<xsl:template match="datasection"> + <p/> + <hr noshade="noshade" size="3"/> + <h2> + Data Types + </h2> + <p/> + <xsl:apply-templates select="intro"/> + <xsl:apply-templates select="basetypes"/> + <p/> + <a name="StructureTypeDefinitions"></a> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center" class="tableHeader"> + Structure Type Definitions + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Type + </td> + <td> + Description + </td> + </tr> + <xsl:apply-templates select="//typedef|//uniontypedef|//capabilitiestypedef" mode="tableentry"> + <xsl:sort select="@id"/> + </xsl:apply-templates> + </table> + <p/> + <a name="FunctionTypeDefinitions"></a> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center" class="tableHeader"> + Function Type Definitions + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Type + </td> + <td> + Description + </td> + </tr> + <xsl:apply-templates select="//callback" mode="tableentry"> + <xsl:sort select="@id"/> + </xsl:apply-templates> + </table> + <p/> + <a name="EnumerationDefinitions"></a> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="2" align="center" class="tableHeader"> + Enumeration Definitions + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Type + </td> + <td> + Description + </td> + </tr> + <xsl:apply-templates select="//constants[@kind='enum']" mode="tableentry"> + <xsl:sort select="@id"/> + </xsl:apply-templates> + </table> + <p/> + <a name="FunctionTable"></a> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#CCCCFF"> + <td colspan="3" align="center" class="tableHeader"> + Function Table Layout + </td> + </tr> + <tr bgcolor="#EEEEFF"> + <td> + Position + </td> + <td> + Function + </td> + <td> + Declaration + </td> + </tr> + <xsl:call-template name="funcStruct"> + <xsl:with-param name="funcs" select="//functionsection/category/function[count(@hide)=0]"/> + <xsl:with-param name="index" select="1"/> + </xsl:call-template> + </table> + <p/> +</xsl:template> + + +<xsl:template name="funcStruct"> + <xsl:param name="funcs"/> + <xsl:param name="index"/> + <xsl:variable name="thisFunction" select="$funcs[@num=$index]"/> + <tr> + <td align="right"> + <xsl:number value="$index" format=" 1"/> + </td> + <xsl:choose> + <xsl:when test="count($thisFunction)=1"> + <td> + <a> + <xsl:attribute name="href"> + <xsl:text>#</xsl:text> + <xsl:value-of select="$thisFunction/@id"/> + </xsl:attribute> + <xsl:value-of select="$thisFunction/synopsis"/> + </a> + </td> + <td> + <pre> + <xsl:text>jvmtiError (JNICALL *</xsl:text> + <xsl:value-of select="$thisFunction/@id"/> + <xsl:text>) (jvmtiEnv* env</xsl:text> + <xsl:apply-templates select="$thisFunction/parameters" mode="signature"> + <xsl:with-param name="comma"> + <xsl:text>, 
 </xsl:text> + </xsl:with-param> + </xsl:apply-templates> + <xsl:text>);</xsl:text> + </pre> + </td> + </xsl:when> + <xsl:otherwise> + <xsl:if test="count($thisFunction) != 0"> + <xsl:message terminate="yes"> + More than one function has index number <xsl:number value="$index" format=" 1"/>. + </xsl:message> + </xsl:if> + <td> + <i>reserved</i> + </td> + <td> + <pre> + <xsl:text>void *reserved</xsl:text> + <xsl:value-of select="$index"/> + <xsl:text>;</xsl:text> + </pre> + </td> + </xsl:otherwise> + </xsl:choose> + </tr> + <xsl:if test="count($funcs[@num > $index]) > 0"> + <xsl:call-template name="funcStruct"> + <xsl:with-param name="funcs" select="$funcs"/> + <xsl:with-param name="index" select="1+$index"/> + </xsl:call-template> + </xsl:if> +</xsl:template> + + + +<xsl:template match="errorcategory"> + <h3> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@label"/> + </h3> + <xsl:apply-templates select="intro"/> + <p/> + <dl> + <xsl:apply-templates select="errorid"/> + </dl> + <p/> +</xsl:template> + +<xsl:template match="errorid"> + <dt> + <code> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@id"/> (<xsl:value-of select="@num"/>) + </code> + </dt> + <dd> + <xsl:apply-templates/> + <p/> + </dd> +</xsl:template> + +<xsl:template match="changehistory"> + <p/><hr noshade="noshade" size="3"/> + <h2>Change History</h2> + Last update: <xsl:value-of select="@update"/><br/> + Version: <xsl:call-template name="showversion"/> + <p/> + <xsl:apply-templates select="intro"/> + <p/> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <tr bgcolor="#EEEEFF"> + <td> + <b>Version</b><br/> + <b>Date</b> + </td> + <td> + <b>Changes</b> + </td> + </tr> + <xsl:apply-templates select="change"/> + </table> +</xsl:template> + +<xsl:template match="change"> + <tr> + <td> + <xsl:if test="count(@version)"> + <b> + <xsl:value-of select="@version"/> + </b> + <br/> + </xsl:if> + <xsl:value-of select="@date"/> + </td> + <td> + <xsl:apply-templates/> + </td> + </tr> +</xsl:template> + +<xsl:template match="intro"> + <xsl:if test="@id!=''"> + <xsl:choose> + <xsl:when test="@label!=''"> + <h4> + <xsl:attribute name="id"> + <xsl:value-of select="@id"/> + </xsl:attribute> + <xsl:value-of select="@label"/> + </h4> + </xsl:when> + <xsl:otherwise> + <a> + <xsl:attribute name="name"> + <xsl:value-of select="@id"/> + </xsl:attribute> + </a> + </xsl:otherwise> + </xsl:choose> + </xsl:if> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="issue"> + <xsl:if test="$development = 'Show'"> + <p style="color: red"> + To be resolved: + <xsl:apply-templates/> + </p> + </xsl:if> +</xsl:template> + +<xsl:template match="rationale"> + <p style="color: purple"> + Rationale: + <xsl:apply-templates/> + </p> +</xsl:template> + +<xsl:template match="todo"> + <xsl:if test="$development = 'Show'"> + <p style="color: green"> + To do: + <xsl:apply-templates/> + </p> + </xsl:if> +</xsl:template> + +<xsl:template match="elide"> +</xsl:template> + +<xsl:template match="b"> + <b> + <xsl:apply-templates/> + </b> +</xsl:template> + +<xsl:template match="example"> + <blockquote> + <pre> + <xsl:apply-templates/> + </pre> + </blockquote> +</xsl:template> + + +<xsl:template match="table"> + <table border="1" cellpadding="3" cellspacing="0" width="100%"> + <xsl:apply-templates/> + </table> +</xsl:template> + +<xsl:template match="tr"> + <tr> + <xsl:apply-templates/> + </tr> +</xsl:template> + +<xsl:template match="td"> + <td> + <xsl:attribute name="align"> + <xsl:value-of select="@align"/> + </xsl:attribute> + <xsl:apply-templates/> + </td> +</xsl:template> + +<xsl:template match="th"> + <th bgcolor="#EEEEFF"> + <xsl:attribute name="align"> + <xsl:value-of select="@align"/> + </xsl:attribute> + <xsl:apply-templates/> + </th> +</xsl:template> + +<xsl:template match="dl"> + <dl> + <xsl:apply-templates/> + </dl> +</xsl:template> + +<xsl:template match="dt"> + <dt> + <xsl:apply-templates/> + </dt> +</xsl:template> + +<xsl:template match="dd"> + <dd> + <xsl:apply-templates/> + </dd> +</xsl:template> + +<xsl:template match="p"> + <p> + <xsl:apply-templates/> + </p> +</xsl:template> + +<xsl:template match="br"> + <br> + <xsl:apply-templates/> + </br> +</xsl:template> + +<xsl:template match="ul"> + <ul> + <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute> + <xsl:apply-templates/> + </ul> +</xsl:template> + +<xsl:template match="li"> + <li> + <xsl:apply-templates/> + </li> +</xsl:template> + +<xsl:template match="code"> + <code> + <xsl:apply-templates/> + </code> +</xsl:template> + +<xsl:template match="tm"> + <xsl:apply-templates/> + <sup style="font-size: xx-small"> + <xsl:text>TM</xsl:text> + </sup> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="b"> + <b> + <xsl:apply-templates/> + </b> +</xsl:template> + +<xsl:template match="i"> + <i> + <xsl:apply-templates/> + </i> +</xsl:template> + +<xsl:template match="space"> + <xsl:text> </xsl:text> +</xsl:template> + +<xsl:template match="jvmti"> + <xsl:text>JVM</xsl:text><small style="font-size: xx-small"> </small><xsl:text>TI</xsl:text> +</xsl:template> + + +</xsl:stylesheet>