177 178 #ifndef REG_COUNT 179 #define REG_COUNT 0 180 #endif 181 182 #if INCLUDE_JVMTI 183 #define JVMTI_STRUCTS(static_field) \ 184 static_field(JvmtiExport, _can_access_local_variables, bool) \ 185 static_field(JvmtiExport, _can_hotswap_or_post_breakpoint, bool) \ 186 static_field(JvmtiExport, _can_post_on_exceptions, bool) \ 187 static_field(JvmtiExport, _can_walk_any_space, bool) 188 #else 189 #define JVMTI_STRUCTS(static_field) 190 #endif // INCLUDE_JVMTI 191 192 typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry; 193 typedef Hashtable<intptr_t, mtInternal> IntptrHashtable; 194 typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable; 195 typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry; 196 typedef Hashtable<oop, mtSymbol> StringHashtable; 197 typedef TwoOopHashtable<Klass*, mtClass> KlassTwoOopHashtable; 198 typedef Hashtable<Klass*, mtClass> KlassHashtable; 199 typedef HashtableEntry<Klass*, mtClass> KlassHashtableEntry; 200 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; 201 typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable; 202 203 //-------------------------------------------------------------------------------- 204 // VM_STRUCTS 205 // 206 // This list enumerates all of the fields the serviceability agent 207 // needs to know about. Be sure to see also the type table below this one. 208 // NOTE that there are platform-specific additions to this table in 209 // vmStructs_<os>_<cpu>.hpp. 210 211 #define VM_STRUCTS(nonstatic_field, \ 212 static_field, \ 213 static_ptr_volatile_field, \ 214 unchecked_nonstatic_field, \ 215 volatile_nonstatic_field, \ 216 nonproduct_nonstatic_field, \ 217 c1_nonstatic_field, \ 218 c2_nonstatic_field, \ 219 unchecked_c1_static_field, \ | 177 178 #ifndef REG_COUNT 179 #define REG_COUNT 0 180 #endif 181 182 #if INCLUDE_JVMTI 183 #define JVMTI_STRUCTS(static_field) \ 184 static_field(JvmtiExport, _can_access_local_variables, bool) \ 185 static_field(JvmtiExport, _can_hotswap_or_post_breakpoint, bool) \ 186 static_field(JvmtiExport, _can_post_on_exceptions, bool) \ 187 static_field(JvmtiExport, _can_walk_any_space, bool) 188 #else 189 #define JVMTI_STRUCTS(static_field) 190 #endif // INCLUDE_JVMTI 191 192 typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry; 193 typedef Hashtable<intptr_t, mtInternal> IntptrHashtable; 194 typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable; 195 typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry; 196 typedef Hashtable<oop, mtSymbol> StringHashtable; 197 typedef TwoOopHashtable<InstanceKlass*, mtClass> KlassTwoOopHashtable; 198 typedef Hashtable<InstanceKlass*, mtClass> KlassHashtable; 199 typedef HashtableEntry<InstanceKlass*, mtClass> KlassHashtableEntry; 200 typedef TwoOopHashtable<Symbol*, mtClass> SymbolTwoOopHashtable; 201 typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable; 202 203 //-------------------------------------------------------------------------------- 204 // VM_STRUCTS 205 // 206 // This list enumerates all of the fields the serviceability agent 207 // needs to know about. Be sure to see also the type table below this one. 208 // NOTE that there are platform-specific additions to this table in 209 // vmStructs_<os>_<cpu>.hpp. 210 211 #define VM_STRUCTS(nonstatic_field, \ 212 static_field, \ 213 static_ptr_volatile_field, \ 214 unchecked_nonstatic_field, \ 215 volatile_nonstatic_field, \ 216 nonproduct_nonstatic_field, \ 217 c1_nonstatic_field, \ 218 c2_nonstatic_field, \ 219 unchecked_c1_static_field, \ |