116 }
117 }
118
119 #ifdef STATIC_BUILD
120 JNIEXPORT jint JNI_OnLoad_attach040Agent00(JavaVM *jvm, char *options, void *reserved) {
121 return JNI_VERSION_1_8;
122 }
123 #endif
124
125 JNIEXPORT jint JNICALL
126 #ifdef STATIC_BUILD
127 Agent_OnAttach_attach040Agent00(JavaVM *vm, char *optionsString, void *reserved)
128 #else
129 Agent_OnAttach(JavaVM *vm, char *optionsString, void *reserved)
130 #endif
131 {
132 jvmtiEventCallbacks eventCallbacks;
133 jvmtiEnv* jvmti;
134 JNIEnv* jni;
135
136 if (!NSK_VERIFY((options = (Options*) nsk_aod_createOptions(optionsString)) != NULL))
137 return JNI_ERR;
138
139 agentName = nsk_aod_getOptionValue(options, NSK_AOD_AGENT_NAME_OPTION);
140
141 if ((jni = (JNIEnv*) nsk_aod_createJNIEnv(vm)) == NULL)
142 return JNI_ERR;
143
144 if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL))
145 return JNI_ERR;
146
147 if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("threadsCounterMonitor", &threadsCounterMonitor))) {
148 return JNI_ERR;
149 }
150
151 memset(&eventCallbacks,0, sizeof(eventCallbacks));
152 eventCallbacks.ThreadStart = threadStartHandler;
153 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
154 return JNI_ERR;
155 }
156
157 if (!(nsk_jvmti_aod_enableEvent(jvmti, JVMTI_EVENT_THREAD_START))) {
158 return JNI_ERR;
159 }
160
161 NSK_DISPLAY1("%s: initialization was done\n", agentName);
162
163 if (!NSK_VERIFY(nsk_aod_agentLoaded(jni, agentName)))
164 return JNI_ERR;
|
116 }
117 }
118
119 #ifdef STATIC_BUILD
120 JNIEXPORT jint JNI_OnLoad_attach040Agent00(JavaVM *jvm, char *options, void *reserved) {
121 return JNI_VERSION_1_8;
122 }
123 #endif
124
125 JNIEXPORT jint JNICALL
126 #ifdef STATIC_BUILD
127 Agent_OnAttach_attach040Agent00(JavaVM *vm, char *optionsString, void *reserved)
128 #else
129 Agent_OnAttach(JavaVM *vm, char *optionsString, void *reserved)
130 #endif
131 {
132 jvmtiEventCallbacks eventCallbacks;
133 jvmtiEnv* jvmti;
134 JNIEnv* jni;
135
136 options = (Options*) nsk_aod_createOptions(optionsString);
137 if (!NSK_VERIFY(options != NULL))
138 return JNI_ERR;
139
140 agentName = nsk_aod_getOptionValue(options, NSK_AOD_AGENT_NAME_OPTION);
141
142 jni = (JNIEnv*) nsk_aod_createJNIEnv(vm);
143 if (jni == NULL)
144 return JNI_ERR;
145
146 jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved);
147 if (!NSK_VERIFY(jvmti != NULL))
148 return JNI_ERR;
149
150 if (!NSK_JVMTI_VERIFY(jvmti->CreateRawMonitor("threadsCounterMonitor", &threadsCounterMonitor))) {
151 return JNI_ERR;
152 }
153
154 memset(&eventCallbacks,0, sizeof(eventCallbacks));
155 eventCallbacks.ThreadStart = threadStartHandler;
156 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
157 return JNI_ERR;
158 }
159
160 if (!(nsk_jvmti_aod_enableEvent(jvmti, JVMTI_EVENT_THREAD_START))) {
161 return JNI_ERR;
162 }
163
164 NSK_DISPLAY1("%s: initialization was done\n", agentName);
165
166 if (!NSK_VERIFY(nsk_aod_agentLoaded(jni, agentName)))
167 return JNI_ERR;
|