184 } CommandLineFlagWithType;
185
186 #define FLAG_IS_DEFAULT(name) (CommandLineFlagsEx::is_default(FLAG_MEMBER(name)))
187 #define FLAG_IS_ERGO(name) (CommandLineFlagsEx::is_ergo(FLAG_MEMBER(name)))
188 #define FLAG_IS_CMDLINE(name) (CommandLineFlagsEx::is_cmdline(FLAG_MEMBER(name)))
189
190 #define FLAG_SET_DEFAULT(name, value) ((name) = (value))
191
192 #define FLAG_SET_CMDLINE(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), Flag::COMMAND_LINE))
193 #define FLAG_SET_ERGO(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), Flag::ERGONOMIC))
194
195 // Can't put the following in CommandLineFlags because
196 // of a circular dependency on the enum definition.
197 class CommandLineFlagsEx : CommandLineFlags {
198 public:
199 static void boolAtPut(CommandLineFlagWithType flag, bool value, Flag::Flags origin);
200 static void intxAtPut(CommandLineFlagWithType flag, intx value, Flag::Flags origin);
201 static void uintxAtPut(CommandLineFlagWithType flag, uintx value, Flag::Flags origin);
202 static void uint64_tAtPut(CommandLineFlagWithType flag, uint64_t value, Flag::Flags origin);
203 static void doubleAtPut(CommandLineFlagWithType flag, double value, Flag::Flags origin);
204 static void ccstrAtPut(CommandLineFlagWithType flag, ccstr value, Flag::Flags origin);
205
206 static bool is_default(CommandLineFlag flag);
207 static bool is_ergo(CommandLineFlag flag);
208 static bool is_cmdline(CommandLineFlag flag);
209 };
210
211 #endif // SHARE_VM_RUNTIME_GLOBALS_EXTENSION_HPP
|
184 } CommandLineFlagWithType;
185
186 #define FLAG_IS_DEFAULT(name) (CommandLineFlagsEx::is_default(FLAG_MEMBER(name)))
187 #define FLAG_IS_ERGO(name) (CommandLineFlagsEx::is_ergo(FLAG_MEMBER(name)))
188 #define FLAG_IS_CMDLINE(name) (CommandLineFlagsEx::is_cmdline(FLAG_MEMBER(name)))
189
190 #define FLAG_SET_DEFAULT(name, value) ((name) = (value))
191
192 #define FLAG_SET_CMDLINE(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), Flag::COMMAND_LINE))
193 #define FLAG_SET_ERGO(type, name, value) (CommandLineFlagsEx::type##AtPut(FLAG_MEMBER_WITH_TYPE(name,type), (type)(value), Flag::ERGONOMIC))
194
195 // Can't put the following in CommandLineFlags because
196 // of a circular dependency on the enum definition.
197 class CommandLineFlagsEx : CommandLineFlags {
198 public:
199 static void boolAtPut(CommandLineFlagWithType flag, bool value, Flag::Flags origin);
200 static void intxAtPut(CommandLineFlagWithType flag, intx value, Flag::Flags origin);
201 static void uintxAtPut(CommandLineFlagWithType flag, uintx value, Flag::Flags origin);
202 static void uint64_tAtPut(CommandLineFlagWithType flag, uint64_t value, Flag::Flags origin);
203 static void doubleAtPut(CommandLineFlagWithType flag, double value, Flag::Flags origin);
204 // Contract: Flag will make private copy of the incoming value
205 static void ccstrAtPut(CommandLineFlagWithType flag, ccstr value, Flag::Flags origin);
206
207 static bool is_default(CommandLineFlag flag);
208 static bool is_ergo(CommandLineFlag flag);
209 static bool is_cmdline(CommandLineFlag flag);
210 };
211
212 #endif // SHARE_VM_RUNTIME_GLOBALS_EXTENSION_HPP
|