|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2017 [email protected]
4: //
5:
6: #pragma once
7:
8: #include "device.h"
9:
10: class SRAMDevice
11: : public IODevice
12: {
13: typedef IODevice inherited;
14: private:
15: static const uint32 baseaddr = 0xed0000;
16:
17: public:
18: SRAMDevice();
19: virtual ~SRAMDevice();
20:
21: virtual bool Init();
22:
23: virtual uint64 Read8(uint32 addr);
24: virtual uint64 Read16(uint32 addr);
25: virtual uint64 Write8(uint32 addr, uint32 data);
26: virtual uint64 Write16(uint32 addr, uint32 data);
27: virtual uint64 Peek8(uint32 addr);
28:
29: void write_enable(bool value);
30:
31: private:
32: std::string filename;
33: int fd = 0;
34:
35: // バイト順はファイルイメージそのまま
36: uint8 *mem = NULL;
37:
38: // mmap する長さ
39: int memlen = 0;
40:
41: bool writeable = false;
42: };
43:
44: extern SRAMDevice *gSRAM;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.