< prev index next >

src/hotspot/share/runtime/java.cpp

Print this page




 677 
 678 void vm_exit_during_initialization(const char* error, const char* message) {
 679   vm_notify_during_shutdown(error, message);
 680 
 681   // Failure during initialization, we don't want to dump core
 682   vm_abort(false);
 683 }
 684 
 685 void vm_shutdown_during_initialization(const char* error, const char* message) {
 686   vm_notify_during_shutdown(error, message);
 687   vm_shutdown();
 688 }
 689 
 690 JDK_Version JDK_Version::_current;
 691 const char* JDK_Version::_runtime_name;
 692 const char* JDK_Version::_runtime_version;
 693 const char* JDK_Version::_runtime_vendor_version;
 694 const char* JDK_Version::_runtime_vendor_vm_bug_url;
 695 
 696 void JDK_Version::initialize() {
 697   jdk_version_info info;
 698   assert(!_current.is_valid(), "Don't initialize twice");
 699 
 700   void *lib_handle = os::native_java_library();
 701   jdk_version_info_fn_t func = CAST_TO_FN_PTR(jdk_version_info_fn_t,
 702      os::dll_lookup(lib_handle, "JDK_GetVersionInfo0"));
 703 
 704   assert(func != NULL, "Support for JDK 1.5 or older has been removed after JEP-223");
 705 
 706   (*func)(&info, sizeof(info));
 707 
 708   int major = JDK_VERSION_MAJOR(info.jdk_version);
 709   int minor = JDK_VERSION_MINOR(info.jdk_version);
 710   int security = JDK_VERSION_SECURITY(info.jdk_version);
 711   int build = JDK_VERSION_BUILD(info.jdk_version);
 712 
 713   _current = JDK_Version(major, minor, security, info.patch_version, build);
 714 }
 715 
 716 void JDK_Version_init() {
 717   JDK_Version::initialize();
 718 }
 719 
 720 static int64_t encode_jdk_version(const JDK_Version& v) {
 721   return
 722     ((int64_t)v.major_version()          << (BitsPerByte * 4)) |
 723     ((int64_t)v.minor_version()          << (BitsPerByte * 3)) |
 724     ((int64_t)v.security_version()       << (BitsPerByte * 2)) |
 725     ((int64_t)v.patch_version()          << (BitsPerByte * 1)) |
 726     ((int64_t)v.build_number()           << (BitsPerByte * 0));
 727 }
 728 
 729 int JDK_Version::compare(const JDK_Version& other) const {
 730   assert(is_valid() && other.is_valid(), "Invalid version (uninitialized?)");
 731   uint64_t e = encode_jdk_version(*this);
 732   uint64_t o = encode_jdk_version(other);
 733   return (e > o) ? 1 : ((e == o) ? 0 : -1);




 677 
 678 void vm_exit_during_initialization(const char* error, const char* message) {
 679   vm_notify_during_shutdown(error, message);
 680 
 681   // Failure during initialization, we don't want to dump core
 682   vm_abort(false);
 683 }
 684 
 685 void vm_shutdown_during_initialization(const char* error, const char* message) {
 686   vm_notify_during_shutdown(error, message);
 687   vm_shutdown();
 688 }
 689 
 690 JDK_Version JDK_Version::_current;
 691 const char* JDK_Version::_runtime_name;
 692 const char* JDK_Version::_runtime_version;
 693 const char* JDK_Version::_runtime_vendor_version;
 694 const char* JDK_Version::_runtime_vendor_vm_bug_url;
 695 
 696 void JDK_Version::initialize() {

 697   assert(!_current.is_valid(), "Don't initialize twice");
 698 
 699   int major = VM_Version::vm_major_version();
 700   int minor = VM_Version::vm_minor_version();
 701   int security = VM_Version::vm_security_version();
 702   int build = VM_Version::vm_build_number();
 703   int patch = VM_Version::vm_patch_version();
 704   _current = JDK_Version(major, minor, security, patch, build);








 705 }
 706 
 707 void JDK_Version_init() {
 708   JDK_Version::initialize();
 709 }
 710 
 711 static int64_t encode_jdk_version(const JDK_Version& v) {
 712   return
 713     ((int64_t)v.major_version()          << (BitsPerByte * 4)) |
 714     ((int64_t)v.minor_version()          << (BitsPerByte * 3)) |
 715     ((int64_t)v.security_version()       << (BitsPerByte * 2)) |
 716     ((int64_t)v.patch_version()          << (BitsPerByte * 1)) |
 717     ((int64_t)v.build_number()           << (BitsPerByte * 0));
 718 }
 719 
 720 int JDK_Version::compare(const JDK_Version& other) const {
 721   assert(is_valid() && other.is_valid(), "Invalid version (uninitialized?)");
 722   uint64_t e = encode_jdk_version(*this);
 723   uint64_t o = encode_jdk_version(other);
 724   return (e > o) ? 1 : ((e == o) ? 0 : -1);


< prev index next >