src/share/vm/prims/jvmtiH.xsl

Wed, 23 Apr 2014 11:18:53 +0200

author
sjohanss
date
Wed, 23 Apr 2014 11:18:53 +0200
changeset 6641
1d01a7f3a336
parent 2330
684faacebf20
child 6876
710a3c8b516e
permissions
-rw-r--r--

8033426: Scale initial NewSize using NewRatio if not set on command line
Summary: Now using NewRatio to size initial NewSize if not specified on commandline.
Reviewed-by: jmasa, jwilhelm

duke@435 1 <?xml version="1.0" encoding="utf-8"?>
duke@435 2 <!--
kamg@2330 3 Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
duke@435 4 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 5
duke@435 6 This code is free software; you can redistribute it and/or modify it
duke@435 7 under the terms of the GNU General Public License version 2 only, as
duke@435 8 published by the Free Software Foundation.
duke@435 9
duke@435 10 This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 13 version 2 for more details (a copy is included in the LICENSE file that
duke@435 14 accompanied this code).
duke@435 15
duke@435 16 You should have received a copy of the GNU General Public License version
duke@435 17 2 along with this work; if not, write to the Free Software Foundation,
duke@435 18 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 19
trims@1907 20 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 21 or visit www.oracle.com if you need additional information or have any
trims@1907 22 questions.
duke@435 23
duke@435 24 -->
duke@435 25
duke@435 26 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
duke@435 27 version="1.0">
duke@435 28
duke@435 29 <xsl:import href="jvmtiLib.xsl"/>
duke@435 30
duke@435 31 <xsl:output method="text" omit-xml-declaration="yes"/>
duke@435 32
duke@435 33 <xsl:template match="/">
duke@435 34 <xsl:apply-templates select="specification"/>
duke@435 35 </xsl:template>
duke@435 36
duke@435 37 <xsl:template match="specification">
duke@435 38
duke@435 39 <xsl:call-template name="intro"/>
duke@435 40
duke@435 41 <xsl:text>/* Derived Base Types */
duke@435 42 </xsl:text>
duke@435 43 <xsl:apply-templates select="//basetype"/>
duke@435 44
duke@435 45 <xsl:text>
duke@435 46
duke@435 47 /* Constants */
duke@435 48 </xsl:text>
duke@435 49 <xsl:apply-templates select="//constants"/>
duke@435 50
duke@435 51 <xsl:text>
duke@435 52
duke@435 53 /* Errors */
duke@435 54
duke@435 55 typedef enum {
duke@435 56 </xsl:text>
duke@435 57 <xsl:for-each select="//errorid">
duke@435 58 <xsl:sort select="@num" data-type="number"/>
duke@435 59 <xsl:apply-templates select="." mode="enum"/>
duke@435 60 <xsl:text>,
duke@435 61 </xsl:text>
duke@435 62 <xsl:if test="position() = last()">
duke@435 63 <xsl:text> JVMTI_ERROR_MAX = </xsl:text>
duke@435 64 <xsl:value-of select="@num"/>
duke@435 65 </xsl:if>
duke@435 66 </xsl:for-each>
duke@435 67 <xsl:text>
duke@435 68 } jvmtiError;
duke@435 69 </xsl:text>
duke@435 70 <xsl:apply-templates select="eventsection" mode="enum"/>
duke@435 71
duke@435 72 <xsl:text>
duke@435 73 /* Pre-Declarations */
duke@435 74 </xsl:text>
duke@435 75 <xsl:apply-templates select="//typedef|//uniontypedef" mode="early"/>
duke@435 76
duke@435 77 <xsl:text>
duke@435 78 /* Function Types */
duke@435 79 </xsl:text>
duke@435 80 <xsl:apply-templates select="//callback"/>
duke@435 81
duke@435 82 <xsl:text>
duke@435 83
duke@435 84 /* Structure Types */
duke@435 85 </xsl:text>
duke@435 86 <xsl:apply-templates select="//typedef|//uniontypedef" mode="body"/>
duke@435 87 <xsl:apply-templates select="//capabilitiestypedef"/>
duke@435 88
duke@435 89 <xsl:apply-templates select="eventsection" mode="body"/>
duke@435 90
duke@435 91 <xsl:apply-templates select="functionsection"/>
duke@435 92
duke@435 93 <xsl:call-template name="outro"/>
duke@435 94
duke@435 95 </xsl:template>
duke@435 96
duke@435 97 <xsl:template name="intro">
duke@435 98 <xsl:call-template name="includeHeader"/>
duke@435 99 <xsl:text>
duke@435 100 /* Include file for the Java(tm) Virtual Machine Tool Interface */
duke@435 101
duke@435 102 #ifndef _JAVA_JVMTI_H_
duke@435 103 #define _JAVA_JVMTI_H_
duke@435 104
duke@435 105 #include "jni.h"
duke@435 106
duke@435 107 #ifdef __cplusplus
duke@435 108 extern "C" {
duke@435 109 #endif
duke@435 110
duke@435 111 enum {
duke@435 112 JVMTI_VERSION_1 = 0x30010000,
duke@435 113 JVMTI_VERSION_1_0 = 0x30010000,
duke@435 114 JVMTI_VERSION_1_1 = 0x30010100,
kamg@2330 115 JVMTI_VERSION_1_2 = 0x30010200,
duke@435 116
duke@435 117 JVMTI_VERSION = 0x30000000 + (</xsl:text>
duke@435 118 <xsl:value-of select="//specification/@majorversion"/>
duke@435 119 <xsl:text> * 0x10000) + (</xsl:text>
duke@435 120 <xsl:value-of select="//specification/@minorversion"/>
duke@435 121 <xsl:text> * 0x100)</xsl:text>
duke@435 122 <xsl:variable name="micro">
duke@435 123 <xsl:call-template name="microversion"/>
duke@435 124 </xsl:variable>
duke@435 125 <xsl:choose>
duke@435 126 <xsl:when test="string($micro)='dev'">
duke@435 127 <xsl:text> /* checked out - </xsl:text>
duke@435 128 </xsl:when>
duke@435 129 <xsl:otherwise>
duke@435 130 <xsl:text> + </xsl:text>
duke@435 131 <xsl:value-of select="$micro"/>
duke@435 132 <xsl:text> /* </xsl:text>
duke@435 133 </xsl:otherwise>
duke@435 134 </xsl:choose>
duke@435 135 <xsl:text>version: </xsl:text>
duke@435 136 <xsl:call-template name="showversion"/>
duke@435 137 <xsl:text> */
duke@435 138 };
duke@435 139
duke@435 140 JNIEXPORT jint JNICALL
duke@435 141 Agent_OnLoad(JavaVM *vm, char *options, void *reserved);
duke@435 142
duke@435 143 JNIEXPORT jint JNICALL
duke@435 144 Agent_OnAttach(JavaVM* vm, char* options, void* reserved);
duke@435 145
duke@435 146 JNIEXPORT void JNICALL
duke@435 147 Agent_OnUnload(JavaVM *vm);
duke@435 148
duke@435 149 /* Forward declaration of the environment */
duke@435 150
duke@435 151 struct _jvmtiEnv;
duke@435 152
duke@435 153 struct jvmtiInterface_1_;
duke@435 154
duke@435 155 #ifdef __cplusplus
duke@435 156 typedef _jvmtiEnv jvmtiEnv;
duke@435 157 #else
duke@435 158 typedef const struct jvmtiInterface_1_ *jvmtiEnv;
duke@435 159 #endif /* __cplusplus */
duke@435 160
duke@435 161 </xsl:text>
duke@435 162 </xsl:template>
duke@435 163
duke@435 164 <xsl:template name="outro">
duke@435 165 <xsl:text>
duke@435 166
duke@435 167 #ifdef __cplusplus
duke@435 168 } /* extern "C" */
duke@435 169 #endif /* __cplusplus */
duke@435 170
duke@435 171 #endif /* !_JAVA_JVMTI_H_ */
duke@435 172
duke@435 173 </xsl:text>
duke@435 174 </xsl:template>
duke@435 175
duke@435 176 <xsl:template match="eventsection" mode="enum">
duke@435 177 <xsl:text>
duke@435 178 /* Event IDs */
duke@435 179
duke@435 180 typedef enum {
duke@435 181 </xsl:text>
duke@435 182 <xsl:for-each select="event">
duke@435 183 <xsl:sort select="@num" data-type="number"/>
duke@435 184 <xsl:if test="position()=1">
duke@435 185 <xsl:text> JVMTI_MIN_EVENT_TYPE_VAL = </xsl:text>
duke@435 186 <xsl:value-of select="@num"/>
duke@435 187 <xsl:text>,
duke@435 188 </xsl:text>
duke@435 189 </xsl:if>
duke@435 190 <xsl:apply-templates select="." mode="enum"/>
duke@435 191 <xsl:text>,
duke@435 192 </xsl:text>
duke@435 193 <xsl:if test="position()=last()">
duke@435 194 <xsl:text> JVMTI_MAX_EVENT_TYPE_VAL = </xsl:text>
duke@435 195 <xsl:value-of select="@num"/>
duke@435 196 </xsl:if>
duke@435 197 </xsl:for-each>
duke@435 198 <xsl:text>
duke@435 199 } jvmtiEvent;
duke@435 200
duke@435 201 </xsl:text>
duke@435 202 </xsl:template>
duke@435 203
duke@435 204 <xsl:template match="eventsection" mode="body">
duke@435 205 <xsl:text>
duke@435 206
duke@435 207 /* Event Definitions */
duke@435 208
duke@435 209 typedef void (JNICALL *jvmtiEventReserved)(void);
duke@435 210
duke@435 211 </xsl:text>
duke@435 212 <xsl:apply-templates select="event" mode="definition">
duke@435 213 <xsl:sort select="@id"/>
duke@435 214 </xsl:apply-templates>
duke@435 215
duke@435 216 <xsl:text>
duke@435 217 /* Event Callback Structure */
duke@435 218
duke@435 219 typedef struct {
duke@435 220 </xsl:text>
duke@435 221 <xsl:call-template name="eventStruct">
duke@435 222 <xsl:with-param name="events" select="event"/>
duke@435 223 <xsl:with-param name="index" select="0"/>
duke@435 224 <xsl:with-param name="started" select="false"/>
duke@435 225 <xsl:with-param name="comment" select="'Yes'"/>
duke@435 226 </xsl:call-template>
duke@435 227 <xsl:text>} jvmtiEventCallbacks;
duke@435 228 </xsl:text>
duke@435 229
duke@435 230 </xsl:template>
duke@435 231
duke@435 232
duke@435 233 <xsl:template match="event" mode="definition">
duke@435 234 <xsl:text>
duke@435 235 typedef void (JNICALL *jvmtiEvent</xsl:text>
duke@435 236 <xsl:value-of select="@id"/>
duke@435 237 <xsl:text>)
duke@435 238 (jvmtiEnv *jvmti_env</xsl:text>
duke@435 239 <xsl:apply-templates select="parameters" mode="signature">
duke@435 240 <xsl:with-param name="comma">
duke@435 241 <xsl:text>,
duke@435 242 </xsl:text>
duke@435 243 </xsl:with-param>
duke@435 244 </xsl:apply-templates>
duke@435 245 <xsl:text>);
duke@435 246 </xsl:text>
duke@435 247 </xsl:template>
duke@435 248
duke@435 249 <xsl:template match="functionsection">
duke@435 250 <xsl:text>
duke@435 251
duke@435 252 /* Function Interface */
duke@435 253
duke@435 254 typedef struct jvmtiInterface_1_ {
duke@435 255
duke@435 256 </xsl:text>
duke@435 257 <xsl:call-template name="funcStruct">
duke@435 258 <xsl:with-param name="funcs" select="category/function[count(@hide)=0]"/>
duke@435 259 <xsl:with-param name="index" select="1"/>
duke@435 260 </xsl:call-template>
duke@435 261
duke@435 262 <xsl:text>} jvmtiInterface_1;
duke@435 263
duke@435 264 struct _jvmtiEnv {
duke@435 265 const struct jvmtiInterface_1_ *functions;
duke@435 266 #ifdef __cplusplus
duke@435 267
duke@435 268 </xsl:text>
duke@435 269 <xsl:apply-templates select="category" mode="cppinline"/>
duke@435 270 <xsl:text>
duke@435 271 #endif /* __cplusplus */
duke@435 272 };
duke@435 273 </xsl:text>
duke@435 274
duke@435 275 </xsl:template>
duke@435 276
duke@435 277 <xsl:template name="funcStruct">
duke@435 278 <xsl:param name="funcs"/>
duke@435 279 <xsl:param name="index"/>
duke@435 280 <xsl:variable name="thisFunction" select="$funcs[@num=$index]"/>
duke@435 281 <xsl:text> /* </xsl:text>
duke@435 282 <xsl:number value="$index" format=" 1"/>
duke@435 283 <xsl:text> : </xsl:text>
duke@435 284 <xsl:choose>
duke@435 285 <xsl:when test="count($thisFunction)=1">
duke@435 286 <xsl:value-of select="$thisFunction/synopsis"/>
duke@435 287 <xsl:text> */
duke@435 288 jvmtiError (JNICALL *</xsl:text>
duke@435 289 <xsl:value-of select="$thisFunction/@id"/>
duke@435 290 <xsl:text>) (jvmtiEnv* env</xsl:text>
duke@435 291 <xsl:apply-templates select="$thisFunction/parameters" mode="signature">
duke@435 292 <xsl:with-param name="comma">
duke@435 293 <xsl:text>,
duke@435 294 </xsl:text>
duke@435 295 </xsl:with-param>
duke@435 296 </xsl:apply-templates>
duke@435 297 <xsl:text>)</xsl:text>
duke@435 298 </xsl:when>
duke@435 299 <xsl:otherwise>
duke@435 300 <xsl:text> RESERVED */
duke@435 301 void *reserved</xsl:text>
duke@435 302 <xsl:value-of select="$index"/>
duke@435 303 </xsl:otherwise>
duke@435 304 </xsl:choose>
duke@435 305 <xsl:text>;
duke@435 306
duke@435 307 </xsl:text>
duke@435 308 <xsl:if test="count($funcs[@num &gt; $index]) &gt; 0">
duke@435 309 <xsl:call-template name="funcStruct">
duke@435 310 <xsl:with-param name="funcs" select="$funcs"/>
duke@435 311 <xsl:with-param name="index" select="1+$index"/>
duke@435 312 </xsl:call-template>
duke@435 313 </xsl:if>
duke@435 314 </xsl:template>
duke@435 315
duke@435 316
duke@435 317 <xsl:template match="function">
duke@435 318 <xsl:text> jvmtiError (JNICALL *</xsl:text>
duke@435 319 <xsl:value-of select="@id"/>
duke@435 320 <xsl:text>) (jvmtiEnv* env</xsl:text>
duke@435 321 <xsl:apply-templates select="parameters" mode="signature"/>
duke@435 322 <xsl:text>);
duke@435 323
duke@435 324 </xsl:text>
duke@435 325 </xsl:template>
duke@435 326
duke@435 327 <xsl:template match="category" mode="cppinline">
duke@435 328 <xsl:apply-templates select="function[count(@hide)=0]" mode="cppinline"/>
duke@435 329 </xsl:template>
duke@435 330
duke@435 331 <xsl:template match="function" mode="cppinline">
duke@435 332 <xsl:text>
duke@435 333 jvmtiError </xsl:text>
duke@435 334 <xsl:value-of select="@id"/>
duke@435 335 <xsl:text>(</xsl:text>
duke@435 336 <xsl:apply-templates select="parameters" mode="signaturenoleadcomma"/>
duke@435 337 <xsl:text>) {
duke@435 338 return functions-></xsl:text>
duke@435 339 <xsl:value-of select="@id"/>
duke@435 340 <xsl:text>(this</xsl:text>
duke@435 341 <xsl:for-each select="parameters">
duke@435 342 <xsl:for-each select="param">
duke@435 343 <xsl:if test="@id != '...' and count(jclass/@method) = 0">
duke@435 344 <xsl:text>, </xsl:text>
duke@435 345 <xsl:value-of select="@id"/>
duke@435 346 </xsl:if>
duke@435 347 </xsl:for-each>
duke@435 348 </xsl:for-each>
duke@435 349 <xsl:text>);
duke@435 350 }
duke@435 351 </xsl:text>
duke@435 352 </xsl:template>
duke@435 353
duke@435 354
duke@435 355 <xsl:template match="basetype">
duke@435 356 <xsl:if test="count(definition)!=0">
duke@435 357 <xsl:text>
duke@435 358 </xsl:text>
duke@435 359 <xsl:apply-templates select="definition"/>
duke@435 360 </xsl:if>
duke@435 361 </xsl:template>
duke@435 362
duke@435 363 <xsl:template match="constants">
duke@435 364 <xsl:text>
duke@435 365
duke@435 366 /* </xsl:text>
duke@435 367 <xsl:value-of select="@label"/>
duke@435 368 <xsl:text> */
duke@435 369 </xsl:text>
duke@435 370 <xsl:choose>
duke@435 371 <xsl:when test="@kind='enum'">
duke@435 372 <xsl:apply-templates select="." mode="enum"/>
duke@435 373 </xsl:when>
duke@435 374 <xsl:otherwise>
duke@435 375 <xsl:apply-templates select="." mode="constants"/>
duke@435 376 </xsl:otherwise>
duke@435 377 </xsl:choose>
duke@435 378 </xsl:template>
duke@435 379
duke@435 380 <xsl:template match="callback">
duke@435 381 <xsl:text>
duke@435 382 typedef </xsl:text>
duke@435 383 <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
duke@435 384 <xsl:text> (JNICALL *</xsl:text>
duke@435 385 <xsl:value-of select="@id"/>
duke@435 386 <xsl:text>)
duke@435 387 (</xsl:text>
duke@435 388 <xsl:for-each select="parameters">
duke@435 389 <xsl:apply-templates select="param[position()=1]" mode="signature"/>
duke@435 390 <xsl:for-each select="param[position()>1]">
duke@435 391 <xsl:text>, </xsl:text>
duke@435 392 <xsl:apply-templates select="." mode="signature"/>
duke@435 393 </xsl:for-each>
duke@435 394 </xsl:for-each>
duke@435 395 <xsl:text>);
duke@435 396 </xsl:text>
duke@435 397 </xsl:template>
duke@435 398
duke@435 399 <xsl:template match="capabilitiestypedef">
duke@435 400 <xsl:text>
duke@435 401 </xsl:text>
duke@435 402 <xsl:apply-templates select="." mode="genstruct"/>
duke@435 403 <xsl:text>
duke@435 404 </xsl:text>
duke@435 405 </xsl:template>
duke@435 406
duke@435 407 <xsl:template match="typedef" mode="early">
duke@435 408 <xsl:text>struct _</xsl:text>
duke@435 409 <xsl:value-of select="@id"/>
duke@435 410 <xsl:text>;
duke@435 411 </xsl:text>
duke@435 412 <xsl:text>typedef struct _</xsl:text>
duke@435 413 <xsl:value-of select="@id"/>
duke@435 414 <xsl:text> </xsl:text>
duke@435 415 <xsl:value-of select="@id"/>
duke@435 416 <xsl:text>;
duke@435 417 </xsl:text>
duke@435 418 </xsl:template>
duke@435 419
duke@435 420 <xsl:template match="typedef" mode="body">
duke@435 421 <xsl:text>struct _</xsl:text>
duke@435 422 <xsl:value-of select="@id"/>
duke@435 423 <xsl:text> {
duke@435 424 </xsl:text>
duke@435 425 <xsl:apply-templates select="field" mode="signature"/>
duke@435 426 <xsl:text>};
duke@435 427 </xsl:text>
duke@435 428 </xsl:template>
duke@435 429
duke@435 430 <xsl:template match="uniontypedef" mode="early">
duke@435 431 <xsl:text>union _</xsl:text>
duke@435 432 <xsl:value-of select="@id"/>
duke@435 433 <xsl:text>;
duke@435 434 </xsl:text>
duke@435 435 <xsl:text>typedef union _</xsl:text>
duke@435 436 <xsl:value-of select="@id"/>
duke@435 437 <xsl:text> </xsl:text>
duke@435 438 <xsl:value-of select="@id"/>
duke@435 439 <xsl:text>;
duke@435 440 </xsl:text>
duke@435 441 </xsl:template>
duke@435 442
duke@435 443 <xsl:template match="uniontypedef" mode="body">
duke@435 444 <xsl:text>union _</xsl:text>
duke@435 445 <xsl:value-of select="@id"/>
duke@435 446 <xsl:text> {
duke@435 447 </xsl:text>
duke@435 448 <xsl:apply-templates select="field" mode="signature"/>
duke@435 449 <xsl:text>};
duke@435 450 </xsl:text>
duke@435 451 </xsl:template>
duke@435 452
duke@435 453 </xsl:stylesheet>

mercurial