|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
5: //
6:
1.1.1.3 ! root 7: //
! 8: // LUNA* の RAM のうち 16MB に満たないメモリブロックを担当する人
! 9: //
! 10:
1.1 root 11: #pragma once
12:
13: #include "device.h"
14:
15: class PartialRAMDevice : public IODevice
16: {
17: using inherited = IODevice;
18: public:
19: PartialRAMDevice();
20: virtual ~PartialRAMDevice() override;
21:
22: bool Init() override;
23:
24: uint64 Read8(uint32 addr) override;
25: uint64 Read16(uint32 addr) override;
26: uint64 Read32(uint32 addr) override;
27: uint64 Write8(uint32 addr, uint32 data) override;
28: uint64 Write16(uint32 addr, uint32 data) override;
29: uint64 Write32(uint32 addr, uint32 data) override;
30: uint64 Peek8(uint32 addr) override;
31:
32: private:
33: inline IODevice *SearchDevice(uint32 addr) const;
34:
35: uint32 ram_size {};
36:
37: IODevice *ramdev {};
1.1.1.2 root 38: IODevice *nopdev {};
1.1 root 39: };
40:
1.1.1.3 ! root 41: extern PartialRAMDevice *gPartialRAM;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.