001 /*
002 * This file is part of the Jikes RVM project (http://jikesrvm.org).
003 *
004 * This file is licensed to You under the Eclipse Public License (EPL);
005 * You may not use this file except in compliance with the License. You
006 * may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/eclipse-1.0.php
009 *
010 * See the COPYRIGHT.txt file distributed with this work for information
011 * regarding copyright ownership.
012 */
013 package org.jikesrvm.mm.mminterface;
014
015 import org.jikesrvm.scheduler.RVMThread;
016
017 import org.mmtk.utility.Log;
018
019 import org.vmmagic.pragma.*;
020
021 public class Selected {
022 public static final String name = "org.mmtk.plan.generational.immix.GenImmix";
023 @Uninterruptible
024 public static final class Plan extends org.mmtk.plan.generational.immix.GenImmix
025 {
026 private static final Plan plan = new Plan();
027
028 @Inline
029 public static Plan get() { return plan; }
030 }
031
032 @Uninterruptible
033 public static final class Constraints extends org.mmtk.plan.generational.immix.GenImmixConstraints
034 {
035 private static final Constraints constraints = new Constraints();
036
037 @Inline
038 public static Constraints get() { return constraints; }
039 }
040
041 @Uninterruptible
042 public static class Collector extends org.mmtk.plan.generational.immix.GenImmixCollector
043 {
044 private final RVMThread thread;
045 public Collector(RVMThread parent) { thread = parent; }
046 @Inline
047 public final RVMThread getThread() { return thread; }
048 @Inline
049 public static Collector get() { return RVMThread.getCurrentThread().collectorContext; }
050 }
051
052 @Uninterruptible
053 public static class Mutator extends org.mmtk.plan.generational.immix.GenImmixMutator
054 {
055 @Inline
056 public final RVMThread getThread() { return (RVMThread) this; }
057 @Inline
058 public static Mutator get() { return RVMThread.getCurrentThread(); }
059 }
060 }