src/share/vm/prims/jvmti.xsl

Tue, 08 Apr 2008 12:23:15 -0400

author
sgoldman
date
Tue, 08 Apr 2008 12:23:15 -0400
changeset 542
93b6525e3b82
parent 435
a61af66fc99e
child 1907
c18cbe5936b8
permissions
-rw-r--r--

6603919: Stackwalking crash on x86 -server with Sun Studio's collect -j on
Summary: Rewrite frame::safe_for_sender and friends to be safe for collector/analyzer
Reviewed-by: dcubed, kvn

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

mercurial