75 jint Agent_Initialize(JavaVM *vm, char *options, void *reserved) |
75 jint Agent_Initialize(JavaVM *vm, char *options, void *reserved) |
76 { |
76 { |
77 jvmtiEventCallbacks callbacks; |
77 jvmtiEventCallbacks callbacks; |
78 jvmtiCapabilities capabilities; |
78 jvmtiCapabilities capabilities; |
79 |
79 |
80 if ( ! NSK_VERIFY(nsk_jvmti_parseOptions(options))) |
80 if (!NSK_VERIFY(nsk_jvmti_parseOptions(options))) |
81 return JNI_ERR; |
81 return JNI_ERR; |
82 |
82 |
83 if ( ! NSK_VERIFY((gJvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL) ) |
83 if (!NSK_VERIFY((gJvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL)) |
84 return JNI_ERR; |
84 return JNI_ERR; |
85 |
85 |
86 memset(&capabilities, 0, sizeof(jvmtiCapabilities)); |
86 memset(&capabilities, 0, sizeof(jvmtiCapabilities)); |
87 capabilities.can_generate_resource_exhaustion_heap_events = 1; |
87 capabilities.can_generate_resource_exhaustion_heap_events = 1; |
88 capabilities.can_generate_resource_exhaustion_threads_events = 1; |
88 capabilities.can_generate_resource_exhaustion_threads_events = 1; |
89 if ( ! NSK_JVMTI_VERIFY(gJvmti->AddCapabilities(&capabilities)) ) |
89 if (!NSK_JVMTI_VERIFY(gJvmti->AddCapabilities(&capabilities))) |
90 return JNI_ERR; |
90 return JNI_ERR; |
91 |
91 |
92 memset((void *)&callbacks, 0, sizeof(jvmtiEventCallbacks)); |
92 memset((void *)&callbacks, 0, sizeof(jvmtiEventCallbacks)); |
93 callbacks.ResourceExhausted = resourceExhausted; |
93 callbacks.ResourceExhausted = resourceExhausted; |
94 if ( ! NSK_JVMTI_VERIFY(gJvmti->SetEventCallbacks(&callbacks, sizeof(callbacks))) ) |
94 if (!NSK_JVMTI_VERIFY(gJvmti->SetEventCallbacks(&callbacks, sizeof(callbacks)))) |
95 return JNI_ERR; |
95 return JNI_ERR; |
96 |
96 |
97 if ( ! NSK_JVMTI_VERIFY(gJvmti->SetEventNotificationMode(JVMTI_ENABLE, |
97 if (!NSK_JVMTI_VERIFY(gJvmti->SetEventNotificationMode(JVMTI_ENABLE, |
98 JVMTI_EVENT_RESOURCE_EXHAUSTED, |
98 JVMTI_EVENT_RESOURCE_EXHAUSTED, |
99 NULL) ) ) |
99 NULL))) |
100 return JNI_ERR; |
100 return JNI_ERR; |
101 |
101 |
102 return JNI_OK; |
102 return JNI_OK; |
103 } |
103 } |
104 |
104 |