< prev index next >

src/hotspot/share/prims/jvm.cpp

Print this page


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 


< prev index next >