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