|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2018 [email protected]
4: //
5:
6: #pragma once
7:
8: #include "device.h"
9:
10: class RAMDevice
11: : public IODevice
12: {
13: typedef IODevice inherited;
14: public:
15: RAMDevice();
16: virtual ~RAMDevice();
17:
18: virtual bool Init();
19:
20: virtual uint64 Read8(uint32 addr);
21: virtual uint64 Read16(uint32 addr);
22: virtual uint64 Read32(uint32 addr);
23: virtual uint64 Write8(uint32 addr, uint32 data);
24: virtual uint64 Write16(uint32 addr, uint32 data);
25: virtual uint64 Write32(uint32 addr, uint32 data);
26: virtual uint64 Peek8(uint32 addr);
1.1.1.2 ! root 27:
! 28: // ホストの filepath をロードする
! 29: uint32 LoadFile(const char *filepath, uint32 mid);
! 30: // file, filesize で示されるバッファをロードする
! 31: uint32 LoadFile(const char *name, const uint8 *file, size_t filesize,
! 32: uint32 mid);
! 33: private:
! 34: uint32 LoadGzFile(const char *filepath, const uint8 *file, size_t filesize,
! 35: uint32 mid);
! 36: uint32 Load_aout(const char *name, const uint8 *file, size_t filesize,
! 37: uint32 mid);
! 38: uint32 Load_elf32(const char *name, const uint8 *file, size_t filesize,
! 39: uint32 mid);
1.1 root 40: };
41:
1.1.1.2 ! root 42: extern std::unique_ptr<uint8[]> ram;
1.1 root 43: extern int ram_size;
1.1.1.2 ! root 44: extern std::unique_ptr<RAMDevice> gRAM;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.