3716 if (JvmtiExport::should_post_vm_object_alloc()) { 3717 JvmtiExport::post_vm_object_alloc(JavaThread::current(), result); 3718 } 3719 return res; 3720 JVM_END 3721 3722 // Atomic /////////////////////////////////////////////////////////////////////////////////////////// 3723 3724 JVM_LEAF(jboolean, JVM_SupportsCX8()) 3725 JVMWrapper("JVM_SupportsCX8"); 3726 return VM_Version::supports_cx8(); 3727 JVM_END 3728 3729 JVM_ENTRY(void, JVM_InitializeFromArchive(JNIEnv* env, jclass cls)) 3730 JVMWrapper("JVM_InitializeFromArchive"); 3731 Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls)); 3732 assert(k->is_klass(), "just checking"); 3733 HeapShared::initialize_from_archived_subgraph(k); 3734 JVM_END 3735 3736 // Returns an array of all live Thread objects (VM internal JavaThreads, 3737 // jvmti agent threads, and JNI attaching threads are skipped) 3738 // See CR 6404306 regarding JNI attaching threads 3739 JVM_ENTRY(jobjectArray, JVM_GetAllThreads(JNIEnv *env, jclass dummy)) 3740 ResourceMark rm(THREAD); 3741 ThreadsListEnumerator tle(THREAD, false, false); 3742 JvmtiVMObjectAllocEventCollector oam; 3743 3744 int num_threads = tle.num_threads(); 3745 objArrayOop r = oopFactory::new_objArray(SystemDictionary::Thread_klass(), num_threads, CHECK_NULL); 3746 objArrayHandle threads_ah(THREAD, r); 3747 3748 for (int i = 0; i < num_threads; i++) { 3749 Handle h = tle.get_threadObj(i); 3750 threads_ah->obj_at_put(i, h()); 3751 } 3752 3753 return (jobjectArray) JNIHandles::make_local(env, threads_ah()); 3754 JVM_END 3755 | 3716 if (JvmtiExport::should_post_vm_object_alloc()) { 3717 JvmtiExport::post_vm_object_alloc(JavaThread::current(), result); 3718 } 3719 return res; 3720 JVM_END 3721 3722 // Atomic /////////////////////////////////////////////////////////////////////////////////////////// 3723 3724 JVM_LEAF(jboolean, JVM_SupportsCX8()) 3725 JVMWrapper("JVM_SupportsCX8"); 3726 return VM_Version::supports_cx8(); 3727 JVM_END 3728 3729 JVM_ENTRY(void, JVM_InitializeFromArchive(JNIEnv* env, jclass cls)) 3730 JVMWrapper("JVM_InitializeFromArchive"); 3731 Klass* k = java_lang_Class::as_Klass(JNIHandles::resolve(cls)); 3732 assert(k->is_klass(), "just checking"); 3733 HeapShared::initialize_from_archived_subgraph(k); 3734 JVM_END 3735 3736 JVM_ENTRY_NO_ENV(jlong, JVM_GetRandomSeedForCDSDump()) 3737 JVMWrapper("JVM_GetRandomSeedForCDSDump"); 3738 if (DumpSharedSpaces) { 3739 const char* release = Abstract_VM_Version::vm_release(); 3740 const char* dbg_level = Abstract_VM_Version::jdk_debug_level(); 3741 const char* version = VM_Version::internal_vm_info_string(); 3742 jlong seed = (jlong)(java_lang_String::hash_code((const jbyte*)release, (int)strlen(release)) ^ 3743 java_lang_String::hash_code((const jbyte*)dbg_level, (int)strlen(dbg_level)) ^ 3744 java_lang_String::hash_code((const jbyte*)version, (int)strlen(version))); 3745 seed += (jlong)Abstract_VM_Version::vm_major_version(); 3746 seed += (jlong)Abstract_VM_Version::vm_minor_version(); 3747 seed += (jlong)Abstract_VM_Version::vm_security_version(); 3748 seed += (jlong)Abstract_VM_Version::vm_patch_version(); 3749 if (seed == 0) { // don't let this ever be zero. 3750 seed = 0x87654321; 3751 } 3752 log_debug(cds)("JVM_GetRandomSeedForCDSDump() = " JLONG_FORMAT, seed); 3753 return seed; 3754 } else { 3755 return 0; 3756 } 3757 JVM_END 3758 3759 // Returns an array of all live Thread objects (VM internal JavaThreads, 3760 // jvmti agent threads, and JNI attaching threads are skipped) 3761 // See CR 6404306 regarding JNI attaching threads 3762 JVM_ENTRY(jobjectArray, JVM_GetAllThreads(JNIEnv *env, jclass dummy)) 3763 ResourceMark rm(THREAD); 3764 ThreadsListEnumerator tle(THREAD, false, false); 3765 JvmtiVMObjectAllocEventCollector oam; 3766 3767 int num_threads = tle.num_threads(); 3768 objArrayOop r = oopFactory::new_objArray(SystemDictionary::Thread_klass(), num_threads, CHECK_NULL); 3769 objArrayHandle threads_ah(THREAD, r); 3770 3771 for (int i = 0; i < num_threads; i++) { 3772 Handle h = tle.get_threadObj(i); 3773 threads_ah->obj_at_put(i, h()); 3774 } 3775 3776 return (jobjectArray) JNIHandles::make_local(env, threads_ah()); 3777 JVM_END 3778 |