diff --git a/src/base/amo.hh b/src/base/amo.hh
new file mode 100644
index 0000000..504190e
--- /dev/null
+++ b/src/base/amo.hh
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2003-2005 The Regents of The University of Michigan
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met: redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ * redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution;
+ * neither the name of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Authors: Nathan Binkert
+ */
+
+#ifndef __BASE_AMO_HH__
+#define __BASE_AMO_HH__
+
+struct AtomicOpFunctor
+{
+    virtual void operator()(uint8_t *p) = 0;
+    virtual AtomicOpFunctor* clone() = 0;
+    virtual ~AtomicOpFunctor() {}
+};
+
+template <class T>
+struct TypedAtomicOpFunctor : public AtomicOpFunctor
+{
+    void operator()(uint8_t *p) { execute((T *)p); }
+    virtual AtomicOpFunctor* clone() = 0;
+    virtual void execute(T * p) = 0;
+};
+
+typedef std::unique_ptr<AtomicOpFunctor> AtomicOpFunctorPtr;
+
+#endif // __BASE_AMO_HH__
diff --git a/src/base/types.hh b/src/base/types.hh
index 4533094..f936753 100644
--- a/src/base/types.hh
+++ b/src/base/types.hh
@@ -244,23 +244,6 @@
 // we just create an alias.
 constexpr decltype(nullptr) NoFault = nullptr;
 
-struct AtomicOpFunctor
-{
-    virtual void operator()(uint8_t *p) = 0;
-    virtual AtomicOpFunctor* clone() = 0;
-    virtual ~AtomicOpFunctor() {}
-};
-
-template <class T>
-struct TypedAtomicOpFunctor : public AtomicOpFunctor
-{
-    void operator()(uint8_t *p) { execute((T *)p); }
-    virtual AtomicOpFunctor* clone() = 0;
-    virtual void execute(T * p) = 0;
-};
-
-typedef std::unique_ptr<AtomicOpFunctor> AtomicOpFunctorPtr;
-
 enum ByteOrder {
     BigEndianByteOrder,
     LittleEndianByteOrder
diff --git a/src/mem/request.hh b/src/mem/request.hh
index b3268e0..891ce14 100644
--- a/src/mem/request.hh
+++ b/src/mem/request.hh
@@ -55,6 +55,7 @@
 #include <cassert>
 #include <climits>
 
+#include "base/amo.hh"
 #include "base/flags.hh"
 #include "base/logging.hh"
 #include "base/types.hh"
