126 callbackThreadEnd(jvmtiEnv* jvmti, JNIEnv* jni, jthread thread) {
127 NSK_DISPLAY1(" <THREAD_END>: thread: 0x%p\n", (void*)thread);
128 eventsCountList[2]++;
129 }
130
131 /**
132 * Callback for VM_INIT event.
133 */
134 JNIEXPORT void JNICALL
135 callbackVMInit(jvmtiEnv* jvmti, JNIEnv* jni, jthread thread) {
136 NSK_DISPLAY1(" <VM_INIT>: thread: 0x%p\n", (void*)thread);
137 eventsCountList[0]++;
138
139 NSK_DISPLAY0(">>> Testcase #2: Set callbacks for THREAD_START and THREAD_END events\n");
140 {
141 jvmtiEventCallbacks eventCallbacks;
142
143 memset(&eventCallbacks, 0, sizeof(eventCallbacks));
144 eventCallbacks.ThreadStart = callbackThreadStart;
145 eventCallbacks.ThreadEnd = callbackThreadEnd;
146 if (!NSK_JVMTI_VERIFY(
147 NSK_CPP_STUB3(SetEventCallbacks, jvmti,
148 &eventCallbacks, sizeof(eventCallbacks)))) {
149 nsk_jvmti_setFailStatus();
150 } else {
151 nsk_jvmti_enableEvents(JVMTI_ENABLE, EVENTS_COUNT - 1, eventsList + 1, NULL);
152 }
153 }
154 }
155
156 /* ============================================================================= */
157
158 /** Agent library initialization. */
159 #ifdef STATIC_BUILD
160 JNIEXPORT jint JNICALL Agent_OnLoad_setevntcallb001(JavaVM *jvm, char *options, void *reserved) {
161 return Agent_Initialize(jvm, options, reserved);
162 }
163 JNIEXPORT jint JNICALL Agent_OnAttach_setevntcallb001(JavaVM *jvm, char *options, void *reserved) {
164 return Agent_Initialize(jvm, options, reserved);
165 }
166 JNIEXPORT jint JNI_OnLoad_setevntcallb001(JavaVM *jvm, char *options, void *reserved) {
167 return JNI_VERSION_1_8;
168 }
173 if (!NSK_VERIFY(nsk_jvmti_parseOptions(options)))
174 return JNI_ERR;
175
176 timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
177
178 if (!NSK_VERIFY((jvmti =
179 nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL))
180 return JNI_ERR;
181
182 if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL)))
183 return JNI_ERR;
184
185 NSK_DISPLAY0(">>> Testcase #1: Set callbacks for VM_INIT event\n");
186 {
187 jvmtiEventCallbacks eventCallbacks;
188
189 cleanEventCounts();
190
191 memset(&eventCallbacks, 0, sizeof(eventCallbacks));
192 eventCallbacks.VMInit = callbackVMInit;
193 if (!NSK_JVMTI_VERIFY(
194 NSK_CPP_STUB3(SetEventCallbacks, jvmti,
195 &eventCallbacks, sizeof(eventCallbacks)))) {
196 nsk_jvmti_setFailStatus();
197 } else {
198 nsk_jvmti_enableEvents(JVMTI_ENABLE, 1, eventsList, NULL);
199 }
200 }
201 return JNI_OK;
202 }
203
204 /* ============================================================================= */
205
206 }
|
126 callbackThreadEnd(jvmtiEnv* jvmti, JNIEnv* jni, jthread thread) {
127 NSK_DISPLAY1(" <THREAD_END>: thread: 0x%p\n", (void*)thread);
128 eventsCountList[2]++;
129 }
130
131 /**
132 * Callback for VM_INIT event.
133 */
134 JNIEXPORT void JNICALL
135 callbackVMInit(jvmtiEnv* jvmti, JNIEnv* jni, jthread thread) {
136 NSK_DISPLAY1(" <VM_INIT>: thread: 0x%p\n", (void*)thread);
137 eventsCountList[0]++;
138
139 NSK_DISPLAY0(">>> Testcase #2: Set callbacks for THREAD_START and THREAD_END events\n");
140 {
141 jvmtiEventCallbacks eventCallbacks;
142
143 memset(&eventCallbacks, 0, sizeof(eventCallbacks));
144 eventCallbacks.ThreadStart = callbackThreadStart;
145 eventCallbacks.ThreadEnd = callbackThreadEnd;
146 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
147 nsk_jvmti_setFailStatus();
148 } else {
149 nsk_jvmti_enableEvents(JVMTI_ENABLE, EVENTS_COUNT - 1, eventsList + 1, NULL);
150 }
151 }
152 }
153
154 /* ============================================================================= */
155
156 /** Agent library initialization. */
157 #ifdef STATIC_BUILD
158 JNIEXPORT jint JNICALL Agent_OnLoad_setevntcallb001(JavaVM *jvm, char *options, void *reserved) {
159 return Agent_Initialize(jvm, options, reserved);
160 }
161 JNIEXPORT jint JNICALL Agent_OnAttach_setevntcallb001(JavaVM *jvm, char *options, void *reserved) {
162 return Agent_Initialize(jvm, options, reserved);
163 }
164 JNIEXPORT jint JNI_OnLoad_setevntcallb001(JavaVM *jvm, char *options, void *reserved) {
165 return JNI_VERSION_1_8;
166 }
171 if (!NSK_VERIFY(nsk_jvmti_parseOptions(options)))
172 return JNI_ERR;
173
174 timeout = nsk_jvmti_getWaitTime() * 60 * 1000;
175
176 if (!NSK_VERIFY((jvmti =
177 nsk_jvmti_createJVMTIEnv(jvm, reserved)) != NULL))
178 return JNI_ERR;
179
180 if (!NSK_VERIFY(nsk_jvmti_setAgentProc(agentProc, NULL)))
181 return JNI_ERR;
182
183 NSK_DISPLAY0(">>> Testcase #1: Set callbacks for VM_INIT event\n");
184 {
185 jvmtiEventCallbacks eventCallbacks;
186
187 cleanEventCounts();
188
189 memset(&eventCallbacks, 0, sizeof(eventCallbacks));
190 eventCallbacks.VMInit = callbackVMInit;
191 if (!NSK_JVMTI_VERIFY(jvmti->SetEventCallbacks(&eventCallbacks, sizeof(eventCallbacks)))) {
192 nsk_jvmti_setFailStatus();
193 } else {
194 nsk_jvmti_enableEvents(JVMTI_ENABLE, 1, eventsList, NULL);
195 }
196 }
197 return JNI_OK;
198 }
199
200 /* ============================================================================= */
201
202 }
|