hotspot/src/share/vm/services/diagnosticCommand.hpp
changeset 30121 cc43664a0ad7
parent 29071 73f45d04ad7a
child 30134 ecd7b08105e9
--- a/hotspot/src/share/vm/services/diagnosticCommand.hpp	Sun Mar 29 09:20:27 2015 -0400
+++ b/hotspot/src/share/vm/services/diagnosticCommand.hpp	Mon Mar 23 11:46:15 2015 +0100
@@ -131,6 +131,48 @@
   virtual void execute(DCmdSource source, TRAPS);
 };
 
+class SetVMFlagDCmd : public DCmdWithParser {
+protected:
+  DCmdArgument<char*> _flag;
+  DCmdArgument<char*> _value;
+
+public:
+  SetVMFlagDCmd(outputStream* output, bool heap);
+  static const char* name() { return "VM.set_flag"; }
+  static const char* description() {
+    return "Sets VM flag option using the provided value.";
+  }
+  static const char* impact() {
+    return "Low";
+  }
+  static const JavaPermission permission() {
+    JavaPermission p = {"java.lang.management.ManagementPermission",
+                        "control", NULL};
+    return p;
+  }
+  static int num_arguments();
+  virtual void execute(DCmdSource source, TRAPS);
+};
+
+class JVMTIDataDumpDCmd : public DCmd {
+public:
+  JVMTIDataDumpDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
+  static const char* name() { return "JVMTI.data_dump"; }
+  static const char* description() {
+    return "Signal the JVM to do a data-dump request for JVMTI.";
+  }
+  static const char* impact() {
+    return "High";
+  }
+  static const JavaPermission permission() {
+    JavaPermission p = {"java.lang.management.ManagementPermission",
+                        "monitor", NULL};
+    return p;
+  }
+  static int num_arguments() { return 0; }
+  virtual void execute(DCmdSource source, TRAPS);
+};
+
 class VMDynamicLibrariesDCmd : public DCmd {
 public:
   VMDynamicLibrariesDCmd(outputStream* output, bool heap);