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