Streamline-gem5: Add support for Streamline on gem5

Signed-off-by: Christopher Daniel Emmons <chris.emmons@arm.com>
diff --git a/kernel/Makefile b/kernel/Makefile
index bc010ee..74008b5 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -12,6 +12,9 @@
 	    notifier.o ksysfs.o cred.o reboot.o \
 	    async.o range.o groups.o smpboot.o
 
+# gem5 hooks for streamline support
+obj-y += m5struct.o
+
 ifdef CONFIG_FUNCTION_TRACER
 # Do not trace debug files and internal ftrace files
 CFLAGS_REMOVE_cgroup-debug.o = -pg
diff --git a/kernel/m5struct.c b/kernel/m5struct.c
new file mode 100644
index 0000000..782842b7
--- /dev/null
+++ b/kernel/m5struct.c
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2005
+ * The Regents of The University of Michigan
+ * All Rights Reserved
+ *
+ * This code is part of the M5 simulator, developed by Nathan Binkert,
+ * Erik Hallnor, Steve Raasch, and Steve Reinhardt, with contributions
+ * from Ron Dreslinski, Dave Greene, Lisa Hsu, Kevin Lim, Ali Saidi,
+ * and Andrew Schultz.
+ *
+ * Permission is granted to use, copy, create derivative works and
+ * redistribute this software and such derivative works for any
+ * purpose, so long as the copyright notice above, this grant of
+ * permission, and the disclaimer below appear in all copies made; and
+ * so long as the name of The University of Michigan is not used in
+ * any advertising or publicity pertaining to the use or distribution
+ * of this software without specific, written prior authorization.
+ *
+ * THIS SOFTWARE IS PROVIDED AS IS, WITHOUT REPRESENTATION FROM THE
+ * UNIVERSITY OF MICHIGAN AS TO ITS FITNESS FOR ANY PURPOSE, AND
+ * WITHOUT WARRANTY BY THE UNIVERSITY OF MICHIGAN OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE. THE REGENTS OF THE UNIVERSITY OF MICHIGAN SHALL NOT BE
+ * LIABLE FOR ANY DAMAGES, INCLUDING DIRECT, SPECIAL, INDIRECT,
+ * INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WITH RESPECT TO ANY CLAIM
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OF THE SOFTWARE, EVEN
+ * IF IT HAS BEEN OR IS HEREAFTER ADVISED OF THE POSSIBILITY OF SUCH
+ * DAMAGES.
+ */
+
+#include <stddef.h>
+#include <linux/sched.h>
+
+/*
+ * Structure size information
+ */
+const int thread_info_size = sizeof(struct thread_info);
+const int thread_info_task = offsetof(struct thread_info, task);
+
+const int task_struct_size = sizeof(struct task_struct);
+const int task_struct_pid = offsetof(struct task_struct, pid);
+const int task_struct_start_time = offsetof(struct task_struct, start_time);
+const int task_struct_tgid = offsetof(struct task_struct, tgid);
+const int task_struct_comm = offsetof(struct task_struct, comm);
+const int task_struct_comm_size = TASK_COMM_LEN;
+const int task_struct_mm = offsetof(struct task_struct, mm);