Some changes to for linux 2.6.2
[gem5.git] / dev / baddev.cc
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
21 using namespace std;
22
23 BadDevice::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
29 Fault
30 BadDevice::read(MemReqPtr &req, uint8_t *data)
31 {
32
33 panic("Device %s not imlpmented\n", devname);
34 return No_Fault;
35 }
36
37 Fault
38 BadDevice::write(MemReqPtr &req, const uint8_t *data)
39 {
40 panic("Device %s not imlpmented\n", devname);
41 return No_Fault;
42 }
43
44
45 BEGIN_DECLARE_SIM_OBJECT_PARAMS(BadDevice)
46
47 SimObjectParam<MemoryController *> mmu;
48 Param<Addr> addr;
49 Param<Addr> mask;
50 Param<string> devicename;
51
52 END_DECLARE_SIM_OBJECT_PARAMS(BadDevice)
53
54 BEGIN_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
61 END_INIT_SIM_OBJECT_PARAMS(BadDevice)
62
63 CREATE_SIM_OBJECT(BadDevice)
64 {
65 return new BadDevice(getInstanceName(), addr, mask, mmu, devicename);
66 }
67
68 REGISTER_SIM_OBJECT("BadDevice", BadDevice)