< prev index next >

src/share/vm/runtime/vm_version.cpp

Print this page
rev 8977 : imported patch assert
rev 8978 : imported patch remove_err_msg
rev 8979 : [mq]: vmerr_static


  68     #error HOTSPOT_BUILD_TARGET must be defined
  69   #endif
  70   #define VM_RELEASE HOTSPOT_RELEASE_VERSION "-" HOTSPOT_BUILD_TARGET
  71 #else
  72   #define VM_RELEASE HOTSPOT_RELEASE_VERSION
  73 #endif
  74 
  75 // HOTSPOT_RELEASE_VERSION follows the JDK release version naming convention
  76 // <major_ver>.<minor_ver>.<micro_ver>[-<identifier>][-<debug_target>][-b<nn>]
  77 int Abstract_VM_Version::_vm_major_version = 0;
  78 int Abstract_VM_Version::_vm_minor_version = 0;
  79 int Abstract_VM_Version::_vm_micro_version = 0;
  80 int Abstract_VM_Version::_vm_build_number = 0;
  81 bool Abstract_VM_Version::_initialized = false;
  82 unsigned int Abstract_VM_Version::_parallel_worker_threads = 0;
  83 bool Abstract_VM_Version::_parallel_worker_threads_initialized = false;
  84 
  85 #ifdef ASSERT
  86 static void assert_digits(const char * s, const char * message) {
  87   for (int i = 0; s[i] != '\0'; i++) {
  88     assert(isdigit(s[i]), message);
  89   }
  90 }
  91 #endif
  92 
  93 static void set_version_field(int * version_field, const char * version_str,
  94                               const char * const assert_msg) {
  95   if (version_str != NULL && *version_str != '\0') {
  96     DEBUG_ONLY(assert_digits(version_str, assert_msg));
  97     *version_field = atoi(version_str);
  98   }
  99 }
 100 
 101 void Abstract_VM_Version::initialize() {
 102   if (_initialized) {
 103     return;
 104   }
 105 
 106   set_version_field(&_vm_major_version, JDK_MAJOR_VERSION, "bad major version");
 107   set_version_field(&_vm_minor_version, JDK_MINOR_VERSION, "bad minor version");
 108   set_version_field(&_vm_micro_version, JDK_MICRO_VERSION, "bad micro version");


 136   #endif // TIERED
 137 #endif
 138 
 139 #ifndef HOTSPOT_VM_DISTRO
 140   #error HOTSPOT_VM_DISTRO must be defined
 141 #endif
 142 #define VMNAME HOTSPOT_VM_DISTRO " " VMLP EMBEDDED_ONLY("Embedded ") VMTYPE " VM"
 143 
 144 const char* Abstract_VM_Version::vm_name() {
 145   return VMNAME;
 146 }
 147 
 148 
 149 const char* Abstract_VM_Version::vm_vendor() {
 150 #ifdef VENDOR
 151   return XSTR(VENDOR);
 152 #else
 153   return "Oracle Corporation";
 154 #endif
 155 }
 156 
 157 
 158 const char* Abstract_VM_Version::vm_info_string() {
 159   if (CodeCacheExtensions::use_pregenerated_interpreter()) {
 160     return "interpreted mode, pregenerated";
 161   }
 162   switch (Arguments::mode()) {
 163     case Arguments::_int:
 164       return UseSharedSpaces ? "interpreted mode, sharing" : "interpreted mode";
 165     case Arguments::_mixed:
 166       return UseSharedSpaces ? "mixed mode, sharing"       :  "mixed mode";
 167     case Arguments::_comp:
 168       return UseSharedSpaces ? "compiled mode, sharing"    : "compiled mode";
 169   };
 170   ShouldNotReachHere();
 171   return "";
 172 }
 173 
 174 // NOTE: do *not* use stringStream. this function is called by
 175 //       fatal error handler. if the crash is in native thread,
 176 //       stringStream cannot get resource allocated and will SEGV.




  68     #error HOTSPOT_BUILD_TARGET must be defined
  69   #endif
  70   #define VM_RELEASE HOTSPOT_RELEASE_VERSION "-" HOTSPOT_BUILD_TARGET
  71 #else
  72   #define VM_RELEASE HOTSPOT_RELEASE_VERSION
  73 #endif
  74 
  75 // HOTSPOT_RELEASE_VERSION follows the JDK release version naming convention
  76 // <major_ver>.<minor_ver>.<micro_ver>[-<identifier>][-<debug_target>][-b<nn>]
  77 int Abstract_VM_Version::_vm_major_version = 0;
  78 int Abstract_VM_Version::_vm_minor_version = 0;
  79 int Abstract_VM_Version::_vm_micro_version = 0;
  80 int Abstract_VM_Version::_vm_build_number = 0;
  81 bool Abstract_VM_Version::_initialized = false;
  82 unsigned int Abstract_VM_Version::_parallel_worker_threads = 0;
  83 bool Abstract_VM_Version::_parallel_worker_threads_initialized = false;
  84 
  85 #ifdef ASSERT
  86 static void assert_digits(const char * s, const char * message) {
  87   for (int i = 0; s[i] != '\0'; i++) {
  88     assert(isdigit(s[i]), "%s", message);
  89   }
  90 }
  91 #endif
  92 
  93 static void set_version_field(int * version_field, const char * version_str,
  94                               const char * const assert_msg) {
  95   if (version_str != NULL && *version_str != '\0') {
  96     DEBUG_ONLY(assert_digits(version_str, assert_msg));
  97     *version_field = atoi(version_str);
  98   }
  99 }
 100 
 101 void Abstract_VM_Version::initialize() {
 102   if (_initialized) {
 103     return;
 104   }
 105 
 106   set_version_field(&_vm_major_version, JDK_MAJOR_VERSION, "bad major version");
 107   set_version_field(&_vm_minor_version, JDK_MINOR_VERSION, "bad minor version");
 108   set_version_field(&_vm_micro_version, JDK_MICRO_VERSION, "bad micro version");


 136   #endif // TIERED
 137 #endif
 138 
 139 #ifndef HOTSPOT_VM_DISTRO
 140   #error HOTSPOT_VM_DISTRO must be defined
 141 #endif
 142 #define VMNAME HOTSPOT_VM_DISTRO " " VMLP EMBEDDED_ONLY("Embedded ") VMTYPE " VM"
 143 
 144 const char* Abstract_VM_Version::vm_name() {
 145   return VMNAME;
 146 }
 147 
 148 
 149 const char* Abstract_VM_Version::vm_vendor() {
 150 #ifdef VENDOR
 151   return XSTR(VENDOR);
 152 #else
 153   return "Oracle Corporation";
 154 #endif
 155 }

 156 
 157 const char* Abstract_VM_Version::vm_info_string() {
 158   if (CodeCacheExtensions::use_pregenerated_interpreter()) {
 159     return "interpreted mode, pregenerated";
 160   }
 161   switch (Arguments::mode()) {
 162     case Arguments::_int:
 163       return UseSharedSpaces ? "interpreted mode, sharing" : "interpreted mode";
 164     case Arguments::_mixed:
 165       return UseSharedSpaces ? "mixed mode, sharing"       :  "mixed mode";
 166     case Arguments::_comp:
 167       return UseSharedSpaces ? "compiled mode, sharing"    : "compiled mode";
 168   };
 169   ShouldNotReachHere();
 170   return "";
 171 }
 172 
 173 // NOTE: do *not* use stringStream. this function is called by
 174 //       fatal error handler. if the crash is in native thread,
 175 //       stringStream cannot get resource allocated and will SEGV.


< prev index next >