--- a/src/hotspot/share/runtime/vm_version.hpp Wed Apr 10 02:41:43 2019 +0000
+++ b/src/hotspot/share/runtime/vm_version.hpp Wed Apr 10 08:51:38 2019 +0200
@@ -29,6 +29,14 @@
#include "utilities/ostream.hpp"
#include "utilities/macros.hpp"
+typedef enum {
+ NoDetectedVirtualization,
+ XenHVM,
+ KVM,
+ VMWare,
+ HyperV
+} VirtualizationType;
+
// VM_Version provides information about the VM.
class Abstract_VM_Version: AllStatic {
@@ -57,6 +65,8 @@
static int _vm_patch_version;
static int _vm_build_number;
+ static VirtualizationType _detected_virtualization;
+
public:
// Called as part of the runtime services initialization which is
// called from the management module initialization (via init_globals())
@@ -111,6 +121,14 @@
return _features_string;
}
+ static VirtualizationType get_detected_virtualization() {
+ return _detected_virtualization;
+ }
+
+ // platforms that need to specialize this
+ // define VM_Version::print_platform_virtualization_info()
+ static void print_platform_virtualization_info(outputStream*) { }
+
// does HW support an 8-byte compare-exchange operation?
static bool supports_cx8() {
#ifdef SUPPORTS_NATIVE_CX8
@@ -149,6 +167,8 @@
// Does this CPU support spin wait instruction?
static bool supports_on_spin_wait() { return false; }
+
+ static bool print_matching_lines_from_file(const char* filename, outputStream* st, const char* keywords_to_match[]);
};
#include CPU_HEADER(vm_version)