Merge gblack@m5.eecs.umich.edu:/bk/multiarch
into ewok.(none):/home/gblack/m5/multiarch --HG-- extra : convert_revision : d8626acb2686e123ad0bb6cf94e85c992657470d
This commit is contained in:
36
sim/faults.cc
Normal file
36
sim/faults.cc
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright (c) 2003-2005 The Regents of The University of Michigan
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met: redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer;
|
||||
* redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution;
|
||||
* neither the name of the copyright holders nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "sim/faults.hh"
|
||||
|
||||
NoFaultType * NoFault = new NoFaultType("none");
|
||||
MachineCheckFaultType * MachineCheckFault = new MachineCheckFaultType("mchk");
|
||||
AlignmentFaultType * AlignmentFault = new AlignmentFaultType("unalign");
|
||||
//This needs to not exist
|
||||
FakeMemFaultType * FakeMemFault = new FakeMemFaultType("fakemem");
|
||||
|
||||
65
sim/faults.hh
Normal file
65
sim/faults.hh
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* Copyright (c) 2003-2005 The Regents of The University of Michigan
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are
|
||||
* met: redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer;
|
||||
* redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution;
|
||||
* neither the name of the copyright holders nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef __FAULTS_HH__
|
||||
#define __FAULTS_HH__
|
||||
|
||||
class Fault
|
||||
{
|
||||
public:
|
||||
Fault(char * newName, int newId = 0) : name(newName), id(newId) {;}
|
||||
const char * name;
|
||||
int id;
|
||||
};
|
||||
|
||||
extern class NoFaultType : public Fault
|
||||
{
|
||||
public:
|
||||
NoFaultType(char * newName) : Fault(newName) {;}
|
||||
} * NoFault;
|
||||
|
||||
extern class MachineCheckFaultType : public Fault
|
||||
{
|
||||
public:
|
||||
MachineCheckFaultType(char * newName) : Fault(newName) {;}
|
||||
} * MachineCheckFault;
|
||||
|
||||
extern class AlignmentFaultType : public Fault
|
||||
{
|
||||
public:
|
||||
AlignmentFaultType(char * newName) : Fault(newName) {;}
|
||||
} * AlignmentFault;
|
||||
|
||||
extern class FakeMemFaultType : public Fault
|
||||
{
|
||||
public:
|
||||
FakeMemFaultType(char * newName) : Fault(newName) {;}
|
||||
} * FakeMemFault;
|
||||
|
||||
|
||||
#endif // __FAULTS_HH__
|
||||
@@ -191,7 +191,7 @@ unlinkFunc(SyscallDesc *desc, int num, Process *p, ExecContext *xc)
|
||||
{
|
||||
string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return (TheISA::IntReg)-EFAULT;
|
||||
|
||||
int result = unlink(path.c_str());
|
||||
@@ -203,12 +203,12 @@ renameFunc(SyscallDesc *desc, int num, Process *p, ExecContext *xc)
|
||||
{
|
||||
string old_name;
|
||||
|
||||
if (xc->mem->readString(old_name, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(old_name, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
string new_name;
|
||||
|
||||
if (xc->mem->readString(new_name, xc->getSyscallArg(1)) != No_Fault)
|
||||
if (xc->mem->readString(new_name, xc->getSyscallArg(1)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
int64_t result = rename(old_name.c_str(), new_name.c_str());
|
||||
@@ -220,7 +220,7 @@ truncateFunc(SyscallDesc *desc, int num, Process *p, ExecContext *xc)
|
||||
{
|
||||
string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
off_t length = xc->getSyscallArg(1);
|
||||
@@ -248,7 +248,7 @@ chownFunc(SyscallDesc *desc, int num, Process *p, ExecContext *xc)
|
||||
{
|
||||
string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
/* XXX endianess */
|
||||
|
||||
@@ -317,7 +317,7 @@ openFunc(SyscallDesc *desc, int callnum, Process *process,
|
||||
{
|
||||
std::string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
if (path == "/dev/sysdev0") {
|
||||
@@ -364,7 +364,7 @@ chmodFunc(SyscallDesc *desc, int callnum, Process *process,
|
||||
{
|
||||
std::string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
uint32_t mode = xc->getSyscallArg(1);
|
||||
@@ -417,7 +417,7 @@ statFunc(SyscallDesc *desc, int callnum, Process *process,
|
||||
{
|
||||
std::string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
struct stat hostBuf;
|
||||
@@ -469,7 +469,7 @@ lstatFunc(SyscallDesc *desc, int callnum, Process *process,
|
||||
{
|
||||
std::string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
struct stat hostBuf;
|
||||
@@ -491,7 +491,7 @@ lstat64Func(SyscallDesc *desc, int callnum, Process *process,
|
||||
{
|
||||
std::string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
#if BSD_HOST
|
||||
@@ -542,7 +542,7 @@ statfsFunc(SyscallDesc *desc, int callnum, Process *process,
|
||||
{
|
||||
std::string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
struct statfs hostBuf;
|
||||
@@ -716,7 +716,7 @@ utimesFunc(SyscallDesc *desc, int callnum, Process *process,
|
||||
{
|
||||
std::string path;
|
||||
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != No_Fault)
|
||||
if (xc->mem->readString(path, xc->getSyscallArg(0)) != NoFault)
|
||||
return -EFAULT;
|
||||
|
||||
TypedBufferArg<typename OS::timeval [2]> tp(xc->getSyscallArg(1));
|
||||
|
||||
Reference in New Issue
Block a user