diff --git a/MMTk/src/org/mmtk/plan/ThirdParty.java b/MMTk/src/org/mmtk/plan/ThirdParty.java new file mode 100644 index 0000000000..88c8a1c47d --- /dev/null +++ b/MMTk/src/org/mmtk/plan/ThirdParty.java @@ -0,0 +1,39 @@ +/* + * This file is part of the Jikes RVM project (http://jikesrvm.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * 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/eclipse-1.0.php + * + * See the COPYRIGHT.txt file distributed with this work for information + * regarding copyright ownership. + */ +package org.mmtk.plan; + +import org.mmtk.policy.Space; +import org.mmtk.utility.Log; +import org.mmtk.utility.alloc.Allocator; +import org.mmtk.utility.options.*; +import org.mmtk.utility.statistics.Timer; +import org.mmtk.vm.VM; + +import org.vmmagic.pragma.*; + +/** + * This abstract class implements the core functionality for + * simple collectors.
+ * + * This class defines the collection phases, and provides base + * level implementations of them. Subclasses should provide + * implementations for the spaces that they introduce, and + * delegate up the class hierarchy.
+ * + * For details of the split between global and thread-local operations + * @see org.mmtk.plan.Plan + */ +@Uninterruptible +public class ThirdParty extends Simple { + +} \ No newline at end of file diff --git a/MMTk/src/org/mmtk/plan/ThirdPartyCollector.java b/MMTk/src/org/mmtk/plan/ThirdPartyCollector.java new file mode 100644 index 0000000000..7a77b3989f --- /dev/null +++ b/MMTk/src/org/mmtk/plan/ThirdPartyCollector.java @@ -0,0 +1,36 @@ +/* + * This file is part of the Jikes RVM project (http://jikesrvm.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * 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/eclipse-1.0.php + * + * See the COPYRIGHT.txt file distributed with this work for information + * regarding copyright ownership. + */ +package org.mmtk.plan; + +import org.mmtk.utility.Log; +import org.mmtk.utility.options.Options; +import org.mmtk.utility.sanitychecker.SanityCheckerLocal; + +import org.mmtk.vm.VM; + +import org.vmmagic.pragma.*; + +/** + * This class (and its sub-classes) implement per-collector thread + * behavior and state.
+ * + * MMTk assumes that the VM instantiates instances of CollectorContext + * in thread local storage (TLS) for each thread participating in + * collection. Accesses to this state are therefore assumed to be + * low-cost during mutator time. + * + * @see CollectorContext + */ +@Uninterruptible +public class ThirdPartyCollector extends SimpleCollector { +} \ No newline at end of file diff --git a/MMTk/src/org/mmtk/plan/ThirdPartyConstraints.java b/MMTk/src/org/mmtk/plan/ThirdPartyConstraints.java new file mode 100644 index 0000000000..7a27717d83 --- /dev/null +++ b/MMTk/src/org/mmtk/plan/ThirdPartyConstraints.java @@ -0,0 +1,38 @@ +/* + * This file is part of the Jikes RVM project (http://jikesrvm.org). + * + * This file is licensed to You under the Eclipse Public License (EPL); + * 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/eclipse-1.0.php + * + * See the COPYRIGHT.txt file distributed with this work for information + * regarding copyright ownership. + */ +package org.mmtk.plan; + +import org.vmmagic.pragma.*; + +/** + * Constraints specific to simple collectors. + */ +@Uninterruptible +public class ThirdPartyConstraints extends SimpleConstraints { + // A third party GC may not move objects. But unless we have a way for a TPH + // to configure this, we need this to be true to be correct. + @Override + public boolean movesObjects() { + return true; + } + // The number doesnt matter. + @Override + public int gcHeaderBits() { + return 0; + } + // The number doesnt matter. + @Override + public int gcHeaderWords() { + return 0; + } +}