summaryrefslogtreecommitdiff
path: root/kern/linux/aligned.hh
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2004-08-18 23:06:51 -0400
committerAli Saidi <saidi@eecs.umich.edu>2004-08-18 23:06:51 -0400
commit9d4ee7acaa930811bbb8e28894a96fd371702ef4 (patch)
tree15b67b1fbd88afb34dbf4860adc340408b3da149 /kern/linux/aligned.hh
parent239183cfe675684aeca1a2b24362ca5e0a82809d (diff)
downloadgem5-9d4ee7acaa930811bbb8e28894a96fd371702ef4.tar.xz
Added code using VPtr to be able to extract info from linux thread
structures. Added event to print out currently running task base/traceflags.py: Added Thread trace flag kern/linux/linux_system.cc: kern/linux/linux_system.hh: Added event to print out currently running task --HG-- extra : convert_revision : 94347dbaf90f39eb40467b2a43b4628a3deafc6c
Diffstat (limited to 'kern/linux/aligned.hh')
-rw-r--r--kern/linux/aligned.hh21
1 files changed, 21 insertions, 0 deletions
diff --git a/kern/linux/aligned.hh b/kern/linux/aligned.hh
new file mode 100644
index 000000000..55035c6e4
--- /dev/null
+++ b/kern/linux/aligned.hh
@@ -0,0 +1,21 @@
+#ifndef __ALIGNED_HH__
+#define __ALIGNED_HH__
+
+#include <stdint.h>
+#include "targetarch/isa_traits.hh"
+
+/* GCC 3.3.X has a bug in which attributes+typedefs don't work. 3.2.X is fine
+ * as in 3.4.X, but the bug is marked will not fix in 3.3.X so here is
+ * the work around.
+ */
+#if __GNUC__ == 3 && __GNUC_MINOR__ != 3
+typedef uint64_t uint64_ta __attribute__ ((aligned (8))) ;
+typedef int64_t int64_ta __attribute__ ((aligned (8))) ;
+typedef Addr Addr_a __attribute__ ((aligned (8))) ;
+#else
+#define uint64_ta uint64_t __attribute__ ((aligned (8)))
+#define int64_ta int64_t __attribute__ ((aligned (8)))
+#define Addr_a Addr __attribute__ ((aligned (8)))
+#endif /* __GNUC__ __GNUC_MINOR__ */
+
+#endif /* __ALIGNED_H__ */