process.hh revision 5222:bb733a878f85
16019Shines@cs.fsu.edu/*
26019Shines@cs.fsu.edu * Copyright N) 2007 MIPS Technologies, Inc.  All Rights Reserved
36019Shines@cs.fsu.edu *
46019Shines@cs.fsu.edu * This software is part of the M5 simulator.
56019Shines@cs.fsu.edu *
66019Shines@cs.fsu.edu * THIS IS A LEGAL AGREEMENT.  BY DOWNLOADING, USING, COPYING, CREATING
76019Shines@cs.fsu.edu * DERIVATIVE WORKS, AND/OR DISTRIBUTING THIS SOFTWARE YOU ARE AGREEING
86019Shines@cs.fsu.edu * TO THESE TERMS AND CONDITIONS.
96019Shines@cs.fsu.edu *
106019Shines@cs.fsu.edu * Permission is granted to use, copy, create derivative works and
116019Shines@cs.fsu.edu * distribute this software and such derivative works for any purpose,
126019Shines@cs.fsu.edu * so long as (1) the copyright notice above, this grant of permission,
136019Shines@cs.fsu.edu * and the disclaimer below appear in all copies and derivative works
146019Shines@cs.fsu.edu * made, (2) the copyright notice above is augmented as appropriate to
156019Shines@cs.fsu.edu * reflect the addition of any new copyrightable work in a derivative
166019Shines@cs.fsu.edu * work (e.g., Copyright N) <Publication Year> Copyright Owner), and (3)
176019Shines@cs.fsu.edu * the name of MIPS Technologies, Inc. ($(B!H(BMIPS$(B!I(B) is not used in any
186019Shines@cs.fsu.edu * advertising or publicity pertaining to the use or distribution of
196019Shines@cs.fsu.edu * this software without specific, written prior authorization.
206019Shines@cs.fsu.edu *
216019Shines@cs.fsu.edu * THIS SOFTWARE IS PROVIDED $(B!H(BAS IS.$(B!I(B  MIPS MAKES NO WARRANTIES AND
226019Shines@cs.fsu.edu * DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, STATUTORY, IMPLIED OR
236019Shines@cs.fsu.edu * OTHERWISE, INCLUDING BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
246019Shines@cs.fsu.edu * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND
256019Shines@cs.fsu.edu * NON-INFRINGEMENT OF THIRD PARTY RIGHTS, REGARDING THIS SOFTWARE.
266019Shines@cs.fsu.edu * IN NO EVENT SHALL MIPS BE LIABLE FOR ANY DAMAGES, INCLUDING DIRECT,
276019Shines@cs.fsu.edu * INDIRECT, INCIDENTAL, CONSEQUENTIAL, SPECIAL, OR PUNITIVE DAMAGES OF
286019Shines@cs.fsu.edu * ANY KIND OR NATURE, ARISING OUT OF OR IN CONNECTION WITH THIS AGREEMENT,
296019Shines@cs.fsu.edu * THIS SOFTWARE AND/OR THE USE OF THIS SOFTWARE, WHETHER SUCH LIABILITY
306019Shines@cs.fsu.edu * IS ASSERTED ON THE BASIS OF CONTRACT, TORT (INCLUDING NEGLIGENCE OR
316019Shines@cs.fsu.edu * STRICT LIABILITY), OR OTHERWISE, EVEN IF MIPS HAS BEEN WARNED OF THE
326019Shines@cs.fsu.edu * POSSIBILITY OF ANY SUCH LOSS OR DAMAGE IN ADVANCE.
336019Shines@cs.fsu.edu *
346251Sgblack@eecs.umich.edu * Authors: Gabe Black
356214Snate@binkert.org *          Korey Sewell
366019Shines@cs.fsu.edu *
376019Shines@cs.fsu.edu */
386019Shines@cs.fsu.edu
396019Shines@cs.fsu.edu#ifndef __MIPS_LINUX_PROCESS_HH__
406251Sgblack@eecs.umich.edu#define __MIPS_LINUX_PROCESS_HH__
416267Sgblack@eecs.umich.edu
426267Sgblack@eecs.umich.edu#include "arch/mips/process.hh"
436267Sgblack@eecs.umich.edu#include "arch/mips/linux/linux.hh"
446267Sgblack@eecs.umich.edu#include "sim/eventq.hh"
456267Sgblack@eecs.umich.edu
466251Sgblack@eecs.umich.edu/// A process with emulated Mips/Linux syscalls.
476268Sgblack@eecs.umich.educlass MipsLinuxProcess : public MipsLiveProcess
486268Sgblack@eecs.umich.edu{
496269Sgblack@eecs.umich.edu  public:
506251Sgblack@eecs.umich.edu    /// Constructor.
516251Sgblack@eecs.umich.edu    MipsLinuxProcess(LiveProcessParams * params, ObjectFile *objFile);
526251Sgblack@eecs.umich.edu
536251Sgblack@eecs.umich.edu    void startup();
546251Sgblack@eecs.umich.edu
556251Sgblack@eecs.umich.edu    virtual SyscallDesc* getDesc(int callnum);
566251Sgblack@eecs.umich.edu
576251Sgblack@eecs.umich.edu    /// The target system's hostname.
586251Sgblack@eecs.umich.edu    static const char *hostname;
596251Sgblack@eecs.umich.edu
606251Sgblack@eecs.umich.edu    /// ID of the thread group leader for the process
616251Sgblack@eecs.umich.edu    uint64_t __tgid;
626251Sgblack@eecs.umich.edu
636251Sgblack@eecs.umich.edu    /// Array of syscall descriptors, indexed by call number.
646251Sgblack@eecs.umich.edu    static SyscallDesc syscallDescs[];
656268Sgblack@eecs.umich.edu    const int Num_Syscall_Descs;
666251Sgblack@eecs.umich.edu};
676251Sgblack@eecs.umich.edu
686251Sgblack@eecs.umich.edu#endif // __MIPS_LINUX_PROCESS_HH__
696251Sgblack@eecs.umich.edu