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