57 #include "oops/oop.inline.hpp"
58 #include "prims/jvm_misc.hpp"
59 #include "prims/jvmtiExport.hpp"
60 #include "prims/jvmtiThreadState.hpp"
61 #include "prims/nativeLookup.hpp"
62 #include "prims/stackwalk.hpp"
63 #include "runtime/arguments.hpp"
64 #include "runtime/atomic.hpp"
65 #include "runtime/handles.inline.hpp"
66 #include "runtime/init.hpp"
67 #include "runtime/interfaceSupport.inline.hpp"
68 #include "runtime/deoptimization.hpp"
69 #include "runtime/handshake.hpp"
70 #include "runtime/java.hpp"
71 #include "runtime/javaCalls.hpp"
72 #include "runtime/jfieldIDWorkaround.hpp"
73 #include "runtime/jniHandles.inline.hpp"
74 #include "runtime/os.inline.hpp"
75 #include "runtime/perfData.hpp"
76 #include "runtime/reflection.hpp"
77 #include "runtime/thread.inline.hpp"
78 #include "runtime/threadSMR.hpp"
79 #include "runtime/vframe.inline.hpp"
80 #include "runtime/vmOperations.hpp"
81 #include "runtime/vm_version.hpp"
82 #include "services/attachListener.hpp"
83 #include "services/management.hpp"
84 #include "services/threadService.hpp"
85 #include "utilities/copy.hpp"
86 #include "utilities/defaultStream.hpp"
87 #include "utilities/dtrace.hpp"
88 #include "utilities/events.hpp"
89 #include "utilities/histogram.hpp"
90 #include "utilities/macros.hpp"
91 #include "utilities/utf8.hpp"
92 #if INCLUDE_CDS
93 #include "classfile/systemDictionaryShared.hpp"
94 #endif
95
96 #include <errno.h>
473 if (DynamicDumpSharedSpaces) {
474 MetaspaceShared::link_and_cleanup_shared_classes(THREAD);
475 }
476 EventShutdown event;
477 if (event.should_commit()) {
478 event.set_reason("Shutdown requested from Java");
479 event.commit();
480 }
481 JVM_END
482
483
484 JVM_ENTRY_NO_ENV(void, JVM_Halt(jint code))
485 before_exit(thread);
486 vm_exit(code);
487 JVM_END
488
489
490 JVM_ENTRY_NO_ENV(void, JVM_GC(void))
491 JVMWrapper("JVM_GC");
492 if (!DisableExplicitGC) {
493 Universe::heap()->collect(GCCause::_java_lang_system_gc);
494 }
495 JVM_END
496
497
498 JVM_LEAF(jlong, JVM_MaxObjectInspectionAge(void))
499 JVMWrapper("JVM_MaxObjectInspectionAge");
500 return Universe::heap()->millis_since_last_gc();
501 JVM_END
502
503
504 static inline jlong convert_size_t_to_jlong(size_t val) {
505 // In the 64-bit vm, a size_t can overflow a jlong (which is signed).
506 NOT_LP64 (return (jlong)val;)
507 LP64_ONLY(return (jlong)MIN2(val, (size_t)max_jlong);)
508 }
509
510 JVM_ENTRY_NO_ENV(jlong, JVM_TotalMemory(void))
511 JVMWrapper("JVM_TotalMemory");
512 size_t n = Universe::heap()->capacity();
|
57 #include "oops/oop.inline.hpp"
58 #include "prims/jvm_misc.hpp"
59 #include "prims/jvmtiExport.hpp"
60 #include "prims/jvmtiThreadState.hpp"
61 #include "prims/nativeLookup.hpp"
62 #include "prims/stackwalk.hpp"
63 #include "runtime/arguments.hpp"
64 #include "runtime/atomic.hpp"
65 #include "runtime/handles.inline.hpp"
66 #include "runtime/init.hpp"
67 #include "runtime/interfaceSupport.inline.hpp"
68 #include "runtime/deoptimization.hpp"
69 #include "runtime/handshake.hpp"
70 #include "runtime/java.hpp"
71 #include "runtime/javaCalls.hpp"
72 #include "runtime/jfieldIDWorkaround.hpp"
73 #include "runtime/jniHandles.inline.hpp"
74 #include "runtime/os.inline.hpp"
75 #include "runtime/perfData.hpp"
76 #include "runtime/reflection.hpp"
77 #include "runtime/synchronizer.hpp"
78 #include "runtime/thread.inline.hpp"
79 #include "runtime/threadSMR.hpp"
80 #include "runtime/vframe.inline.hpp"
81 #include "runtime/vmOperations.hpp"
82 #include "runtime/vm_version.hpp"
83 #include "services/attachListener.hpp"
84 #include "services/management.hpp"
85 #include "services/threadService.hpp"
86 #include "utilities/copy.hpp"
87 #include "utilities/defaultStream.hpp"
88 #include "utilities/dtrace.hpp"
89 #include "utilities/events.hpp"
90 #include "utilities/histogram.hpp"
91 #include "utilities/macros.hpp"
92 #include "utilities/utf8.hpp"
93 #if INCLUDE_CDS
94 #include "classfile/systemDictionaryShared.hpp"
95 #endif
96
97 #include <errno.h>
474 if (DynamicDumpSharedSpaces) {
475 MetaspaceShared::link_and_cleanup_shared_classes(THREAD);
476 }
477 EventShutdown event;
478 if (event.should_commit()) {
479 event.set_reason("Shutdown requested from Java");
480 event.commit();
481 }
482 JVM_END
483
484
485 JVM_ENTRY_NO_ENV(void, JVM_Halt(jint code))
486 before_exit(thread);
487 vm_exit(code);
488 JVM_END
489
490
491 JVM_ENTRY_NO_ENV(void, JVM_GC(void))
492 JVMWrapper("JVM_GC");
493 if (!DisableExplicitGC) {
494 if (AsyncDeflateIdleMonitors) {
495 // AsyncDeflateIdleMonitors needs to know when System.gc() is
496 // called so any special deflation can be done at a safepoint.
497 ObjectSynchronizer::set_is_special_deflation_requested(true);
498 }
499 Universe::heap()->collect(GCCause::_java_lang_system_gc);
500 }
501 JVM_END
502
503
504 JVM_LEAF(jlong, JVM_MaxObjectInspectionAge(void))
505 JVMWrapper("JVM_MaxObjectInspectionAge");
506 return Universe::heap()->millis_since_last_gc();
507 JVM_END
508
509
510 static inline jlong convert_size_t_to_jlong(size_t val) {
511 // In the 64-bit vm, a size_t can overflow a jlong (which is signed).
512 NOT_LP64 (return (jlong)val;)
513 LP64_ONLY(return (jlong)MIN2(val, (size_t)max_jlong);)
514 }
515
516 JVM_ENTRY_NO_ENV(jlong, JVM_TotalMemory(void))
517 JVMWrapper("JVM_TotalMemory");
518 size_t n = Universe::heap()->capacity();
|