0N/A<?
xml version="1.0" encoding="utf-8"?>
0N/A Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved. 0N/A DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 2362N/A This code is free software; you can redistribute it and/or modify it 0N/A under the terms of the GNU General Public License version 2 only, as 2362N/A published by the Free Software Foundation. 0N/A This code is distributed in the hope that it will be useful, but WITHOUT 0N/A ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A version 2 for more details (a copy is included in the LICENSE file that 0N/A accompanied this code). 0N/A You should have received a copy of the GNU General Public License version 0N/A 2 along with this work; if not, write to the Free Software Foundation, 0N/A Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 0N/A <
xsl:
template name="microversion">
0N/A <
xsl:
value-
of select="//specification/@microversion"/>
0N/A <
xsl:
template name="showbasicversion">
0N/A <
xsl:
value-
of select="//specification/@majorversion"/>
0N/A <
xsl:
text>.</
xsl:
text>
0N/A <
xsl:
value-
of select="//specification/@minorversion"/>
0N/A <
xsl:
template name="showversion">
0N/A <
xsl:
call-
template name="showbasicversion"/>
0N/A <
xsl:
text>.</
xsl:
text>
0N/A <
xsl:
call-
template name="microversion"/>
0N/A <
xsl:
template name="copyrightComment">
0N/A <
xsl:
text>/* </
xsl:
text>
0N/A <
xsl:
value-
of select="/comment()[position()=1]"/>
0N/A <
xsl:
text> */ 

