147 // HotSpotTypeDataBase.java, which parses the type strings.
148
149 #ifndef REG_COUNT
150 #define REG_COUNT 0
151 #endif
152
153 #if INCLUDE_JVMTI
154 #define JVMTI_STRUCTS(static_field) \
155 static_field(JvmtiExport, _can_access_local_variables, bool) \
156 static_field(JvmtiExport, _can_hotswap_or_post_breakpoint, bool) \
157 static_field(JvmtiExport, _can_post_on_exceptions, bool) \
158 static_field(JvmtiExport, _can_walk_any_space, bool)
159 #else
160 #define JVMTI_STRUCTS(static_field)
161 #endif // INCLUDE_JVMTI
162
163 typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry;
164 typedef Hashtable<intptr_t, mtInternal> IntptrHashtable;
165 typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable;
166 typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry;
167 typedef Hashtable<oop, mtSymbol> StringHashtable;
168 typedef Hashtable<InstanceKlass*, mtClass> KlassHashtable;
169 typedef HashtableEntry<InstanceKlass*, mtClass> KlassHashtableEntry;
170 typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable;
171 typedef RehashableHashtable<Symbol*, mtSymbol> RehashableSymbolHashtable;
172
173 typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
174
175 //--------------------------------------------------------------------------------
176 // VM_STRUCTS
177 //
178 // This list enumerates all of the fields the serviceability agent
179 // needs to know about. Be sure to see also the type table below this one.
180 // NOTE that there are platform-specific additions to this table in
181 // vmStructs_<os>_<cpu>.hpp.
182
183 #define VM_STRUCTS(nonstatic_field, \
184 static_field, \
185 static_ptr_volatile_field, \
186 unchecked_nonstatic_field, \
187 volatile_nonstatic_field, \
459 nonstatic_field(PerfDataEntry, flags, jbyte) \
460 nonstatic_field(PerfDataEntry, data_units, jbyte) \
461 nonstatic_field(PerfDataEntry, data_variability, jbyte) \
462 nonstatic_field(PerfDataEntry, data_offset, jint) \
463 \
464 static_field(PerfMemory, _start, char*) \
465 static_field(PerfMemory, _end, char*) \
466 static_field(PerfMemory, _top, char*) \
467 static_field(PerfMemory, _capacity, size_t) \
468 static_field(PerfMemory, _prologue, PerfDataPrologue*) \
469 static_field(PerfMemory, _initialized, int) \
470 \
471 /***************/ \
472 /* SymbolTable */ \
473 /***************/ \
474 \
475 static_field(SymbolTable, _the_table, SymbolTable*) \
476 static_field(SymbolTable, _shared_table, SymbolCompactHashTable) \
477 static_field(RehashableSymbolHashtable, _seed, juint) \
478 \
479 /***************/ \
480 /* StringTable */ \
481 /***************/ \
482 \
483 static_field(StringTable, _the_table, StringTable*) \
484 \
485 /********************/ \
486 /* CompactHashTable */ \
487 /********************/ \
488 \
489 nonstatic_field(SymbolCompactHashTable, _base_address, address) \
490 nonstatic_field(SymbolCompactHashTable, _entry_count, u4) \
491 nonstatic_field(SymbolCompactHashTable, _bucket_count, u4) \
492 nonstatic_field(SymbolCompactHashTable, _buckets, u4*) \
493 nonstatic_field(SymbolCompactHashTable, _entries, u4*) \
494 \
495 /********************/ \
496 /* SystemDictionary */ \
497 /********************/ \
498 \
499 static_field(SystemDictionary, _shared_dictionary, Dictionary*) \
500 static_field(SystemDictionary, _system_loader_lock_obj, oop) \
501 static_field(SystemDictionary, WK_KLASS(Object_klass), InstanceKlass*) \
502 static_field(SystemDictionary, WK_KLASS(String_klass), InstanceKlass*) \
503 static_field(SystemDictionary, WK_KLASS(Class_klass), InstanceKlass*) \
504 static_field(SystemDictionary, WK_KLASS(ClassLoader_klass), InstanceKlass*) \
1348 \
1349 /************************/ \
1350 /* PerfMemory - jvmstat */ \
1351 /************************/ \
1352 \
1353 declare_toplevel_type(PerfDataPrologue) \
1354 declare_toplevel_type(PerfDataPrologue*) \
1355 declare_toplevel_type(PerfDataEntry) \
1356 declare_toplevel_type(PerfMemory) \
1357 declare_type(PerfData, CHeapObj<mtInternal>) \
1358 \
1359 /*********************************/ \
1360 /* SymbolTable, SystemDictionary */ \
1361 /*********************************/ \
1362 \
1363 declare_toplevel_type(BasicHashtable<mtInternal>) \
1364 declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \
1365 declare_toplevel_type(BasicHashtable<mtSymbol>) \
1366 declare_type(RehashableSymbolHashtable, BasicHashtable<mtSymbol>) \
1367 declare_type(SymbolTable, SymbolHashtable) \
1368 declare_type(StringTable, StringHashtable) \
1369 declare_type(Dictionary, KlassHashtable) \
1370 declare_toplevel_type(BasicHashtableEntry<mtInternal>) \
1371 declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \
1372 declare_type(DictionaryEntry, KlassHashtableEntry) \
1373 declare_toplevel_type(HashtableBucket<mtInternal>) \
1374 declare_toplevel_type(SystemDictionary) \
1375 declare_toplevel_type(vmSymbols) \
1376 \
1377 declare_toplevel_type(GenericGrowableArray) \
1378 declare_toplevel_type(GrowableArray<int>) \
1379 declare_toplevel_type(Arena) \
1380 declare_type(ResourceArea, Arena) \
1381 \
1382 declare_toplevel_type(SymbolCompactHashTable) \
1383 \
1384 /***********************************************************/ \
1385 /* Thread hierarchy (needed for run-time type information) */ \
1386 /***********************************************************/ \
1387 \
1388 declare_toplevel_type(Threads) \
|
147 // HotSpotTypeDataBase.java, which parses the type strings.
148
149 #ifndef REG_COUNT
150 #define REG_COUNT 0
151 #endif
152
153 #if INCLUDE_JVMTI
154 #define JVMTI_STRUCTS(static_field) \
155 static_field(JvmtiExport, _can_access_local_variables, bool) \
156 static_field(JvmtiExport, _can_hotswap_or_post_breakpoint, bool) \
157 static_field(JvmtiExport, _can_post_on_exceptions, bool) \
158 static_field(JvmtiExport, _can_walk_any_space, bool)
159 #else
160 #define JVMTI_STRUCTS(static_field)
161 #endif // INCLUDE_JVMTI
162
163 typedef HashtableEntry<intptr_t, mtInternal> IntptrHashtableEntry;
164 typedef Hashtable<intptr_t, mtInternal> IntptrHashtable;
165 typedef Hashtable<Symbol*, mtSymbol> SymbolHashtable;
166 typedef HashtableEntry<Symbol*, mtClass> SymbolHashtableEntry;
167 typedef Hashtable<InstanceKlass*, mtClass> KlassHashtable;
168 typedef HashtableEntry<InstanceKlass*, mtClass> KlassHashtableEntry;
169 typedef CompactHashtable<Symbol*, char> SymbolCompactHashTable;
170 typedef RehashableHashtable<Symbol*, mtSymbol> RehashableSymbolHashtable;
171
172 typedef PaddedEnd<ObjectMonitor> PaddedObjectMonitor;
173
174 //--------------------------------------------------------------------------------
175 // VM_STRUCTS
176 //
177 // This list enumerates all of the fields the serviceability agent
178 // needs to know about. Be sure to see also the type table below this one.
179 // NOTE that there are platform-specific additions to this table in
180 // vmStructs_<os>_<cpu>.hpp.
181
182 #define VM_STRUCTS(nonstatic_field, \
183 static_field, \
184 static_ptr_volatile_field, \
185 unchecked_nonstatic_field, \
186 volatile_nonstatic_field, \
458 nonstatic_field(PerfDataEntry, flags, jbyte) \
459 nonstatic_field(PerfDataEntry, data_units, jbyte) \
460 nonstatic_field(PerfDataEntry, data_variability, jbyte) \
461 nonstatic_field(PerfDataEntry, data_offset, jint) \
462 \
463 static_field(PerfMemory, _start, char*) \
464 static_field(PerfMemory, _end, char*) \
465 static_field(PerfMemory, _top, char*) \
466 static_field(PerfMemory, _capacity, size_t) \
467 static_field(PerfMemory, _prologue, PerfDataPrologue*) \
468 static_field(PerfMemory, _initialized, int) \
469 \
470 /***************/ \
471 /* SymbolTable */ \
472 /***************/ \
473 \
474 static_field(SymbolTable, _the_table, SymbolTable*) \
475 static_field(SymbolTable, _shared_table, SymbolCompactHashTable) \
476 static_field(RehashableSymbolHashtable, _seed, juint) \
477 \
478 /********************/ \
479 /* CompactHashTable */ \
480 /********************/ \
481 \
482 nonstatic_field(SymbolCompactHashTable, _base_address, address) \
483 nonstatic_field(SymbolCompactHashTable, _entry_count, u4) \
484 nonstatic_field(SymbolCompactHashTable, _bucket_count, u4) \
485 nonstatic_field(SymbolCompactHashTable, _buckets, u4*) \
486 nonstatic_field(SymbolCompactHashTable, _entries, u4*) \
487 \
488 /********************/ \
489 /* SystemDictionary */ \
490 /********************/ \
491 \
492 static_field(SystemDictionary, _shared_dictionary, Dictionary*) \
493 static_field(SystemDictionary, _system_loader_lock_obj, oop) \
494 static_field(SystemDictionary, WK_KLASS(Object_klass), InstanceKlass*) \
495 static_field(SystemDictionary, WK_KLASS(String_klass), InstanceKlass*) \
496 static_field(SystemDictionary, WK_KLASS(Class_klass), InstanceKlass*) \
497 static_field(SystemDictionary, WK_KLASS(ClassLoader_klass), InstanceKlass*) \
1341 \
1342 /************************/ \
1343 /* PerfMemory - jvmstat */ \
1344 /************************/ \
1345 \
1346 declare_toplevel_type(PerfDataPrologue) \
1347 declare_toplevel_type(PerfDataPrologue*) \
1348 declare_toplevel_type(PerfDataEntry) \
1349 declare_toplevel_type(PerfMemory) \
1350 declare_type(PerfData, CHeapObj<mtInternal>) \
1351 \
1352 /*********************************/ \
1353 /* SymbolTable, SystemDictionary */ \
1354 /*********************************/ \
1355 \
1356 declare_toplevel_type(BasicHashtable<mtInternal>) \
1357 declare_type(IntptrHashtable, BasicHashtable<mtInternal>) \
1358 declare_toplevel_type(BasicHashtable<mtSymbol>) \
1359 declare_type(RehashableSymbolHashtable, BasicHashtable<mtSymbol>) \
1360 declare_type(SymbolTable, SymbolHashtable) \
1361 declare_type(Dictionary, KlassHashtable) \
1362 declare_toplevel_type(BasicHashtableEntry<mtInternal>) \
1363 declare_type(IntptrHashtableEntry, BasicHashtableEntry<mtInternal>) \
1364 declare_type(DictionaryEntry, KlassHashtableEntry) \
1365 declare_toplevel_type(HashtableBucket<mtInternal>) \
1366 declare_toplevel_type(SystemDictionary) \
1367 declare_toplevel_type(vmSymbols) \
1368 \
1369 declare_toplevel_type(GenericGrowableArray) \
1370 declare_toplevel_type(GrowableArray<int>) \
1371 declare_toplevel_type(Arena) \
1372 declare_type(ResourceArea, Arena) \
1373 \
1374 declare_toplevel_type(SymbolCompactHashTable) \
1375 \
1376 /***********************************************************/ \
1377 /* Thread hierarchy (needed for run-time type information) */ \
1378 /***********************************************************/ \
1379 \
1380 declare_toplevel_type(Threads) \
|