baddev.cc revision 802
1/* $Id$ */
2
3/* @file
4 * BadDevice implemenation
5 */
6
7#include <deque>
8#include <string>
9#include <vector>
10
11#include "base/trace.hh"
12#include "cpu/exec_context.hh"
13#include "dev/scsi_ctrl.hh"
14#include "dev/baddev.hh"
15#include "dev/tsunamireg.h"
16#include "dev/tsunami.hh"
17#include "mem/functional_mem/memory_control.hh"
18#include "sim/builder.hh"
19#include "sim/system.hh"
20
21using namespace std;
22
23BadDevice::BadDevice(const string &name,
24                       Addr addr, Addr mask, MemoryController *mmu, const string &devicename)
25    : MmapDevice(name, addr, mask, mmu), devname(devicename)
26{
27}
28
29Fault
30BadDevice::read(MemReqPtr &req, uint8_t *data)
31{
32
33    panic("Device %s not imlpmented\n", devname);
34    return No_Fault;
35}
36
37Fault
38BadDevice::write(MemReqPtr &req, const uint8_t *data)
39{
40    panic("Device %s not imlpmented\n", devname);
41    return No_Fault;
42}
43
44
45BEGIN_DECLARE_SIM_OBJECT_PARAMS(BadDevice)
46
47    SimObjectParam<MemoryController *> mmu;
48    Param<Addr> addr;
49    Param<Addr> mask;
50    Param<string> devicename;
51
52END_DECLARE_SIM_OBJECT_PARAMS(BadDevice)
53
54BEGIN_INIT_SIM_OBJECT_PARAMS(BadDevice)
55
56    INIT_PARAM(mmu, "Memory Controller"),
57    INIT_PARAM(addr, "Device Address"),
58    INIT_PARAM(mask, "Address Mask"),
59    INIT_PARAM(devicename, "Name of device to error on")
60
61END_INIT_SIM_OBJECT_PARAMS(BadDevice)
62
63CREATE_SIM_OBJECT(BadDevice)
64{
65    return new BadDevice(getInstanceName(), addr, mask, mmu, devicename);
66}
67
68REGISTER_SIM_OBJECT("BadDevice", BadDevice)
69