< prev index next >

test/hotspot/jtreg/vmTestbase/nsk/jvmti/ForceEarlyReturn/ForceEarlyReturn001/ForceEarlyReturn001.cpp

Print this page
rev 52200 : [mq]: spaces


  27 #include "JVMTITools.h"
  28 #include "agent_common.h"
  29 
  30 extern "C" {
  31 
  32 /* ============================================================================= */
  33 
  34 static jvmtiEnv *jvmti = NULL;
  35 static jvmtiCapabilities caps;
  36 static jvmtiEventCallbacks callbacks;
  37 
  38 /* ============================================================================= */
  39 
  40 JNIEXPORT jboolean JNICALL
  41 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_suspendThread (
  42         JNIEnv *env
  43         , jclass cls
  44         , jobject earlyReturnThread
  45         )
  46 {
  47     if (!NSK_JVMTI_VERIFY(
  48                 jvmti                    ->SuspendThread                    (earlyReturnThread                )
  49             )
  50         )
  51          return JNI_FALSE;
  52 
  53     return JNI_TRUE;
  54 }
  55 
  56 /* ============================================================================= */
  57 
  58 JNIEXPORT jboolean JNICALL
  59 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_resumeThread (
  60         JNIEnv *env
  61         , jclass klass
  62         , jobject earlyReturnThread
  63         )
  64 {
  65     if (!NSK_JVMTI_VERIFY(
  66                 jvmti                    ->ResumeThread                    (earlyReturnThread                )
  67             )
  68         )
  69          return JNI_FALSE;
  70 
  71     return JNI_TRUE;
  72 }
  73 
  74 /* ============================================================================= */
  75 
  76 JNIEXPORT jboolean JNICALL
  77 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnObject (
  78         JNIEnv *env
  79         , jclass klass
  80         , jthread earlyReturnThread
  81         , jobject valueToReturn
  82         )
  83 {
  84     if (!NSK_JVMTI_VERIFY(
  85                 jvmti                    ->ForceEarlyReturnObject                    (earlyReturnThread                    , valueToReturn                    )
  86                 )
  87        )
  88         return JNI_FALSE;
  89 
  90     return JNI_TRUE;
  91 }
  92 
  93 /* ============================================================================= */
  94 
  95 JNIEXPORT jboolean JNICALL
  96 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnInt(
  97         JNIEnv *env
  98         , jclass klass
  99         , jthread earlyReturnThread
 100         , jint valueToReturn
 101         )
 102 {
 103     if (!NSK_JVMTI_VERIFY(
 104                 jvmti                    ->ForceEarlyReturnInt                    (earlyReturnThread                    , valueToReturn                    )
 105                 )
 106        )
 107         return JNI_FALSE;
 108 
 109     return JNI_TRUE;
 110 }
 111 
 112 /* ============================================================================= */
 113 
 114 JNIEXPORT jboolean JNICALL
 115 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnLong (
 116         JNIEnv *env
 117         , jclass klass
 118         , jthread earlyReturnThread
 119         , jlong valueToReturn
 120         )
 121 {
 122     if (!NSK_JVMTI_VERIFY(
 123                 jvmti                    ->ForceEarlyReturnLong                    (earlyReturnThread                    , valueToReturn                    )
 124                 )
 125        )
 126         return JNI_FALSE;
 127 
 128     return JNI_TRUE;
 129 }
 130 
 131 /* ============================================================================= */
 132 
 133 JNIEXPORT jboolean JNICALL
 134 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnFloat (
 135         JNIEnv *env
 136         , jclass klass
 137         , jthread earlyReturnThread
 138         , jfloat valueToReturn
 139         )
 140 {
 141     if (!NSK_JVMTI_VERIFY(
 142                 jvmti                    ->ForceEarlyReturnFloat                    (earlyReturnThread                    , valueToReturn                    )
 143                 )
 144        )
 145         return JNI_FALSE;
 146 
 147     return JNI_TRUE;
 148 }
 149 
 150 /* ============================================================================= */
 151 
 152 JNIEXPORT jboolean JNICALL
 153 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnDouble (
 154         JNIEnv *env
 155         , jclass klass
 156         , jthread earlyReturnThread
 157         , jdouble valueToReturn
 158         )
 159 {
 160     if (!NSK_JVMTI_VERIFY(
 161                 jvmti                    ->ForceEarlyReturnDouble                    (earlyReturnThread                    , valueToReturn                    )
 162                 )
 163        )
 164         return JNI_FALSE;
 165 
 166     return JNI_TRUE;
 167 }
 168 
 169 /* ============================================================================= */
 170 
 171 JNIEXPORT jboolean JNICALL
 172 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnVoid (
 173         JNIEnv *env
 174         , jclass klass
 175         , jthread earlyReturnThread
 176         )
 177 {
 178     if (!NSK_JVMTI_VERIFY(
 179                 jvmti                    ->ForceEarlyReturnVoid                    (earlyReturnThread                    )
 180                 )
 181        )
 182         return JNI_FALSE;
 183 
 184     return JNI_TRUE;
 185 }
 186 
 187 /* ============================================================================= */
 188 
 189 /* Agent initialization procedure */
 190 #ifdef STATIC_BUILD
 191 JNIEXPORT jint JNICALL Agent_OnLoad_ForceEarlyReturn001(JavaVM *jvm, char *options, void *reserved) {
 192     return Agent_Initialize(jvm, options, reserved);
 193 }
 194 JNIEXPORT jint JNICALL Agent_OnAttach_ForceEarlyReturn001(JavaVM *jvm, char *options, void *reserved) {
 195     return Agent_Initialize(jvm, options, reserved);
 196 }
 197 JNIEXPORT jint JNI_OnLoad_ForceEarlyReturn001(JavaVM *jvm, char *options, void *reserved) {
 198     return JNI_VERSION_1_8;
 199 }
 200 #endif
 201 jint Agent_Initialize(JavaVM *vm, char *options, void *reserved)
 202 {
 203     jvmtiCapabilities caps;
 204 
 205     if (!NSK_VERIFY(
 206                 (jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL
 207                 )
 208        )
 209         return JNI_ERR;
 210 
 211     if (!NSK_JVMTI_VERIFY(jvmti                    ->GetCapabilities                    (&caps)
 212                 )
 213        )
 214         return JNI_ERR;
 215 
 216     // Register all necessary JVM capabilities
 217     caps.can_force_early_return = 1;
 218     caps.can_suspend = 1;
 219 
 220     if (!NSK_JVMTI_VERIFY(jvmti                    ->AddCapabilities                    (&caps)
 221                 )
 222        )
 223         return JNI_ERR;
 224 
 225     return JNI_OK;
 226 }
 227 
 228 }


  27 #include "JVMTITools.h"
  28 #include "agent_common.h"
  29 
  30 extern "C" {
  31 
  32 /* ============================================================================= */
  33 
  34 static jvmtiEnv *jvmti = NULL;
  35 static jvmtiCapabilities caps;
  36 static jvmtiEventCallbacks callbacks;
  37 
  38 /* ============================================================================= */
  39 
  40 JNIEXPORT jboolean JNICALL
  41 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_suspendThread (
  42         JNIEnv *env
  43         , jclass cls
  44         , jobject earlyReturnThread
  45         )
  46 {
  47     if (!NSK_JVMTI_VERIFY(jvmti->SuspendThread(earlyReturnThread)))



  48          return JNI_FALSE;
  49 
  50     return JNI_TRUE;
  51 }
  52 
  53 /* ============================================================================= */
  54 
  55 JNIEXPORT jboolean JNICALL
  56 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_resumeThread (
  57         JNIEnv *env
  58         , jclass klass
  59         , jobject earlyReturnThread
  60         )
  61 {
  62     if (!NSK_JVMTI_VERIFY(jvmti->ResumeThread(earlyReturnThread)))



  63          return JNI_FALSE;
  64 
  65     return JNI_TRUE;
  66 }
  67 
  68 /* ============================================================================= */
  69 
  70 JNIEXPORT jboolean JNICALL
  71 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnObject (
  72         JNIEnv *env
  73         , jclass klass
  74         , jthread earlyReturnThread
  75         , jobject valueToReturn
  76         )
  77 {
  78     if (!NSK_JVMTI_VERIFY(jvmti->ForceEarlyReturnObject(earlyReturnThread, valueToReturn)))



  79         return JNI_FALSE;
  80 
  81     return JNI_TRUE;
  82 }
  83 
  84 /* ============================================================================= */
  85 
  86 JNIEXPORT jboolean JNICALL
  87 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnInt(
  88         JNIEnv *env
  89         , jclass klass
  90         , jthread earlyReturnThread
  91         , jint valueToReturn
  92         )
  93 {
  94     if (!NSK_JVMTI_VERIFY(jvmti->ForceEarlyReturnInt(earlyReturnThread, valueToReturn)))



  95         return JNI_FALSE;
  96 
  97     return JNI_TRUE;
  98 }
  99 
 100 /* ============================================================================= */
 101 
 102 JNIEXPORT jboolean JNICALL
 103 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnLong (
 104         JNIEnv *env
 105         , jclass klass
 106         , jthread earlyReturnThread
 107         , jlong valueToReturn
 108         )
 109 {
 110     if (!NSK_JVMTI_VERIFY(jvmti->ForceEarlyReturnLong(earlyReturnThread, valueToReturn)))



 111         return JNI_FALSE;
 112 
 113     return JNI_TRUE;
 114 }
 115 
 116 /* ============================================================================= */
 117 
 118 JNIEXPORT jboolean JNICALL
 119 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnFloat (
 120         JNIEnv *env
 121         , jclass klass
 122         , jthread earlyReturnThread
 123         , jfloat valueToReturn
 124         )
 125 {
 126     if (!NSK_JVMTI_VERIFY(jvmti->ForceEarlyReturnFloat(earlyReturnThread, valueToReturn)))



 127         return JNI_FALSE;
 128 
 129     return JNI_TRUE;
 130 }
 131 
 132 /* ============================================================================= */
 133 
 134 JNIEXPORT jboolean JNICALL
 135 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnDouble (
 136         JNIEnv *env
 137         , jclass klass
 138         , jthread earlyReturnThread
 139         , jdouble valueToReturn
 140         )
 141 {
 142     if (!NSK_JVMTI_VERIFY(jvmti->ForceEarlyReturnDouble(earlyReturnThread, valueToReturn)))



 143         return JNI_FALSE;
 144 
 145     return JNI_TRUE;
 146 }
 147 
 148 /* ============================================================================= */
 149 
 150 JNIEXPORT jboolean JNICALL
 151 Java_nsk_jvmti_ForceEarlyReturn_ForceEarlyReturn001_doForceEarlyReturnVoid (
 152         JNIEnv *env
 153         , jclass klass
 154         , jthread earlyReturnThread
 155         )
 156 {
 157     if (!NSK_JVMTI_VERIFY(jvmti->ForceEarlyReturnVoid(earlyReturnThread)))



 158         return JNI_FALSE;
 159 
 160     return JNI_TRUE;
 161 }
 162 
 163 /* ============================================================================= */
 164 
 165 /* Agent initialization procedure */
 166 #ifdef STATIC_BUILD
 167 JNIEXPORT jint JNICALL Agent_OnLoad_ForceEarlyReturn001(JavaVM *jvm, char *options, void *reserved) {
 168     return Agent_Initialize(jvm, options, reserved);
 169 }
 170 JNIEXPORT jint JNICALL Agent_OnAttach_ForceEarlyReturn001(JavaVM *jvm, char *options, void *reserved) {
 171     return Agent_Initialize(jvm, options, reserved);
 172 }
 173 JNIEXPORT jint JNI_OnLoad_ForceEarlyReturn001(JavaVM *jvm, char *options, void *reserved) {
 174     return JNI_VERSION_1_8;
 175 }
 176 #endif
 177 jint Agent_Initialize(JavaVM *vm, char *options, void *reserved)
 178 {
 179     jvmtiCapabilities caps;
 180 
 181     if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL))



 182         return JNI_ERR;
 183 
 184     if (!NSK_JVMTI_VERIFY(jvmti->GetCapabilities(&caps)))


 185         return JNI_ERR;
 186 
 187     // Register all necessary JVM capabilities
 188     caps.can_force_early_return = 1;
 189     caps.can_suspend = 1;
 190 
 191     if (!NSK_JVMTI_VERIFY(jvmti->AddCapabilities(&caps)))


 192         return JNI_ERR;
 193 
 194     return JNI_OK;
 195 }
 196 
 197 }
< prev index next >