22 * 23 */ 24 25 #ifndef SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP 26 #define SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP 27 28 #include "memory/metaspaceShared.hpp" 29 #include "runtime/flags/jvmFlag.hpp" 30 #include "utilities/growableArray.hpp" 31 32 /* 33 * Here we have a mechanism for extracting ranges specified in flag macro tables. 34 * 35 * The specified ranges are used to verify that flags have valid values. 36 * 37 * An example of a range is "min <= flag <= max". Both "min" and "max" must be 38 * constant and can not change. If either "min" or "max" can change, 39 * then we need to use constraint instead. 40 */ 41 42 class CommandLineError : public AllStatic { 43 public: 44 static void print(bool verbose, const char* msg, ...); 45 }; 46 47 class JVMFlagRange : public CHeapObj<mtArguments> { 48 private: 49 const char* _name; 50 public: 51 // the "name" argument must be a string literal 52 JVMFlagRange(const char* name) { _name=name; } 53 ~JVMFlagRange() {} 54 const char* name() { return _name; } 55 virtual JVMFlag::Error check(bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 56 virtual JVMFlag::Error check_int(int value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 57 virtual JVMFlag::Error check_intx(intx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 58 virtual JVMFlag::Error check_uint(uint value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 59 virtual JVMFlag::Error check_uintx(uintx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 60 virtual JVMFlag::Error check_uint64_t(uint64_t value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 61 virtual JVMFlag::Error check_size_t(size_t value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 62 virtual JVMFlag::Error check_double(double value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 63 virtual void print(outputStream* st) { ; } 64 }; 65 66 class JVMFlagRangeList : public AllStatic { | 22 * 23 */ 24 25 #ifndef SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP 26 #define SHARE_VM_RUNTIME_JVMFLAGRANGELIST_HPP 27 28 #include "memory/metaspaceShared.hpp" 29 #include "runtime/flags/jvmFlag.hpp" 30 #include "utilities/growableArray.hpp" 31 32 /* 33 * Here we have a mechanism for extracting ranges specified in flag macro tables. 34 * 35 * The specified ranges are used to verify that flags have valid values. 36 * 37 * An example of a range is "min <= flag <= max". Both "min" and "max" must be 38 * constant and can not change. If either "min" or "max" can change, 39 * then we need to use constraint instead. 40 */ 41 42 class JVMFlagRange : public CHeapObj<mtArguments> { 43 private: 44 const char* _name; 45 public: 46 // the "name" argument must be a string literal 47 JVMFlagRange(const char* name) { _name=name; } 48 ~JVMFlagRange() {} 49 const char* name() { return _name; } 50 virtual JVMFlag::Error check(bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 51 virtual JVMFlag::Error check_int(int value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 52 virtual JVMFlag::Error check_intx(intx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 53 virtual JVMFlag::Error check_uint(uint value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 54 virtual JVMFlag::Error check_uintx(uintx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 55 virtual JVMFlag::Error check_uint64_t(uint64_t value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 56 virtual JVMFlag::Error check_size_t(size_t value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 57 virtual JVMFlag::Error check_double(double value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } 58 virtual void print(outputStream* st) { ; } 59 }; 60 61 class JVMFlagRangeList : public AllStatic { |