-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathemulator.h
More file actions
83 lines (66 loc) · 1.13 KB
/
emulator.h
File metadata and controls
83 lines (66 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// This file is part of the PiEMU Project
// Licensing information can be found in the LICENSE file
// (C) 2014 Nandor Licker. All rights reserved.
#ifndef __EMULATOR_H__
#define __EMULATOR_H__
/**
* Emulator instance
*/
class Emulator
{
public:
/**
* Emulator arguments
*/
struct Args
{
/**
* RAM + VRAM
*/
size_t ram;
/**
* VRAM
*/
size_t vram;
/**
* Path to image
*/
std::string image;
};
/**
* Creates a new emulator instance
*/
Emulator(const Args& args);
/**
* Copy constructor forbidden
*/
Emulator(const Emulator&) =delete;
/**
* Destroys an emulator instance
*/
~Emulator();
/**
* Runs the emulator
*/
void Run();
/**
* Copying forbidden
*/
Emulator& operator = (const Emulator&) =delete;
/**
* Dumps the THUMB state
*/
void DumpTHUMB(std::ostream& os);
private:
/// Configuration
const Args &args;
/// Memory module
Memory mem;
/// ARM state
ARMState armState;
/// THUMB state
THUMBState thumbState;
/// Thumb
friend void ThumbExecute(Emulator *emu);
};
#endif /*__EMULATOR_H__*/