JNIEXPORT void JNICALL Java_sun_management_VMManagementImpl_initOptionalSupportFields (JNIEnv *env, jclass cls) { jmmOptionalSupport mos; jint ret = jmm_interface->GetOptionalSupport(env, &mos); jboolean value; value = mos.isCompilationTimeMonitoringSupported; setStaticBooleanField(env, cls, "compTimeMonitoringSupport", value); value = mos.isThreadContentionMonitoringSupported; setStaticBooleanField(env, cls, "threadContentionMonitoringSupport", value); value = mos.isCurrentThreadCpuTimeSupported; setStaticBooleanField(env, cls, "currentThreadCpuTimeSupport", value); value = mos.isOtherThreadCpuTimeSupported; setStaticBooleanField(env, cls, "otherThreadCpuTimeSupport", value); value = mos.isBootClassPathSupported; setStaticBooleanField(env, cls, "bootClassPathSupport", value); if (jmm_version >= JMM_VERSION_1_1) { value = mos.isObjectMonitorUsageSupported; setStaticBooleanField(env, cls, "objectMonitorUsageSupport", value); value = mos.isSynchronizerUsageSupported; setStaticBooleanField(env, cls, "synchronizerUsageSupport", value); } else { setStaticBooleanField(env, cls, "objectMonitorUsageSupport", JNI_FALSE); setStaticBooleanField(env, cls, "synchronizerUsageSupport", JNI_FALSE); } }
JNIEXPORT void JNICALL Java_sun_management_VMManagementImpl_initOptionalSupportFields (JNIEnv *env, jclass cls) { jmmOptionalSupport mos; jint ret = jmm_interface->GetOptionalSupport(env, &mos); jboolean value; value = mos.isCompilationTimeMonitoringSupported; setStaticBooleanField(env, cls, "compTimeMonitoringSupport", value); value = mos.isThreadContentionMonitoringSupported; setStaticBooleanField(env, cls, "threadContentionMonitoringSupport", value); value = mos.isCurrentThreadCpuTimeSupported; setStaticBooleanField(env, cls, "currentThreadCpuTimeSupport", value); value = mos.isOtherThreadCpuTimeSupported; setStaticBooleanField(env, cls, "otherThreadCpuTimeSupport", value); value = mos.isBootClassPathSupported; setStaticBooleanField(env, cls, "bootClassPathSupport", value); if (jmm_version >= JMM_VERSION_1_1) { value = mos.isObjectMonitorUsageSupported; setStaticBooleanField(env, cls, "objectMonitorUsageSupport", value); value = mos.isSynchronizerUsageSupported; setStaticBooleanField(env, cls, "synchronizerUsageSupport", value); } else { setStaticBooleanField(env, cls, "objectMonitorUsageSupport", JNI_FALSE); setStaticBooleanField(env, cls, "synchronizerUsageSupport", JNI_FALSE); } value = mos.isThreadAllocatedMemorySupported; setStaticBooleanField(env, cls, "threadAllocatedMemorySupport", value); value = mos.isRemoteDiagnosticCommandsSupported; setStaticBooleanField(env, cls, "remoteDiagnosticCommandsSupport", value); if ((jmm_version > JMM_VERSION_1_2) || (jmm_version == JMM_VERSION_1_2 && ((jmm_version&0xFF) >= 1))) { setStaticBooleanField(env, cls, "gcNotificationSupport", JNI_TRUE); } else { setStaticBooleanField(env, cls, "gcNotificationSupport", JNI_FALSE); } }