25 #include "jvmti.h"
26 #include "agent_common.h"
27 #include "jni_tools.h"
28 #include "jvmti_tools.h"
29
30 extern "C" {
31
32 /* ============================================================================= */
33
34 static jlong timeout = 0;
35 static jvmtiEnv* st_jvmti = NULL;
36 static int *user_data = 0, objCounter = 0;
37 static jlong nanos = 0;
38 static jvmtiTimerInfo timer_info1, timer_info2;
39 static const char* debugeeClassSignature = "Lnsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005;";
40 static const char* objectFieldName = "object";
41
42 /* ============================================================================= */
43
44 jvmtiIterationControl JNICALL
45 objectReferenceCallback( jvmtiObjectReferenceKind reference_kind,
46 jlong class_tag,
47 jlong size,
48 jlong* tag_ptr,
49 jlong referrer_tag,
50 jint referrer_index,
51 void* user_data) {
52
53 objCounter++;
54
55 if (!NSK_JVMTI_VERIFY(st_jvmti->GetCurrentThreadCpuTimerInfo(&timer_info1))) {
56 nsk_jvmti_setFailStatus();
57 }
58 /* Check the returned jvmtiTimerInfo structure */
59 if (timer_info1.max_value == 0) {
60 NSK_COMPLAIN0("GetCurrentThreadCpuTimerInfo returned zero in jvmtiTimerInfo.max_value\n");
61 nsk_jvmti_setFailStatus();
62 }
63 if (timer_info1.may_skip_forward != JNI_TRUE && timer_info1.may_skip_forward != JNI_FALSE) {
64 NSK_COMPLAIN0("GetCurrentThreadCpuTimerInfo returned unknown type value in jvmtiTimerInfo.may_skip_forward\n");
65 nsk_jvmti_setFailStatus();
66 }
67 if (timer_info1.may_skip_backward != JNI_TRUE && timer_info1.may_skip_backward != JNI_FALSE) {
68 NSK_COMPLAIN0("GetCurrentThreadCpuTimerInfo returned unknown type value in jvmtiTimerInfo.may_skip_backward\n");
69 nsk_jvmti_setFailStatus();
70 }
71 /* ---------------------------------------------------------------------- */
|
25 #include "jvmti.h"
26 #include "agent_common.h"
27 #include "jni_tools.h"
28 #include "jvmti_tools.h"
29
30 extern "C" {
31
32 /* ============================================================================= */
33
34 static jlong timeout = 0;
35 static jvmtiEnv* st_jvmti = NULL;
36 static int *user_data = 0, objCounter = 0;
37 static jlong nanos = 0;
38 static jvmtiTimerInfo timer_info1, timer_info2;
39 static const char* debugeeClassSignature = "Lnsk/jvmti/IterateOverObjectsReachableFromObject/iterobjreachobj005;";
40 static const char* objectFieldName = "object";
41
42 /* ============================================================================= */
43
44 jvmtiIterationControl JNICALL
45 objectReferenceCallback(jvmtiObjectReferenceKind reference_kind,
46 jlong class_tag,
47 jlong size,
48 jlong* tag_ptr,
49 jlong referrer_tag,
50 jint referrer_index,
51 void* user_data) {
52
53 objCounter++;
54
55 if (!NSK_JVMTI_VERIFY(st_jvmti->GetCurrentThreadCpuTimerInfo(&timer_info1))) {
56 nsk_jvmti_setFailStatus();
57 }
58 /* Check the returned jvmtiTimerInfo structure */
59 if (timer_info1.max_value == 0) {
60 NSK_COMPLAIN0("GetCurrentThreadCpuTimerInfo returned zero in jvmtiTimerInfo.max_value\n");
61 nsk_jvmti_setFailStatus();
62 }
63 if (timer_info1.may_skip_forward != JNI_TRUE && timer_info1.may_skip_forward != JNI_FALSE) {
64 NSK_COMPLAIN0("GetCurrentThreadCpuTimerInfo returned unknown type value in jvmtiTimerInfo.may_skip_forward\n");
65 nsk_jvmti_setFailStatus();
66 }
67 if (timer_info1.may_skip_backward != JNI_TRUE && timer_info1.may_skip_backward != JNI_FALSE) {
68 NSK_COMPLAIN0("GetCurrentThreadCpuTimerInfo returned unknown type value in jvmtiTimerInfo.may_skip_backward\n");
69 nsk_jvmti_setFailStatus();
70 }
71 /* ---------------------------------------------------------------------- */
|