org.mmtk.utility.deque
Class Deque

java.lang.Object
  extended by org.mmtk.utility.deque.Deque
All Implemented Interfaces:
Constants
Direct Known Subclasses:
LocalSSB, SharedDeque

 class Deque
extends Object
implements Constants

Class that defines a doubly-linked double-ended queue (deque). The double-linking increases the space demands slightly, but makes it far more efficient to dequeue buffers and, for example, enables sorting of its contents.


Field Summary
protected static Word BUFFER_MASK
           
protected static int BUFFER_SIZE
           
protected static Address HEAD_INITIAL_VALUE
           
private static int LOG_BUFFER_SIZE
           
protected static int LOG_PAGES_PER_BUFFER
           
protected static int META_DATA_SIZE
           
protected static int NEXT_FIELD_OFFSET
           
protected static int PAGES_PER_BUFFER
           
protected static Address TAIL_INITIAL_VALUE
           
protected static int USABLE_BUFFER_BYTES
           
 
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
Deque()
           
 
Method Summary
protected  Address bufferEnd(Address buf)
           
protected  Address bufferFirst(Address buf)
           
protected  Address bufferLast(Address buf)
           
protected  Address bufferLast(Address buf, int arity)
           
protected  Offset bufferLastOffset(int arity)
           
protected  Offset bufferOffset(Address buf)
           
protected  Address bufferStart(Address buf)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LOG_PAGES_PER_BUFFER

protected static final int LOG_PAGES_PER_BUFFER
See Also:
Constant Field Values

PAGES_PER_BUFFER

protected static final int PAGES_PER_BUFFER
See Also:
Constant Field Values

LOG_BUFFER_SIZE

private static final int LOG_BUFFER_SIZE

BUFFER_SIZE

protected static final int BUFFER_SIZE

BUFFER_MASK

protected static final Word BUFFER_MASK

NEXT_FIELD_OFFSET

protected static final int NEXT_FIELD_OFFSET

META_DATA_SIZE

protected static final int META_DATA_SIZE

USABLE_BUFFER_BYTES

protected static final int USABLE_BUFFER_BYTES

TAIL_INITIAL_VALUE

protected static final Address TAIL_INITIAL_VALUE

HEAD_INITIAL_VALUE

protected static final Address HEAD_INITIAL_VALUE
Constructor Detail

Deque

Deque()
Method Detail

bufferOffset

protected final Offset bufferOffset(Address buf)

bufferStart

protected final Address bufferStart(Address buf)

bufferEnd

protected final Address bufferEnd(Address buf)

bufferFirst

protected final Address bufferFirst(Address buf)

bufferLast

protected final Address bufferLast(Address buf,
                                   int arity)

bufferLast

protected final Address bufferLast(Address buf)

bufferLastOffset

protected final Offset bufferLastOffset(int arity)