org.mmtk.utility.heap
Class VMRequest

java.lang.Object
  extended by org.mmtk.utility.heap.VMRequest
All Implemented Interfaces:
Constants

public final class VMRequest
extends Object
implements Constants

This class manages the encoding and decoding of virtual memory requests.

By encapsulating this aspect of the construction of a space, we greatly reduce the number of constructors required.


Field Summary
 Extent extent
           
 float frac
           
static int REQUEST_DISCONTIGUOUS
           
static int REQUEST_EXTENT
           
static int REQUEST_FIXED
           
static int REQUEST_FRACTION
           
 Address start
           
 boolean top
           
 int type
           
 
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
private VMRequest(int type, Address start, Extent bytes, float frac, boolean top)
           
 
Method Summary
static VMRequest create()
          A request for a discontiguous region of memory
static VMRequest create(Address start, Extent extent)
          A request for an explicit region of memory
static VMRequest create(Extent extent, boolean top)
          A request for a number of bytes of memory, optionally requesting the highest available.
static VMRequest create(float frac)
          A request for a fraction of available memory
static VMRequest create(float frac, boolean top)
          A request for a fraction of available memory, optionally requesting the highest available.
static VMRequest create(int mb)
          A request for a number of megabytes of memory
static VMRequest create(int mb, boolean top)
          A request for a number of megabytes of memory, optionally requesting the highest available.
 boolean isDiscontiguous()
          Is this a discontiguous space request?
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REQUEST_DISCONTIGUOUS

public static final int REQUEST_DISCONTIGUOUS
See Also:
Constant Field Values

REQUEST_FIXED

public static final int REQUEST_FIXED
See Also:
Constant Field Values

REQUEST_EXTENT

public static final int REQUEST_EXTENT
See Also:
Constant Field Values

REQUEST_FRACTION

public static final int REQUEST_FRACTION
See Also:
Constant Field Values

type

public final int type

start

public final Address start

extent

public final Extent extent

frac

public final float frac

top

public final boolean top
Constructor Detail

VMRequest

private VMRequest(int type,
                  Address start,
                  Extent bytes,
                  float frac,
                  boolean top)
Method Detail

isDiscontiguous

public boolean isDiscontiguous()
Is this a discontiguous space request?

Returns:
true if this is a discontiguous space request, false otherwise

create

public static VMRequest create()
A request for a discontiguous region of memory

Returns:
The request object

create

public static VMRequest create(Address start,
                               Extent extent)
A request for an explicit region of memory

Parameters:
start - The start of the region
extent - The size of the region
Returns:
The request object

create

public static VMRequest create(int mb)
A request for a number of megabytes of memory

Parameters:
mb - The number of megabytes
Returns:
The request object

create

public static VMRequest create(float frac)
A request for a fraction of available memory

Parameters:
frac - The fraction
Returns:
The request object

create

public static VMRequest create(int mb,
                               boolean top)
A request for a number of megabytes of memory, optionally requesting the highest available.

Parameters:
mb - The number of megabytes
top - True to request high memory
Returns:
The request object

create

public static VMRequest create(float frac,
                               boolean top)
A request for a fraction of available memory, optionally requesting the highest available.

Parameters:
frac - The fraction
top - True to request high memory
Returns:
The request object

create

public static VMRequest create(Extent extent,
                               boolean top)
A request for a number of bytes of memory, optionally requesting the highest available.

Parameters:
extent - The number of bytes
top - True to request high memory
Returns:
The request object