- 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
_heapRegionManager
protected 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 GCHeapRegionManager
singleton
-
Constructor Summary
Constructors Modifier Constructor Description protected
GCHeapRegionManager(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 GCHeapRegionDescriptor
auxiliaryDescriptorForAddress(AbstractPointer heapAddress)
static GCHeapRegionManager
fromHeapRegionManager(com.ibm.j9ddr.vm29.pointer.generated.MM_HeapRegionManagerPointer hrm)
Iterator<GCHeapRegionDescriptor>
getAuxiliaryRegions()
UDATA
getHeapSize()
UDATA
getRegionSize()
int
getTableRegionCount()
Iterator<GCHeapRegionDescriptor>
getTableRegions()
UDATA
getTotalHeapSize()
protected void
initializeAuxRegionDescriptors()
protected void
initializeTableRegionDescriptors()
GCHeapRegionDescriptor
physicalTableDescriptorForIndex(int regionIndex)
protected int
physicalTableDescriptorIndexForAddress(AbstractPointer heapAddress)
GCHeapRegionDescriptor
regionDescriptorForAddress(AbstractPointer heapAddress)
GCHeapRegionDescriptor
tableDescriptorForAddress(AbstractPointer heapAddress)
GCHeapRegionDescriptor
tableDescriptorForIndex(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)
-
-