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);