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