129 // the fact that it has a NULL typeName
130 static VMLongConstantEntry localHotSpotVMLongConstants[];
131 // The function to get localHotSpotVMIntConstants length
132 static size_t localHotSpotVMLongConstantsLength() NOT_VM_STRUCTS_RETURN_(0);
133
134 /**
135 * Table of addresses.
136 */
137 static VMAddressEntry localHotSpotVMAddresses[];
138
139 #ifdef ASSERT
140 // This is used to run any checking code necessary for validation of
141 // the data structure (debug build only)
142 static void init() NOT_VM_STRUCTS_RETURN;
143
144 private:
145 // Look up a type in localHotSpotVMTypes using strcmp() (debug build only).
146 // Returns 1 if found, 0 if not.
147 static int findType(const char* typeName) NOT_VM_STRUCTS_RETURN_(0);
148 #endif // ASSERT
149 };
150
151 // This utility macro quotes the passed string
152 #define QUOTE(x) #x
153
154 //--------------------------------------------------------------------------------
155 // VMStructEntry macros
156 //
157
158 // This macro generates a VMStructEntry line for a nonstatic field
159 #define GENERATE_NONSTATIC_VM_STRUCT_ENTRY(typeName, fieldName, type) \
160 { QUOTE(typeName), QUOTE(fieldName), QUOTE(type), 0, offset_of(typeName, fieldName), NULL },
161
162 // This macro generates a VMStructEntry line for a static field
163 #define GENERATE_STATIC_VM_STRUCT_ENTRY(typeName, fieldName, type) \
164 { QUOTE(typeName), QUOTE(fieldName), QUOTE(type), 1, 0, &typeName::fieldName },
165
166 // This macro generates a VMStructEntry line for a static pointer volatile field,
167 // e.g.: "static ObjectMonitor * volatile g_block_list;"
168 #define GENERATE_STATIC_PTR_VOLATILE_VM_STRUCT_ENTRY(typeName, fieldName, type) \
|
129 // the fact that it has a NULL typeName
130 static VMLongConstantEntry localHotSpotVMLongConstants[];
131 // The function to get localHotSpotVMIntConstants length
132 static size_t localHotSpotVMLongConstantsLength() NOT_VM_STRUCTS_RETURN_(0);
133
134 /**
135 * Table of addresses.
136 */
137 static VMAddressEntry localHotSpotVMAddresses[];
138
139 #ifdef ASSERT
140 // This is used to run any checking code necessary for validation of
141 // the data structure (debug build only)
142 static void init() NOT_VM_STRUCTS_RETURN;
143
144 private:
145 // Look up a type in localHotSpotVMTypes using strcmp() (debug build only).
146 // Returns 1 if found, 0 if not.
147 static int findType(const char* typeName) NOT_VM_STRUCTS_RETURN_(0);
148 #endif // ASSERT
149
150 public:
151 static void compact_headers_overrides() NOT_VM_STRUCTS_RETURN;
152 };
153
154 // This utility macro quotes the passed string
155 #define QUOTE(x) #x
156
157 //--------------------------------------------------------------------------------
158 // VMStructEntry macros
159 //
160
161 // This macro generates a VMStructEntry line for a nonstatic field
162 #define GENERATE_NONSTATIC_VM_STRUCT_ENTRY(typeName, fieldName, type) \
163 { QUOTE(typeName), QUOTE(fieldName), QUOTE(type), 0, offset_of(typeName, fieldName), NULL },
164
165 // This macro generates a VMStructEntry line for a static field
166 #define GENERATE_STATIC_VM_STRUCT_ENTRY(typeName, fieldName, type) \
167 { QUOTE(typeName), QUOTE(fieldName), QUOTE(type), 1, 0, &typeName::fieldName },
168
169 // This macro generates a VMStructEntry line for a static pointer volatile field,
170 // e.g.: "static ObjectMonitor * volatile g_block_list;"
171 #define GENERATE_STATIC_PTR_VOLATILE_VM_STRUCT_ENTRY(typeName, fieldName, type) \
|