142 }
143 }
144
145 #ifdef STATIC_BUILD
146 JNIEXPORT jint JNI_OnLoad_attach041Agent00(JavaVM *jvm, char *options, void *reserved) {
147 return JNI_VERSION_1_8;
148 }
149 #endif
150
151 JNIEXPORT jint JNICALL
152 #ifdef STATIC_BUILD
153 Agent_OnAttach_attach041Agent00(JavaVM *vm, char *optionsString, void *reserved)
154 #else
155 Agent_OnAttach(JavaVM *vm, char *optionsString, void *reserved)
156 #endif
157 {
158 jvmtiEventCallbacks eventCallbacks;
159 jvmtiEnv* jvmti;
160 JNIEnv* jni;
161
162 if (!NSK_VERIFY((options = (Options*) nsk_aod_createOptions(optionsString)) != NULL))
163 return JNI_ERR;
164
165 agentName = nsk_aod_getOptionValue(options, NSK_AOD_AGENT_NAME_OPTION);
166
167 if ((jni = (JNIEnv*) nsk_aod_createJNIEnv(vm)) == NULL)
168 return JNI_ERR;
169
170 if (!NSK_VERIFY((jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved)) != NULL))
171 return JNI_ERR;
172
173 memset(&eventCallbacks,0, sizeof(eventCallbacks));
174 eventCallbacks.ThreadStart = threadStartHandler;
175 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
176 return JNI_ERR;
177 }
178
179 if (!(nsk_jvmti_aod_enableEvent(jvmti, JVMTI_EVENT_THREAD_START))) {
180 return JNI_ERR;
181 }
182
183 NSK_DISPLAY1("%s: initialization was done\n", agentName);
184
185 if (!NSK_VERIFY(nsk_aod_agentLoaded(jni, agentName)))
186 return JNI_ERR;
187
188 return JNI_OK;
189 }
190
|
142 }
143 }
144
145 #ifdef STATIC_BUILD
146 JNIEXPORT jint JNI_OnLoad_attach041Agent00(JavaVM *jvm, char *options, void *reserved) {
147 return JNI_VERSION_1_8;
148 }
149 #endif
150
151 JNIEXPORT jint JNICALL
152 #ifdef STATIC_BUILD
153 Agent_OnAttach_attach041Agent00(JavaVM *vm, char *optionsString, void *reserved)
154 #else
155 Agent_OnAttach(JavaVM *vm, char *optionsString, void *reserved)
156 #endif
157 {
158 jvmtiEventCallbacks eventCallbacks;
159 jvmtiEnv* jvmti;
160 JNIEnv* jni;
161
162 options = (Options*) nsk_aod_createOptions(optionsString);
163 if (!NSK_VERIFY(options != NULL))
164 return JNI_ERR;
165
166 agentName = nsk_aod_getOptionValue(options, NSK_AOD_AGENT_NAME_OPTION);
167
168 jni = (JNIEnv*) nsk_aod_createJNIEnv(vm);
169 if (jni == NULL)
170 return JNI_ERR;
171
172 jvmti = nsk_jvmti_createJVMTIEnv(vm, reserved);
173 if (!NSK_VERIFY(jvmti != NULL))
174 return JNI_ERR;
175
176 memset(&eventCallbacks,0, sizeof(eventCallbacks));
177 eventCallbacks.ThreadStart = threadStartHandler;
178 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
179 return JNI_ERR;
180 }
181
182 if (!(nsk_jvmti_aod_enableEvent(jvmti, JVMTI_EVENT_THREAD_START))) {
183 return JNI_ERR;
184 }
185
186 NSK_DISPLAY1("%s: initialization was done\n", agentName);
187
188 if (!NSK_VERIFY(nsk_aod_agentLoaded(jni, agentName)))
189 return JNI_ERR;
190
191 return JNI_OK;
192 }
193
|