summaryrefslogtreecommitdiff
path: root/base/callback.hh
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2004-10-16 19:10:51 -0500
committerAli Saidi <saidi@eecs.umich.edu>2004-10-16 19:10:51 -0500
commit3ef950abba818e0f6b0fa4c8acc39cfb6ae11a28 (patch)
tree64e0cdd17a254b68adc26eda13df2af9b28e8f18 /base/callback.hh
parenteaf66f46588cdfd8a91b93821406e1d797c6d1fb (diff)
downloadgem5-3ef950abba818e0f6b0fa4c8acc39cfb6ae11a28.tar.xz
Fixes for bigendian platforms
arch/alpha/vtophys.cc: PGOFSET -> ALPHA_PGOFSET to avoid include file problems base/callback.hh: Added a class to create a callback from a function base/intmath.hh: make FloorLog2 inlined dev/pcidev.cc: more work in getting pciconfig space happy with different endiannesses dev/uart.cc: used an incorrect size for write uint64_t instead of uint8_t sim/system.cc: when writing things into system data structures we need to pay attention to endianness --HG-- extra : convert_revision : 52f441b5789c45db30ef2f6fd4975cbc7323a381
Diffstat (limited to 'base/callback.hh')
-rw-r--r--base/callback.hh13
1 files changed, 13 insertions, 0 deletions
diff --git a/base/callback.hh b/base/callback.hh
index eee629cf5..342ab7e0f 100644
--- a/base/callback.hh
+++ b/base/callback.hh
@@ -103,4 +103,17 @@ class CallbackQueue
}
};
+template <class T, void (T::* F)()>
+class MakeCallback : public Callback
+{
+ private:
+ T *object;
+
+ public:
+ MakeCallback(T *o)
+ : object(o)
+ { }
+ void process() { (object->*F)(); }
+};
+
#endif // __CALLBACK_HH__