/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Common Public License (CPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/cpl1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
package org.mmtk.vm;
import org.jnode.annotation.Inline;
import org.vmmagic.unboxed.Address;
import org.vmmagic.unboxed.ObjectReference;
import org.vmmagic.unboxed.Offset;
import org.vmmagic.unboxed.Word;
/**
* Class that supports scanning Objects or Arrays for references during tracing,
* handling those references, and computing death times
*
* @author <a href="http://www-ali.cs.umass.edu/~hertz">Matthew Hertz</a>
* @version $Revision$
*/
public final class TraceInterface {
/***************************************************************************
*
* Public Methods
*/
/**
* Returns if the VM is ready for a garbage collection.
*
* @return True if the RVM is ready for GC, false otherwise.
*/
public static final boolean gcEnabled() {
return false;
}
/**
* This adjusts the offset into an object to reflect what it would look like
* if the fields were laid out in memory space immediately after the object
* pointer.
*
* @param isScalar
* If this is a pointer store to a scalar object
* @param src
* The address of the source object
* @param slot
* The address within <code>src</code> into which the update
* will be stored
* @return The easy to understand offset of the slot
*/
public static final Offset adjustSlotOffset(boolean isScalar,
ObjectReference src, Address slot) {
return null;
}
/**
* This skips over the frames added by the tracing algorithm, outputs
* information identifying the method the containts the "new" call
* triggering the allocation, and returns the address of the first
* non-trace, non-alloc stack frame.
*
* @param typeRef
* The type reference (tib) of the object just allocated
* @return The frame pointer address for the method that allocated the
* object
*/
public static final Address skipOwnFramesAndDump(ObjectReference typeRef) {
return null;
}
/***************************************************************************
*
* Wrapper methods
*/
@Inline
public static void updateDeathTime(Object obj) {
}
public static void setDeathTime(ObjectReference ref, Word time_) {
}
public static void setLink(ObjectReference ref, ObjectReference link) {
}
@Inline
public static void updateTime(Word time_) {
}
@Inline
public static Word getOID(ObjectReference ref) {
return null;
}
@Inline
public static Word getDeathTime(ObjectReference ref) {
return null;
}
public static ObjectReference getLink(ObjectReference ref) {
return null;
}
@Inline
public static Address getBootImageLink() {
return null;
}
@Inline
public static Word getOID() {
return null;
}
@Inline
public static void setOID(Word oid) {
}
@Inline
public static final int getHeaderSize() {
return 0;
}
@Inline
public static final int getHeaderEndOffset() {
return 0;
}
}