org.mmtk.policy.immix
Class Chunk

java.lang.Object
  extended by org.mmtk.policy.immix.Chunk
All Implemented Interfaces:
Constants

public class Chunk
extends Object
implements Constants


Field Summary
(package private) static int BLOCK_DEFRAG_STATE_TABLE_OFFSET
           
private static int BLOCK_MASK
           
(package private) static int BLOCK_STATE_TABLE_OFFSET
           
static int FIRST_USABLE_BLOCK_INDEX
           
private static int HIGHWATER_BYTES
           
(package private) static int HIGHWATER_OFFSET
           
(package private) static int LINE_MARK_TABLE_OFFSET
           
private static int LOG_BYTES_IN_HIGHWATER_ENTRY
           
private static int LOG_BYTES_IN_MAP_ENTRY
           
private static int MAP_BYTES
           
(package private) static int MAP_OFFSET
           
(package private) static int METADATA_BYTES_PER_CHUNK
           
(package private) static int ROUNDED_METADATA_BYTES_PER_CHUNK
           
(package private) static int ROUNDED_METADATA_PAGES_PER_CHUNK
           
 
Fields inherited from interface org.mmtk.utility.Constants
ALIGNMENT_VALUE, ARRAY_ELEMENT, BITS_IN_ADDRESS, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_INT, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_INT, BYTES_IN_KBYTE, BYTES_IN_MBYTE, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, CARD_MASK, CARD_META_PAGES_PER_REGION, INSTANCE_FIELD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_INT, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_ADDRESS_SPACE, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_INT, LOG_BYTES_IN_KBYTE, LOG_BYTES_IN_MBYTE, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD, LOG_CARD_BYTES, LOG_CARD_GRAIN, LOG_CARD_META_BYTES, LOG_CARD_META_PAGES, LOG_CARD_META_SIZE, LOG_CARD_UNITS, LOG_MIN_ALIGNMENT, MAX_ALIGNMENT, MAX_BYTES_PADDING, MAX_INT, MIN_ALIGNMENT, MIN_INT, SUPPORT_CARD_SCANNING
 
Constructor Summary
Chunk()
           
 
Method Summary
static Address align(Address ptr)
           
private static void checkMetaDataCleared(Address chunk, Address value)
           
(package private) static void clearMetaData(Address chunk)
           
(package private) static int getByteOffset(Address ptr)
           
(package private) static Address getFirstUsableBlock(Address chunk)
           
static Address getHighWater(Address chunk)
           
(package private) static int getMap(Address chunk)
           
(package private) static int getRequiredMetaDataPages()
          Return the number of pages of metadata required per chunk.
(package private) static boolean isAligned(Address ptr)
           
(package private) static void resetLineMarksAndDefragStateTable(Address chunk, short threshold)
           
private static void setHighWater(Address chunk, Address value)
           
(package private) static void setMap(Address chunk, int value)
           
(package private) static void sweep(Address chunk, Address end, ImmixSpace space, int[] markHistogram, byte markValue, boolean resetMarks)
           
(package private) static void updateHighWater(Address value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG_BYTES_IN_HIGHWATER_ENTRY

private static final int LOG_BYTES_IN_HIGHWATER_ENTRY

HIGHWATER_BYTES

private static final int HIGHWATER_BYTES

LOG_BYTES_IN_MAP_ENTRY

private static final int LOG_BYTES_IN_MAP_ENTRY
See Also:
Constant Field Values

MAP_BYTES

private static final int MAP_BYTES
See Also:
Constant Field Values

LINE_MARK_TABLE_OFFSET

static final int LINE_MARK_TABLE_OFFSET
See Also:
Constant Field Values

BLOCK_STATE_TABLE_OFFSET

static final int BLOCK_STATE_TABLE_OFFSET
See Also:
Constant Field Values

BLOCK_DEFRAG_STATE_TABLE_OFFSET

static final int BLOCK_DEFRAG_STATE_TABLE_OFFSET

HIGHWATER_OFFSET

static final int HIGHWATER_OFFSET

MAP_OFFSET

static final int MAP_OFFSET

METADATA_BYTES_PER_CHUNK

static final int METADATA_BYTES_PER_CHUNK

BLOCK_MASK

private static final int BLOCK_MASK

ROUNDED_METADATA_BYTES_PER_CHUNK

static final int ROUNDED_METADATA_BYTES_PER_CHUNK

ROUNDED_METADATA_PAGES_PER_CHUNK

static final int ROUNDED_METADATA_PAGES_PER_CHUNK

FIRST_USABLE_BLOCK_INDEX

public static final int FIRST_USABLE_BLOCK_INDEX
Constructor Detail

Chunk

public Chunk()
Method Detail

align

public static Address align(Address ptr)

isAligned

static boolean isAligned(Address ptr)

getByteOffset

static int getByteOffset(Address ptr)

getRequiredMetaDataPages

static int getRequiredMetaDataPages()
Return the number of pages of metadata required per chunk.


sweep

static void sweep(Address chunk,
                  Address end,
                  ImmixSpace space,
                  int[] markHistogram,
                  byte markValue,
                  boolean resetMarks)

clearMetaData

static void clearMetaData(Address chunk)

checkMetaDataCleared

private static void checkMetaDataCleared(Address chunk,
                                         Address value)

updateHighWater

static void updateHighWater(Address value)

setHighWater

private static void setHighWater(Address chunk,
                                 Address value)

getHighWater

public static Address getHighWater(Address chunk)

setMap

static void setMap(Address chunk,
                   int value)

getMap

static int getMap(Address chunk)

resetLineMarksAndDefragStateTable

static void resetLineMarksAndDefragStateTable(Address chunk,
                                              short threshold)

getFirstUsableBlock

static Address getFirstUsableBlock(Address chunk)