X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Farch%2Fmips%2Fprocess.hh;h=a607bd285732c9f1c07fee0751ae045b24f08042;hb=697e55995626f24658ce443287cd1ba90c2f68eb;hp=dae8911253ed1e1801b630360de10fc48e9561ad;hpb=f8df550db826c9fe29cc184fce873db6789e42ee;p=gem5.git diff --git a/src/arch/mips/process.hh b/src/arch/mips/process.hh index dae891125..a607bd285 100644 --- a/src/arch/mips/process.hh +++ b/src/arch/mips/process.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003-2004 The Regents of The University of Michigan + * Copyright (c) 2006 The Regents of The University of Michigan * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -27,7 +27,6 @@ * * Authors: Gabe Black * Ali Saidi - * Korey Sewell */ #ifndef __MIPS_PROCESS_HH__ @@ -35,34 +34,28 @@ #include #include + +#include "mem/page_table.hh" #include "sim/process.hh" -class LiveProcess; class ObjectFile; -class System; -class MipsLiveProcess : public LiveProcess +class MipsProcess : public Process { protected: - MipsLiveProcess(const std::string &nm, ObjectFile *objFile, - System *_system, int stdin_fd, int stdout_fd, int stderr_fd, - std::vector &argv, - std::vector &envp); + MipsProcess(ProcessParams * params, ObjectFile *objFile); - void startup(); + void initState(); - public: - // this function is used to create the LiveProcess object, since - // we can't tell which subclass of LiveProcess to use until we - // open and look at the object file. - static MipsLiveProcess *create(const std::string &nm, - System *_system, - int stdin_fd, int stdout_fd, int stderr_fd, - std::string executable, - std::vector &argv, - std::vector &envp); + template + void argsInit(int pageSize); + public: + RegVal getSyscallArg(ThreadContext *tc, int &i); + /// Explicitly import the otherwise hidden getSyscallArg + using Process::getSyscallArg; + void setSyscallArg(ThreadContext *tc, int i, RegVal val); + void setSyscallReturn(ThreadContext *tc, SyscallReturn return_value); }; - #endif // __MIPS_PROCESS_HH__