- java.lang.Object
-
- com.ibm.j9ddr.vm29.j9.gc.GCHeapRegionManager
-
public class GCHeapRegionManager extends Object
-
-
Field Summary
Fields Modifier and Type Field Description protected int_auxRegionCount< address ordered doubly linked list for auxiliary heap regionsprotected com.ibm.j9ddr.vm29.pointer.generated.MM_HeapRegionManagerPointer_heapRegionManagerprotected VoidPointer_highTableEdge< the first (lowest address) byte of heap which is addressable by the tableprotected VoidPointer_lowTableEdge< number of heap regions on the fixed-sized table (_regionTable)protected UDATA_regionShift< the size, in bytes, of a region in the _regionTableprotected UDATA_regionSize< number of heap regions on the auxiliary listprotected GCHeapRegionDescriptor[]_regionTable< the shift value to use against pointers to determine the corresponding region indexprotected UDATA_tableDescriptorSize< the first byte AFTER the heap range which is addressable by the tableprotected int_tableRegionCount< the raw array of fixed-sized regions for representing a flat heapprotected UDATA_totalHeapSize< The size, in bytes, of the HeapRegionDescriptor subclass used by this managerprotected static GCHeapRegionManagersingleton
-
Constructor Summary
Constructors Modifier Constructor Description protectedGCHeapRegionManager(com.ibm.j9ddr.vm29.pointer.generated.MM_HeapRegionManagerPointer hrm)< The size, in bytes, of all currently active regions on the heap (that is, both table descriptors attached to subspaces and aux descriptors in the list)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description GCHeapRegionDescriptorauxiliaryDescriptorForAddress(AbstractPointer heapAddress)static GCHeapRegionManagerfromHeapRegionManager(com.ibm.j9ddr.vm29.pointer.generated.MM_HeapRegionManagerPointer hrm)Iterator<GCHeapRegionDescriptor>getAuxiliaryRegions()UDATAgetHeapSize()UDATAgetRegionSize()intgetTableRegionCount()Iterator<GCHeapRegionDescriptor>getTableRegions()UDATAgetTotalHeapSize()protected voidinitializeAuxRegionDescriptors()protected voidinitializeTableRegionDescriptors()GCHeapRegionDescriptorphysicalTableDescriptorForIndex(int regionIndex)protected intphysicalTableDescriptorIndexForAddress(AbstractPointer heapAddress)GCHeapRegionDescriptorregionDescriptorForAddress(AbstractPointer heapAddress)GCHeapRegionDescriptortableDescriptorForAddress(AbstractPointer heapAddress)GCHeapRegionDescriptortableDescriptorForIndex(int regionIndex)
-
-
-
Field Detail
-
singleton
protected static GCHeapRegionManager singleton
-
_heapRegionManager
protected com.ibm.j9ddr.vm29.pointer.generated.MM_HeapRegionManagerPointer _heapRegionManager
-
_auxRegionCount
protected int _auxRegionCount
< address ordered doubly linked list for auxiliary heap regions
-
_regionSize
protected UDATA _regionSize
< number of heap regions on the auxiliary list
-
_regionShift
protected UDATA _regionShift
< the size, in bytes, of a region in the _regionTable
-
_regionTable
protected GCHeapRegionDescriptor[] _regionTable
< the shift value to use against pointers to determine the corresponding region index
-
_tableRegionCount
protected int _tableRegionCount
< the raw array of fixed-sized regions for representing a flat heap
-
_lowTableEdge
protected VoidPointer _lowTableEdge
< number of heap regions on the fixed-sized table (_regionTable)
-
_highTableEdge
protected VoidPointer _highTableEdge
< the first (lowest address) byte of heap which is addressable by the table
-
_tableDescriptorSize
protected UDATA _tableDescriptorSize
< the first byte AFTER the heap range which is addressable by the table
-
_totalHeapSize
protected UDATA _totalHeapSize
< The size, in bytes, of the HeapRegionDescriptor subclass used by this manager
-
-
Constructor Detail
-
GCHeapRegionManager
protected GCHeapRegionManager(com.ibm.j9ddr.vm29.pointer.generated.MM_HeapRegionManagerPointer hrm) throws CorruptDataException< The size, in bytes, of all currently active regions on the heap (that is, both table descriptors attached to subspaces and aux descriptors in the list)- Throws:
CorruptDataException
-
-
Method Detail
-
fromHeapRegionManager
public static GCHeapRegionManager fromHeapRegionManager(com.ibm.j9ddr.vm29.pointer.generated.MM_HeapRegionManagerPointer hrm) throws CorruptDataException
- Throws:
CorruptDataException
-
initializeAuxRegionDescriptors
protected void initializeAuxRegionDescriptors() throws CorruptDataException- Throws:
CorruptDataException
-
initializeTableRegionDescriptors
protected void initializeTableRegionDescriptors() throws CorruptDataException- Throws:
CorruptDataException
-
getTotalHeapSize
public UDATA getTotalHeapSize()
-
getRegionSize
public UDATA getRegionSize()
-
getTableRegionCount
public int getTableRegionCount()
-
getHeapSize
public UDATA getHeapSize()
-
getAuxiliaryRegions
public Iterator<GCHeapRegionDescriptor> getAuxiliaryRegions() throws CorruptDataException
- Throws:
CorruptDataException
-
getTableRegions
public Iterator<GCHeapRegionDescriptor> getTableRegions() throws CorruptDataException
- Throws:
CorruptDataException
-
regionDescriptorForAddress
public GCHeapRegionDescriptor regionDescriptorForAddress(AbstractPointer heapAddress)
-
auxiliaryDescriptorForAddress
public GCHeapRegionDescriptor auxiliaryDescriptorForAddress(AbstractPointer heapAddress)
-
tableDescriptorForIndex
public GCHeapRegionDescriptor tableDescriptorForIndex(int regionIndex)
-
physicalTableDescriptorForIndex
public GCHeapRegionDescriptor physicalTableDescriptorForIndex(int regionIndex)
-
physicalTableDescriptorIndexForAddress
protected int physicalTableDescriptorIndexForAddress(AbstractPointer heapAddress)
-
tableDescriptorForAddress
public GCHeapRegionDescriptor tableDescriptorForAddress(AbstractPointer heapAddress)
-
-