base: Include some required headers in amo.hh.

amo.hh was using several non-default definitions including
std::function, uint8_t, and std::array without including any headers
at all, and instead apparently relying on those having already been
brought in by an earlier include.

This change adds those includes explicitly.

Change-Id: I92166ff581e74bd705e10fd4fa454df179ae1a97
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/24183
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
diff --git a/src/base/amo.hh b/src/base/amo.hh
index ec05981..297b88e 100644
--- a/src/base/amo.hh
+++ b/src/base/amo.hh
@@ -35,6 +35,10 @@
 #ifndef __BASE_AMO_HH__
 #define __BASE_AMO_HH__
 
+#include <array>
+#include <cstdint>
+#include <functional>
+
 struct AtomicOpFunctor
 {
     virtual void operator()(uint8_t *p) = 0;