</
xsl:
text>
0N/A <
xsl:
template name="includeHeader">
0N/A <
xsl:
call-
template name="copyrightComment"/>
0N/A <
xsl:
text> /* AUTOMATICALLY GENERATED FILE - DO NOT EDIT */ 
</
xsl:
text>
0N/A <
xsl:
template name="sourceHeader">
0N/A <
xsl:
call-
template name="copyrightComment"/>
0N/A <
xsl:
text> // AUTOMATICALLY GENERATED FILE - DO NOT EDIT 
</
xsl:
text>
0N/A<
xsl:
template match="parameters" mode="signature">
0N/A <
xsl:
param name="comma">
0N/A <
xsl:
if test="count(param) != 0">
0N/A <
xsl:
value-
of select="$comma"/>
0N/A <
xsl:
apply-
templates select="." mode="signaturenoleadcomma">
0N/A <
xsl:
with-
param name="comma" select="$comma"/>
0N/A </
xsl:
apply-
templates>
<
xsl:
template match="parameters" mode="signaturenoleadcomma">
<
xsl:
variable name="length" select="count(param)"/>
<
xsl:
for-
each select="param">
<
xsl:
variable name="separator">
<
xsl:
when test="position()=$length">
<
xsl:
value-
of select="$comma"/>
<
xsl:
apply-
templates select="." mode="signature">
<
xsl:
with-
param name="comma" select="$separator"/>
since the jclass was removed in JVMTI. <
xsl:
template match="param" mode="signature">
<
xsl:
param name="comma"/>
<
xsl:
variable name="id" select="@id"/>
<
xsl:
for-
each select="child::*[position()=1]">
<
xsl:
if test="count(@method)=0">
<
xsl:
apply-
templates select="." mode="signature"/>
<
xsl:
value-
of select="$id"/>
<
xsl:
value-
of select="$comma"/>
<
xsl:
template match="field" mode="signature">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
value-
of select="@id"/>
<
xsl:
template match="nullok" mode="funcdescription">
<
xsl:
value-
of select="../../@id"/>
<
code>NULL</
code>, <
xsl:
apply-
templates/>.
<
xsl:
template match="vmbuf|allocfieldbuf|struct" mode="funcdescription">
<
xsl:
message terminate="yes">
vmbuf|allocfieldbuf|struct as type of function parameter
<
xsl:
template match="ptrtype" mode="funcdescription">
<
xsl:
apply-
templates select="nullok" mode="funcdescription"/>
<
xsl:
template match="inptr" mode="funcdescription">
<
xsl:
variable name="child" select="child::*[position()=1]"/>
<
xsl:
text>Agent passes in a pointer</
xsl:
text>
<
xsl:
if test="name($child)!='void'">
<
xsl:
text> to </
xsl:
text>
<
xsl:
apply-
templates select="$child" mode="signature"/>
<
xsl:
apply-
templates select="nullok" mode="funcdescription"/>
<
xsl:
template match="inbuf" mode="funcdescription">
<
xsl:
variable name="child" select="child::*[position()=1]"/>
<
xsl:
text>Agent passes in </
xsl:
text>
<
xsl:
when test="name($child)='void'">
<
xsl:
text> a pointer</
xsl:
text>
<
xsl:
text> an array of </
xsl:
text>
<
xsl:
if test="count(@incount)=1 and @incount!=''">
<
xsl:
value-
of select="@incount"/>
<
xsl:
text> elements of </
xsl:
text>
<
xsl:
apply-
templates select="$child" mode="signature"/>
<
xsl:
apply-
templates select="nullok" mode="funcdescription"/>
<
xsl:
template match="outptr" mode="funcdescription">
<
xsl:
text>Agent passes a pointer to a </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
text>On return, the </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
text> has been set. </
xsl:
text>
<
xsl:
apply-
templates select="nullok" mode="funcdescription"/>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="returndescription"/>
<
xsl:
template match="allocbuf" mode="funcdescription">
<
xsl:
text>Agent passes a pointer to a </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
text>On return, the </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
text> points to a newly allocated array</
xsl:
text>
<
xsl:
when test="count(@outcount)=1 and @outcount!=''">
<
xsl:
text> of size </
xsl:
text>
<
xsl:
value-
of select="@outcount"/>
<
xsl:
if test="count(@incount)=1 and @incount!=''">
<
xsl:
text> of size </
xsl:
text>
<
xsl:
value-
of select="@incount"/>
<
xsl:
text>. The array should be freed with </
xsl:
text>
<
a href="#Deallocate"><
code>Deallocate</
code></
a>
<
xsl:
apply-
templates select="nullok" mode="funcdescription"/>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="returndescription">
<
xsl:
with-
param name="plural" select="'plural'"/>
<
xsl:
template match="allocallocbuf" mode="funcdescription">
<
xsl:
text>Agent passes a pointer to a </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
text>On return, the </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
text> points to a newly allocated array</
xsl:
text>
<
xsl:
when test="count(@outcount)=1 and @outcount!=''">
<
xsl:
text> of size </
xsl:
text>
<
xsl:
value-
of select="@outcount"/>
<
xsl:
if test="count(@incount)=1 and @incount!=''">
<
xsl:
text> of size </
xsl:
text>
<
xsl:
value-
of select="@incount"/>
<
xsl:
text>, each element of which is also newly allocated.
The array should be freed with </
xsl:
text>
<
a href="#Deallocate"><
code>Deallocate</
code></
a>
Each of the elements should be freed with </
xsl:
text>
<
a href="#Deallocate"><
code>Deallocate</
code></
a>
<
xsl:
apply-
templates select="nullok" mode="funcdescription"/>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="returndescription">
<
xsl:
with-
param name="plural" select="'plural'"/>
<
xsl:
template match="outbuf" mode="funcdescription">
<
xsl:
text>Agent passes an array </
xsl:
text>
<
xsl:
if test="count(@incount)=1 and @incount!=''">
<
xsl:
text>large enough to hold </
xsl:
text>
<
xsl:
value-
of select="@incount"/>
<
xsl:
text> elements </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
text>. The incoming values of the elements of the array are ignored. </
xsl:
text>
<
xsl:
text>On return, </
xsl:
text>
<
xsl:
if test="count(@outcount)=1 and @outcount!=''">
<
xsl:
value-
of select="@outcount"/>
<
xsl:
text> of </
xsl:
text>
<
xsl:
text>the elements are set. </
xsl:
text>
<
xsl:
apply-
templates select="nullok" mode="funcdescription"/>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="returndescription">
<
xsl:
with-
param name="plural" select="'plural'"/>
<
xsl:
template match="agentbuf" mode="funcdescription">
<
xsl:
apply-
templates select="nullok" mode="funcdescription"/>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="returndescription">
<
xsl:
with-
param name="plural" select="'plural'"/>
<
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">
<
xsl:
template match="jthread" mode="funcdescription">
<
xsl:
if test="count(@null)!=0">
<
xsl:
value-
of select="../@id"/>
<
code>NULL</
code>, the current thread is used.
<
xsl:
template match="jmethodID|jfieldID|jframeID|jrawMonitorID|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|varargs" mode="returndescription">
<
xsl:
template match="struct" mode="returndescription">
<
xsl:
param name="plural"/>
<
xsl:
variable name="structname" select="."/>
<
xsl:
for-
each select="//typedef[@id=$structname]|//uniontypedef[@id=$structname]">
<
xsl:
for-
each select="field">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="fieldreturndescription">
<
xsl:
with-
param name="plural" select="$plural"/>
<
xsl:
template match="jclass|jthread|jobject|jvalue|jthreadGroup" mode="returndescription">
<
xsl:
param name="plural"/>
<
xsl:
text>The object</
xsl:
text>
<
xsl:
if test="$plural='plural'">
<
xsl:
text> returned by </
xsl:
text>
<
xsl:
value-
of select="../../@id"/>
<
xsl:
when test="$plural='plural'">
<
xsl:
text> are JNI local references and must be </
xsl:
text>
<
xsl:
text> is a JNI local reference and must be </
xsl:
text>
<
a href="#refs">managed</
a>.
<
xsl:
template match="outptr|inptr|inbuf|agentbuf|allocbuf|allocallocbuf" mode="fieldreturndescription">
<
xsl:
variable name="field" select="ancestor::field"/>
<
xsl:
message terminate="yes">
outptr, allocallocbuf, outbuf, vmbuf, allocbuf, inptr, inbuf or agentbuf as type of returned field:
<
xsl:
value-
of select="$field/@id"/> of <
xsl:
value-
of select="$field/../@id"/>
<
xsl:
template match="outbuf" mode="fieldreturndescription">
<!-- hand document this special case. <
xsl:
template match="struct" mode="fieldreturndescription">
<
xsl:
param name="plural"/>
<
xsl:
variable name="structname" select="."/>
<
xsl:
for-
each select="//typedef[@id=$structname]|//uniontypedef[@id=$structname]">
<
xsl:
for-
each select="field">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="fieldreturndescription">
<
xsl:
with-
param name="plural" select="$plural"/>
<
xsl:
template match="allocfieldbuf" mode="fieldreturndescription">
<
xsl:
param name="plural"/>
<
xsl:
variable name="field" select="ancestor::field"/>
<
xsl:
text>The pointer</
xsl:
text>
<
xsl:
if test="$plural='plural'">
<
xsl:
text> returned in the field </
xsl:
text>
<
xsl:
value-
of select="$field/@id"/>
<
xsl:
text> of </
xsl:
text>
<
xsl:
value-
of select="$field/../@id"/>
<
xsl:
when test="$plural='plural'">
<
xsl:
text> are newly allocated arrays. The arrays</
xsl:
text>
<
xsl:
text> is a newly allocated array. The array</
xsl:
text>
<
xsl:
text> should be freed with </
xsl:
text>
<
a href="#Deallocate"><
code>Deallocate</
code></
a>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="fieldreturndescription">
<
xsl:
with-
param name="plural" select="'plural'"/>
<
xsl:
template match="ptrtype|vmbuf|jmethodID|jfieldID|jframeID|jrawMonitorID|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void" mode="fieldreturndescription">
<
xsl:
template match="jclass|jthread|jobject|jvalue|jthreadGroup" mode="fieldreturndescription">
<
xsl:
param name="plural"/>
<
xsl:
variable name="field" select="ancestor::field"/>
<
xsl:
text>The object</
xsl:
text>
<
xsl:
if test="$plural='plural'">
<
xsl:
text> returned in the field </
xsl:
text>
<
xsl:
value-
of select="$field/@id"/>
<
xsl:
text> of </
xsl:
text>
<
xsl:
value-
of select="$field/../@id"/>
<
xsl:
when test="$plural='plural'">
<
xsl:
text> are JNI local references and must be </
xsl:
text>
<
xsl:
text> is a JNI local reference and must be </
xsl:
text>
<
a href="#refs">managed</
a>.
<
xsl:
template match="nullok" mode="signature">
<
xsl:
template match="jmethodID|jfieldID|jrawMonitorID|jclass|jthread|jobject|jvalue|jthreadGroup|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|size_t|void" mode="signature">
<
xsl:
value-
of select="name()"/>
<
xsl:
template match="jframeID" mode="signature">
<
xsl:
text>jint</
xsl:
text>
<
xsl:
template match="uchar" mode="signature">
<
xsl:
text>unsigned char</
xsl:
text>
<
xsl:
template match="enum|struct" mode="signature">
<
xsl:
value-
of select="."/>
<
xsl:
template match="varargs" mode="signature">
<
xsl:
template match="outptr|outbuf|allocfieldbuf" mode="signature">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
template match="ptrtype" mode="signature">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
template match="inptr|inbuf|vmbuf" mode="signature">
<
xsl:
text>const </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
template match="allocbuf|agentbuf" mode="signature">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
template match="allocallocbuf" mode="signature">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="signature"/>
<
xsl:
template match="nullok" mode="link">
<
xsl:
template match="jmethodID|jfieldID|jrawMonitorID|jclass|jthread|jobject|jvalue|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|jthreadGroup" mode="link">
<
xsl:
attribute name="href">
<
xsl:
text>#</
xsl:
text><
xsl:
value-
of select="name()"/>
<
xsl:
value-
of select="name()"/>
<
xsl:
template match="jframeID" mode="link">
<
xsl:
attribute name="href">
<
xsl:
text>#jint</
xsl:
text>
<
xsl:
text>jint</
xsl:
text>
<
xsl:
template match="enum|struct" mode="link">
<
xsl:
attribute name="href">
<
xsl:
value-
of select="."/>
<
xsl:
value-
of select="."/>
<
xsl:
template match="char|size_t|void" mode="link">
<
xsl:
value-
of select="name()"/>
<
xsl:
template match="uchar" mode="link">
<
xsl:
text>unsigned char</
xsl:
text>
<
xsl:
template match="varargs" mode="link">
<
xsl:
template match="ptrtype" mode="link">
<
xsl:
apply-
templates mode="link"/>
<
xsl:
template match="outptr|outbuf|allocfieldbuf" mode="link">
<
xsl:
apply-
templates mode="link"/>
<
xsl:
template match="inptr|inbuf|vmbuf" mode="link">
<
xsl:
text>const </
xsl:
text>
<
xsl:
apply-
templates mode="link"/>
<
xsl:
template match="allocbuf|agentbuf" mode="link">
<
xsl:
apply-
templates mode="link"/>
<
xsl:
template match="allocallocbuf" mode="link">
<
xsl:
apply-
templates mode="link"/>
<
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">
<
xsl:
value-
of select="name()"/>
<
xsl:
template match="uchar" mode="btsig">
<
xsl:
text>unsigned char</
xsl:
text>
<
xsl:
template match="enum|struct" mode="btsig">
<
xsl:
value-
of select="."/>
<
xsl:
template match="outbuf" mode="btsig">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="btsig"/>
<
xsl:
template name="gentypedef">
<
xsl:
text>typedef struct {
<
xsl:
apply-
templates select="$tdef/field" mode="signature"/>
<
xsl:
value-
of select="$tdef/@id"/>
<
xsl:
template name="genuniontypedef">
<
xsl:
text>typedef union {
<
xsl:
apply-
templates select="$tdef/field" mode="signature"/>
<
xsl:
value-
of select="$tdef/@id"/>
<
xsl:
template match="capabilitiestypedef" mode="genstruct">
<
xsl:
variable name="caps" select="count(capabilityfield)"/>
<
xsl:
text>typedef struct {
<
xsl:
apply-
templates select="capabilityfield" mode="signature"/>
<
xsl:
variable name="rem" select="$caps mod 16"/>
<
xsl:
if test="$rem != 0">
<
xsl:
text> unsigned int : </
xsl:
text>
<
xsl:
value-
of select="16 - $rem"/>
<
xsl:
if test="$caps <= 32">
<
xsl:
text> unsigned int : 16;
<
xsl:
if test="$caps <= 48">
<
xsl:
text> unsigned int : 16;
<
xsl:
if test="$caps <= 64">
<
xsl:
text> unsigned int : 16;
<
xsl:
if test="$caps <= 80">
<
xsl:
text> unsigned int : 16;
<
xsl:
if test="$caps <= 96">
<
xsl:
text> unsigned int : 16;
<
xsl:
if test="$caps <= 112">
<
xsl:
text> unsigned int : 16;
<
xsl:
value-
of select="@id"/>
<
xsl:
template match="capabilityfield" mode="signature">
<
xsl:
text> unsigned int </
xsl:
text>
<
xsl:
value-
of select="@id"/>
<
xsl:
template match="constants" mode="enum">
<
xsl:
apply-
templates select="." mode="enumcore"/>
<
xsl:
value-
of select="@id"/>
<
xsl:
template match="constants" mode="constants">
<
xsl:
apply-
templates select="." mode="enumcore"/>
<
xsl:
template match="constants" mode="enumcore">
<
xsl:
for-
each select="constant">
<
xsl:
if test="position() > 1">
<
xsl:
apply-
templates select="." mode="enum"/>
<
xsl:
template match="event" mode="enum">
<
xsl:
value-
of select="@const"/>
<
xsl:
value-
of select="@num"/>
<
xsl:
template match="constant|errorid" mode="enum">
<
xsl:
value-
of select="@id"/>
<
xsl:
value-
of select="@num"/>
<
xsl:
template name="eventStruct">
<
xsl:
param name="events"/>
<
xsl:
param name="index"/>
<
xsl:
param name="started"/>
<
xsl:
param name="comment"/>
<
xsl:
variable name="thisEvent" select="$events[@num=$index]"/>
<
xsl:
when test="count($thisEvent)=1">
<
xsl:
if test="$comment='Yes'">
<
xsl:
text> /* </
xsl:
text>
<
xsl:
number value="$index" format=" 1"/>
<
xsl:
value-
of select="$thisEvent/@label"/>
<
xsl:
text> jvmtiEvent</
xsl:
text>
<
xsl:
value-
of select="$thisEvent/@id"/>
<
xsl:
value-
of select="$thisEvent/@id"/>
<
xsl:
if test="$comment='Yes'">
<
xsl:
text> /* </
xsl:
text>
<
xsl:
number value="$index" format=" 1"/>
<
xsl:
text> jvmtiEventReserved reserved</
xsl:
text>
<
xsl:
value-
of select="$index"/>
<
xsl:
if test="count($events[@num > $index]) > 0">
<
xsl:
call-
template name="eventStruct">
<
xsl:
with-
param name="events" select="$events"/>
<
xsl:
with-
param name="index" select="1+$index"/>
<
xsl:
with-
param name="started" select="$started or count($thisEvent)=1"/>
<
xsl:
with-
param name="comment" select="$comment"/>
<!-- ======== HotSpotType ======== --> <
xsl:
template match="parameters" mode="HotSpotSig">
<
xsl:
variable name="length" select="count(param)"/>
<
xsl:
for-
each select="param">
<
xsl:
variable name="separator">
<
xsl:
when test="position()=$length">
<
xsl:
apply-
templates select="." mode="HotSpotSig">
<
xsl:
with-
param name="comma" select="$separator"/>
<
xsl:
template match="param" mode="HotSpotSig">
<
xsl:
param name="comma"/>
<
xsl:
variable name="result">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="HotSpotType"/>
<
xsl:
if test="string-length($result)!=0">
<
xsl:
value-
of select="$result"/>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="HotSpotName">
<
xsl:
with-
param name="name" select="@id"/>
<
xsl:
value-
of select="$comma"/>
<
xsl:
template match="jthread" mode="HotSpotType">
<
xsl:
when test="count(@impl)=0 or not(contains(@impl,'noconvert'))">
<
xsl:
text>JavaThread*</
xsl:
text>
<
xsl:
value-
of select="name()"/>
<
xsl:
template match="jrawMonitorID" mode="HotSpotType">
<
xsl:
text>JvmtiRawMonitor *</
xsl:
text>
<
xsl:
template match="jframeID" mode="HotSpotType">
<
xsl:
text>jint</
xsl:
text>
<
xsl:
template match="jmethodID" mode="HotSpotType">
<
xsl:
text>methodOop</
xsl:
text>
<
xsl:
template match="jfieldID" mode="HotSpotType">
<
xsl:
text>fieldDescriptor*</
xsl:
text>
<
xsl:
template match="jclass" mode="HotSpotType">
by the wrapper to get the internal type but are not needed by nor passed to the implementation layer. <
xsl:
if test="count(@method|@field)=0">
<
xsl:
template match="nullok" mode="HotSpotType">
<
xsl:
template match="jobject|jvalue|jthreadGroup|enum|jint|jchar|jlong|jfloat|jdouble|jlocation|jboolean|char|uchar|size_t|void|struct" mode="HotSpotType">
<
xsl:
apply-
templates select="." mode="btsig"/>
<
xsl:
template match="varargs" mode="HotSpotType">
<
xsl:
template match="outptr|outbuf|allocfieldbuf" mode="HotSpotType">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="btsig"/>
<
xsl:
template match="ptrtype" mode="HotSpotType">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="btsig"/>
<
xsl:
template match="inptr|inbuf|vmbuf" mode="HotSpotType">
<
xsl:
text>const </
xsl:
text>
<
xsl:
apply-
templates select="child::*[position()=1]" mode="btsig"/>
<
xsl:
template match="allocbuf|agentbuf" mode="HotSpotType">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="btsig"/>
<
xsl:
template match="allocallocbuf" mode="HotSpotType">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="btsig"/>
<!-- ======== HotSpotName ======== --> <
xsl:
template match="jthread" mode="HotSpotName">
<
xsl:
when test="count(@impl)=0 or not(contains(@impl,'noconvert'))">
<
xsl:
text>java_thread</
xsl:
text>
<
xsl:
value-
of select="$name"/>
<
xsl:
template match="jrawMonitorID" mode="HotSpotName">
<
xsl:
text>rmonitor</
xsl:
text>
<
xsl:
template match="jframeID" mode="HotSpotName">
<
xsl:
text>depth</
xsl:
text>
<
xsl:
template match="jmethodID" mode="HotSpotName">
<
xsl:
text>method_oop</
xsl:
text>
<
xsl:
template match="jfieldID" mode="HotSpotName">
<
xsl:
text>fdesc_ptr</
xsl:
text>
<
xsl:
template match="jclass" mode="HotSpotName">
by the wrapper to get the internal type but are not needed by nor passed to the implementation layer. This value is checked for empty. <
xsl:
if test="count(@method|@field)=0">
<
xsl:
text>k_mirror</
xsl:
text>
<
xsl:
template match="nullok" mode="HotSpotName">
<
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">
<
xsl:
value-
of select="$name"/>
<!-- ======== HotSpotValue ======== --> <
xsl:
template match="parameters" mode="HotSpotValue">
<
xsl:
variable name="length" select="count(param)"/>
<
xsl:
for-
each select="param">
<
xsl:
variable name="separator">
<
xsl:
when test="position()=$length">
<
xsl:
apply-
templates select="." mode="HotSpotValue">
<
xsl:
with-
param name="comma" select="$separator"/>
<
xsl:
template match="param" mode="HotSpotValue">
<
xsl:
param name="comma"/>
<
xsl:
variable name="result">
<
xsl:
apply-
templates select="child::*[position()=1]" mode="HotSpotValue">
<
xsl:
with-
param name="name" select="@id"/>
<
xsl:
if test="string-length($result)!=0">
<
xsl:
value-
of select="$result"/>
<
xsl:
value-
of select="$comma"/>
<
xsl:
template match="jframeID|jmethodID|jrawMonitorID|jthread|jclass|nullok" mode="HotSpotValue">
<
xsl:
apply-
templates select="." mode="HotSpotName">
<
xsl:
with-
param name="name" select="$name"/>
<
xsl:
template match="jfieldID" mode="HotSpotValue">
<
xsl:
text>&fdesc</
xsl:
text>
<
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">
<
xsl:
value-
of select="$name"/>
<
xsl:
template match="varargs" mode="HotSpotValue">
<
xsl:
text>NULL</
xsl:
text>