process.cc revision 2454
112642Sgiacomo.travaglini@arm.com/* 212642Sgiacomo.travaglini@arm.com * Copyright (c) 2003-2004 The Regents of The University of Michigan 312642Sgiacomo.travaglini@arm.com * All rights reserved. 412642Sgiacomo.travaglini@arm.com * 512642Sgiacomo.travaglini@arm.com * Redistribution and use in source and binary forms, with or without 612642Sgiacomo.travaglini@arm.com * modification, are permitted provided that the following conditions are 712642Sgiacomo.travaglini@arm.com * met: redistributions of source code must retain the above copyright 812642Sgiacomo.travaglini@arm.com * notice, this list of conditions and the following disclaimer; 912642Sgiacomo.travaglini@arm.com * redistributions in binary form must reproduce the above copyright 1012642Sgiacomo.travaglini@arm.com * notice, this list of conditions and the following disclaimer in the 1112642Sgiacomo.travaglini@arm.com * documentation and/or other materials provided with the distribution; 1212642Sgiacomo.travaglini@arm.com * neither the name of the copyright holders nor the names of its 1312642Sgiacomo.travaglini@arm.com * contributors may be used to endorse or promote products derived from 1412642Sgiacomo.travaglini@arm.com * this software without specific prior written permission. 1512642Sgiacomo.travaglini@arm.com * 1612642Sgiacomo.travaglini@arm.com * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1712642Sgiacomo.travaglini@arm.com * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1812642Sgiacomo.travaglini@arm.com * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1912642Sgiacomo.travaglini@arm.com * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 2012642Sgiacomo.travaglini@arm.com * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 2112642Sgiacomo.travaglini@arm.com * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 2212642Sgiacomo.travaglini@arm.com * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2312642Sgiacomo.travaglini@arm.com * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2412642Sgiacomo.travaglini@arm.com * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2512642Sgiacomo.travaglini@arm.com * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 2612642Sgiacomo.travaglini@arm.com * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2712642Sgiacomo.travaglini@arm.com */ 2812642Sgiacomo.travaglini@arm.com 2912642Sgiacomo.travaglini@arm.com#include "arch/mips/process.hh" 3012642Sgiacomo.travaglini@arm.com#include "arch/mips/linux/process.hh" 3112642Sgiacomo.travaglini@arm.com#include "base/loader/object_file.hh" 3212642Sgiacomo.travaglini@arm.com#include "base/misc.hh" 3312642Sgiacomo.travaglini@arm.com 3412642Sgiacomo.travaglini@arm.comusing namespace std; 3512642Sgiacomo.travaglini@arm.com 3612642Sgiacomo.travaglini@arm.comnamespace MipsISA 3712642Sgiacomo.travaglini@arm.com{ 3812642Sgiacomo.travaglini@arm.com 3912642Sgiacomo.travaglini@arm.comLiveProcess * 4012642Sgiacomo.travaglini@arm.comcreateProcess(const string &nm, ObjectFile * objFile, System * system, 4112642Sgiacomo.travaglini@arm.com int stdin_fd, int stdout_fd, int stderr_fd, 4212642Sgiacomo.travaglini@arm.com vector<string> &argv, vector<string> &envp) 4312642Sgiacomo.travaglini@arm.com{ 4412642Sgiacomo.travaglini@arm.com LiveProcess * process = NULL; 4512642Sgiacomo.travaglini@arm.com if (objFile->getArch() != ObjectFile::MIPS) 4612642Sgiacomo.travaglini@arm.com fatal("Object file does not match architecture."); 4712642Sgiacomo.travaglini@arm.com switch (objFile->getOpSys()) { 4812642Sgiacomo.travaglini@arm.com case ObjectFile::Linux: 4912642Sgiacomo.travaglini@arm.com process = new MipsLinuxProcess(nm, objFile,system, 5012642Sgiacomo.travaglini@arm.com stdin_fd, stdout_fd, stderr_fd, 5112642Sgiacomo.travaglini@arm.com argv, envp); 5212642Sgiacomo.travaglini@arm.com break; 5312642Sgiacomo.travaglini@arm.com 5412642Sgiacomo.travaglini@arm.com default: 5512642Sgiacomo.travaglini@arm.com fatal("Unknown/unsupported operating system."); 5612642Sgiacomo.travaglini@arm.com } 5712642Sgiacomo.travaglini@arm.com return process; 5812642Sgiacomo.travaglini@arm.com} 5913915Sgabeblack@google.com 6012642Sgiacomo.travaglini@arm.com} // namespace MipsISA 6112642Sgiacomo.travaglini@arm.com 6212642Sgiacomo.travaglini@arm.com