src/share/vm/runtime/globals.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8024545 Cdiff src/share/vm/runtime/globals.hpp

src/share/vm/runtime/globals.hpp

Print this page

        

*** 192,255 **** // string type aliases used only in this file typedef const char* ccstr; typedef const char* ccstrlist; // represents string arguments which accumulate ! enum FlagValueOrigin { DEFAULT = 0, COMMAND_LINE = 1, ENVIRON_VAR = 2, CONFIG_FILE = 3, MANAGEMENT = 4, ERGONOMIC = 5, ATTACH_ON_DEMAND = 6, ! INTERNAL = 99 ! }; ! ! struct Flag { ! const char *type; ! const char *name; ! void* addr; ! NOT_PRODUCT(const char *doc;) ! ! const char *kind; ! FlagValueOrigin origin; // points to all Flags static array ! static Flag *flags; // number of flags static size_t numFlags; static Flag* find_flag(const char* name, size_t length, bool allow_locked = false); static Flag* fuzzy_match(const char* name, size_t length, bool allow_locked = false); ! bool is_bool() const { return strcmp(type, "bool") == 0; } ! bool get_bool() const { return *((bool*) addr); } ! void set_bool(bool value) { *((bool*) addr) = value; } ! ! bool is_intx() const { return strcmp(type, "intx") == 0; } ! intx get_intx() const { return *((intx*) addr); } ! void set_intx(intx value) { *((intx*) addr) = value; } ! ! bool is_uintx() const { return strcmp(type, "uintx") == 0; } ! uintx get_uintx() const { return *((uintx*) addr); } ! void set_uintx(uintx value) { *((uintx*) addr) = value; } ! ! bool is_uint64_t() const { return strcmp(type, "uint64_t") == 0; } ! uint64_t get_uint64_t() const { return *((uint64_t*) addr); } ! void set_uint64_t(uint64_t value) { *((uint64_t*) addr) = value; } ! ! bool is_double() const { return strcmp(type, "double") == 0; } ! double get_double() const { return *((double*) addr); } ! void set_double(double value) { *((double*) addr) = value; } ! ! bool is_ccstr() const { return strcmp(type, "ccstr") == 0 || strcmp(type, "ccstrlist") == 0; } ! bool ccstr_accumulates() const { return strcmp(type, "ccstrlist") == 0; } ! ccstr get_ccstr() const { return *((ccstr*) addr); } ! void set_ccstr(ccstr value) { *((ccstr*) addr) = value; } bool is_unlocker() const; bool is_unlocked() const; bool is_writeable() const; bool is_external() const; --- 192,295 ---- // string type aliases used only in this file typedef const char* ccstr; typedef const char* ccstrlist; // represents string arguments which accumulate ! struct Flag { ! enum Flags { ! // value origin DEFAULT = 0, COMMAND_LINE = 1, ENVIRON_VAR = 2, CONFIG_FILE = 3, MANAGEMENT = 4, ERGONOMIC = 5, ATTACH_ON_DEMAND = 6, ! INTERNAL = 7, ! LAST_VALUE_ORIGIN = INTERNAL, ! VALUE_ORIGIN_BITS = 4, ! VALUE_ORIGIN_MASK = right_n_bits(VALUE_ORIGIN_BITS), ! ! // flag kind ! KIND_PRODUCT = 1 << 4, ! KIND_MANAGEABLE = 1 << 5, ! KIND_DIAGNOSTIC = 1 << 6, ! KIND_EXPERIMENTAL = 1 << 7, ! KIND_NOT_PRODUCT = 1 << 8, ! KIND_DEVELOP = 1 << 9, ! KIND_PLATFORM_DEPENDENT = 1 << 10, ! KIND_READ_WRITE = 1 << 11, ! KIND_C1 = 1 << 12, ! KIND_C2 = 1 << 13, ! KIND_ARCH = 1 << 14, ! KIND_SHARK = 1 << 15, ! KIND_LP64_PRODUCT = 1 << 16, ! KIND_COMMERCIAL = 1 << 17, ! ! KIND_MASK = ~VALUE_ORIGIN_MASK ! }; ! ! const char* _type; ! const char* _name; ! void* _addr; ! NOT_PRODUCT(const char* _doc;) ! Flags _flags; // points to all Flags static array ! static Flag* flags; // number of flags static size_t numFlags; static Flag* find_flag(const char* name, size_t length, bool allow_locked = false); static Flag* fuzzy_match(const char* name, size_t length, bool allow_locked = false); ! void check_writable(); ! ! bool is_bool() const; ! bool get_bool() const; ! void set_bool(bool value); ! ! bool is_intx() const; ! intx get_intx() const; ! void set_intx(intx value); ! ! bool is_uintx() const; ! uintx get_uintx() const; ! void set_uintx(uintx value); ! ! bool is_uint64_t() const; ! uint64_t get_uint64_t() const; ! void set_uint64_t(uint64_t value); ! ! bool is_double() const; ! double get_double() const; ! void set_double(double value); ! ! bool is_ccstr() const; ! bool ccstr_accumulates() const; ! ccstr get_ccstr() const; ! void set_ccstr(ccstr value); ! ! Flags get_origin(); ! void set_origin(Flags origin); ! ! bool is_default(); ! bool is_ergonomic(); ! bool is_command_line(); ! ! bool is_product() const; ! bool is_manageable() const; ! bool is_diagnostic() const; ! bool is_experimental() const; ! bool is_notproduct() const; ! bool is_develop() const; ! bool is_read_write() const; ! bool is_commercial() const; ! ! bool is_constant_in_binary() const; bool is_unlocker() const; bool is_unlocked() const; bool is_writeable() const; bool is_external() const;
*** 261,270 **** --- 301,311 ---- void get_locked_message(char*, int) const; void get_locked_message_ext(char*, int) const; void print_on(outputStream* st, bool withComments = false ); + void print_kind(outputStream* st); void print_as_flag(outputStream* st); }; // debug flags control various aspects of the VM and are global accessible
*** 308,344 **** class CommandLineFlags { public: static bool boolAt(char* name, size_t len, bool* value); static bool boolAt(char* name, bool* value) { return boolAt(name, strlen(name), value); } ! static bool boolAtPut(char* name, size_t len, bool* value, FlagValueOrigin origin); ! static bool boolAtPut(char* name, bool* value, FlagValueOrigin origin) { return boolAtPut(name, strlen(name), value, origin); } static bool intxAt(char* name, size_t len, intx* value); static bool intxAt(char* name, intx* value) { return intxAt(name, strlen(name), value); } ! static bool intxAtPut(char* name, size_t len, intx* value, FlagValueOrigin origin); ! static bool intxAtPut(char* name, intx* value, FlagValueOrigin origin) { return intxAtPut(name, strlen(name), value, origin); } static bool uintxAt(char* name, size_t len, uintx* value); static bool uintxAt(char* name, uintx* value) { return uintxAt(name, strlen(name), value); } ! static bool uintxAtPut(char* name, size_t len, uintx* value, FlagValueOrigin origin); ! static bool uintxAtPut(char* name, uintx* value, FlagValueOrigin origin) { return uintxAtPut(name, strlen(name), value, origin); } static bool uint64_tAt(char* name, size_t len, uint64_t* value); static bool uint64_tAt(char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); } ! static bool uint64_tAtPut(char* name, size_t len, uint64_t* value, FlagValueOrigin origin); ! static bool uint64_tAtPut(char* name, uint64_t* value, FlagValueOrigin origin) { return uint64_tAtPut(name, strlen(name), value, origin); } static bool doubleAt(char* name, size_t len, double* value); static bool doubleAt(char* name, double* value) { return doubleAt(name, strlen(name), value); } ! static bool doubleAtPut(char* name, size_t len, double* value, FlagValueOrigin origin); ! static bool doubleAtPut(char* name, double* value, FlagValueOrigin origin) { return doubleAtPut(name, strlen(name), value, origin); } static bool ccstrAt(char* name, size_t len, ccstr* value); static bool ccstrAt(char* name, ccstr* value) { return ccstrAt(name, strlen(name), value); } ! static bool ccstrAtPut(char* name, size_t len, ccstr* value, FlagValueOrigin origin); ! static bool ccstrAtPut(char* name, ccstr* value, FlagValueOrigin origin) { return ccstrAtPut(name, strlen(name), value, origin); } // Returns false if name is not a command line flag. static bool wasSetOnCmdline(const char* name, bool* value); static void printSetFlags(outputStream* out); --- 349,385 ---- class CommandLineFlags { public: static bool boolAt(char* name, size_t len, bool* value); static bool boolAt(char* name, bool* value) { return boolAt(name, strlen(name), value); } ! static bool boolAtPut(char* name, size_t len, bool* value, Flag::Flags origin); ! static bool boolAtPut(char* name, bool* value, Flag::Flags origin) { return boolAtPut(name, strlen(name), value, origin); } static bool intxAt(char* name, size_t len, intx* value); static bool intxAt(char* name, intx* value) { return intxAt(name, strlen(name), value); } ! static bool intxAtPut(char* name, size_t len, intx* value, Flag::Flags origin); ! static bool intxAtPut(char* name, intx* value, Flag::Flags origin) { return intxAtPut(name, strlen(name), value, origin); } static bool uintxAt(char* name, size_t len, uintx* value); static bool uintxAt(char* name, uintx* value) { return uintxAt(name, strlen(name), value); } ! static bool uintxAtPut(char* name, size_t len, uintx* value, Flag::Flags origin); ! static bool uintxAtPut(char* name, uintx* value, Flag::Flags origin) { return uintxAtPut(name, strlen(name), value, origin); } static bool uint64_tAt(char* name, size_t len, uint64_t* value); static bool uint64_tAt(char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); } ! static bool uint64_tAtPut(char* name, size_t len, uint64_t* value, Flag::Flags origin); ! static bool uint64_tAtPut(char* name, uint64_t* value, Flag::Flags origin) { return uint64_tAtPut(name, strlen(name), value, origin); } static bool doubleAt(char* name, size_t len, double* value); static bool doubleAt(char* name, double* value) { return doubleAt(name, strlen(name), value); } ! static bool doubleAtPut(char* name, size_t len, double* value, Flag::Flags origin); ! static bool doubleAtPut(char* name, double* value, Flag::Flags origin) { return doubleAtPut(name, strlen(name), value, origin); } static bool ccstrAt(char* name, size_t len, ccstr* value); static bool ccstrAt(char* name, ccstr* value) { return ccstrAt(name, strlen(name), value); } ! static bool ccstrAtPut(char* name, size_t len, ccstr* value, Flag::Flags origin); ! static bool ccstrAtPut(char* name, ccstr* value, Flag::Flags origin) { return ccstrAtPut(name, strlen(name), value, origin); } // Returns false if name is not a command line flag. static bool wasSetOnCmdline(const char* name, bool* value); static void printSetFlags(outputStream* out);
*** 3732,3744 **** #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; #ifdef PRODUCT ! #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) const type name = value; ! #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) const type name = pd_##name; ! #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) #else #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name; #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name; #endif --- 3773,3785 ---- #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; #ifdef PRODUCT ! #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type CONST_##name; const type name = value; ! #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type CONST_##name; const type name = pd_##name; ! #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type CONST_##name; #else #define DECLARE_DEVELOPER_FLAG(type, name, value, doc) extern "C" type name; #define DECLARE_PD_DEVELOPER_FLAG(type, name, doc) extern "C" type name; #define DECLARE_NOTPRODUCT_FLAG(type, name, value, doc) extern "C" type name; #endif
*** 3755,3767 **** #define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value; #ifdef PRODUCT ! #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) /* flag name is constant */ ! #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) /* flag name is constant */ ! #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) #else #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type name = pd_##name; #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type name = value; #endif --- 3796,3808 ---- #define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value; #ifdef PRODUCT ! #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type CONST_##name = value; ! #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type CONST_##name = pd_##name; ! #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type CONST_##name = value; #else #define MATERIALIZE_DEVELOPER_FLAG(type, name, value, doc) type name = value; #define MATERIALIZE_PD_DEVELOPER_FLAG(type, name, doc) type name = pd_##name; #define MATERIALIZE_NOTPRODUCT_FLAG(type, name, value, doc) type name = value; #endif
src/share/vm/runtime/globals.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File