< prev index next >

hotspot/src/share/vm/runtime/vm_version.hpp

Print this page




  28 #include "memory/allocation.hpp"
  29 #include "utilities/ostream.hpp"
  30 
  31 // VM_Version provides information about the VM.
  32 
  33 class Abstract_VM_Version: AllStatic {
  34  protected:
  35   friend class VMStructs;
  36   static const char*  _s_vm_release;
  37   static const char*  _s_internal_vm_info_string;
  38   // These are set by machine-dependent initializations
  39   static bool         _supports_cx8;
  40   static bool         _supports_atomic_getset4;
  41   static bool         _supports_atomic_getset8;
  42   static bool         _supports_atomic_getadd4;
  43   static bool         _supports_atomic_getadd8;
  44   static unsigned int _logical_processors_per_package;
  45   static unsigned int _L1_data_cache_line_size;
  46   static int          _vm_major_version;
  47   static int          _vm_minor_version;
  48   static int          _vm_micro_version;
  49   static int          _vm_build_number;
  50   static bool         _initialized;
  51   static unsigned int _parallel_worker_threads;
  52   static bool         _parallel_worker_threads_initialized;
  53   static int          _reserve_for_allocation_prefetch;
  54 
  55   static unsigned int nof_parallel_worker_threads(unsigned int num,
  56                                                   unsigned int dem,
  57                                                   unsigned int switch_pt);
  58  public:
  59   static void initialize();
  60 
  61   // Name
  62   static const char* vm_name();
  63   // Vendor
  64   static const char* vm_vendor();
  65   // VM version information string printed by launcher (java -version)
  66   static const char* vm_info_string();
  67   static const char* vm_release();
  68   static const char* vm_platform_string();
  69   static const char* vm_build_user();
  70 
  71   static int vm_major_version()               { assert(_initialized, "not initialized"); return _vm_major_version; }
  72   static int vm_minor_version()               { assert(_initialized, "not initialized"); return _vm_minor_version; }
  73   static int vm_micro_version()               { assert(_initialized, "not initialized"); return _vm_micro_version; }
  74   static int vm_build_number()                { assert(_initialized, "not initialized"); return _vm_build_number; }
  75 
  76   // Gets the jvm_version_info.jvm_version defined in jvm.h
  77   static unsigned int jvm_version();
  78 
  79   // Internal version providing additional build information
  80   static const char* internal_vm_info_string();
  81   static const char* jre_release_version();
  82 
  83   // does HW support an 8-byte compare-exchange operation?
  84   static bool supports_cx8()  {
  85 #ifdef SUPPORTS_NATIVE_CX8
  86     return true;
  87 #else
  88     return _supports_cx8;
  89 #endif
  90   }
  91   // does HW support atomic get-and-set or atomic get-and-add?  Used
  92   // to guide intrinsification decisions for Unsafe atomic ops
  93   static bool supports_atomic_getset4()  {return _supports_atomic_getset4;}




  28 #include "memory/allocation.hpp"
  29 #include "utilities/ostream.hpp"
  30 
  31 // VM_Version provides information about the VM.
  32 
  33 class Abstract_VM_Version: AllStatic {
  34  protected:
  35   friend class VMStructs;
  36   static const char*  _s_vm_release;
  37   static const char*  _s_internal_vm_info_string;
  38   // These are set by machine-dependent initializations
  39   static bool         _supports_cx8;
  40   static bool         _supports_atomic_getset4;
  41   static bool         _supports_atomic_getset8;
  42   static bool         _supports_atomic_getadd4;
  43   static bool         _supports_atomic_getadd8;
  44   static unsigned int _logical_processors_per_package;
  45   static unsigned int _L1_data_cache_line_size;
  46   static int          _vm_major_version;
  47   static int          _vm_minor_version;
  48   static int          _vm_security_version;
  49   static int          _vm_build_number;
  50   static bool         _initialized;
  51   static unsigned int _parallel_worker_threads;
  52   static bool         _parallel_worker_threads_initialized;
  53   static int          _reserve_for_allocation_prefetch;
  54 
  55   static unsigned int nof_parallel_worker_threads(unsigned int num,
  56                                                   unsigned int dem,
  57                                                   unsigned int switch_pt);
  58  public:
  59   static void initialize();
  60 
  61   // Name
  62   static const char* vm_name();
  63   // Vendor
  64   static const char* vm_vendor();
  65   // VM version information string printed by launcher (java -version)
  66   static const char* vm_info_string();
  67   static const char* vm_release();
  68   static const char* vm_platform_string();
  69   static const char* vm_build_user();
  70 
  71   static int vm_major_version()               { assert(_initialized, "not initialized"); return _vm_major_version; }
  72   static int vm_minor_version()               { assert(_initialized, "not initialized"); return _vm_minor_version; }
  73   static int vm_security_version()            { assert(_initialized, "not initialized"); return _vm_security_version; }
  74   static int vm_build_number()                { assert(_initialized, "not initialized"); return _vm_build_number; }
  75 
  76   // Gets the jvm_version_info.jvm_version defined in jvm.h
  77   static unsigned int jvm_version();
  78 
  79   // Internal version providing additional build information
  80   static const char* internal_vm_info_string();
  81   static const char* jre_release_version();
  82 
  83   // does HW support an 8-byte compare-exchange operation?
  84   static bool supports_cx8()  {
  85 #ifdef SUPPORTS_NATIVE_CX8
  86     return true;
  87 #else
  88     return _supports_cx8;
  89 #endif
  90   }
  91   // does HW support atomic get-and-set or atomic get-and-add?  Used
  92   // to guide intrinsification decisions for Unsafe atomic ops
  93   static bool supports_atomic_getset4()  {return _supports_atomic_getset4;}


< prev index next >