baddev.cc revision 802
16899SN/A/* $Id$ */
26899SN/A
36899SN/A/* @file
46899SN/A * BadDevice implemenation
56899SN/A */
66899SN/A
76899SN/A#include <deque>
86899SN/A#include <string>
96899SN/A#include <vector>
106899SN/A
116899SN/A#include "base/trace.hh"
126899SN/A#include "cpu/exec_context.hh"
136899SN/A#include "dev/scsi_ctrl.hh"
146899SN/A#include "dev/baddev.hh"
156899SN/A#include "dev/tsunamireg.h"
166899SN/A#include "dev/tsunami.hh"
176899SN/A#include "mem/functional_mem/memory_control.hh"
186899SN/A#include "sim/builder.hh"
196899SN/A#include "sim/system.hh"
206899SN/A
216899SN/Ausing namespace std;
226899SN/A
236899SN/ABadDevice::BadDevice(const string &name,
246899SN/A                       Addr addr, Addr mask, MemoryController *mmu, const string &devicename)
256899SN/A    : MmapDevice(name, addr, mask, mmu), devname(devicename)
266899SN/A{
276899SN/A}
286899SN/A
296899SN/AFault
307053SN/ABadDevice::read(MemReqPtr &req, uint8_t *data)
317053SN/A{
326899SN/A
337055SN/A    panic("Device %s not imlpmented\n", devname);
347055SN/A    return No_Fault;
357632SBrad.Beckmann@amd.com}
368164Snilay@cs.wisc.edu
377053SN/AFault
387053SN/ABadDevice::write(MemReqPtr &req, const uint8_t *data)
396899SN/A{
407053SN/A    panic("Device %s not imlpmented\n", devname);
416899SN/A    return No_Fault;
426899SN/A}
436899SN/A
447053SN/A
456899SN/ABEGIN_DECLARE_SIM_OBJECT_PARAMS(BadDevice)
467053SN/A
477053SN/A    SimObjectParam<MemoryController *> mmu;
487053SN/A    Param<Addr> addr;
498932SBrad.Beckmann@amd.com    Param<Addr> mask;
508932SBrad.Beckmann@amd.com    Param<string> devicename;
516899SN/A
527053SN/AEND_DECLARE_SIM_OBJECT_PARAMS(BadDevice)
537053SN/A
547053SN/ABEGIN_INIT_SIM_OBJECT_PARAMS(BadDevice)
557053SN/A
566899SN/A    INIT_PARAM(mmu, "Memory Controller"),
577055SN/A    INIT_PARAM(addr, "Device Address"),
586899SN/A    INIT_PARAM(mask, "Address Mask"),
597053SN/A    INIT_PARAM(devicename, "Name of device to error on")
608184Ssomayeh@cs.wisc.edu
617053SN/AEND_INIT_SIM_OBJECT_PARAMS(BadDevice)
627053SN/A
637053SN/ACREATE_SIM_OBJECT(BadDevice)
646899SN/A{
657053SN/A    return new BadDevice(getInstanceName(), addr, mask, mmu, devicename);
667053SN/A}
676899SN/A
687053SN/AREGISTER_SIM_OBJECT("BadDevice", BadDevice)
696899SN/A