Arion 1.0.2-alpha
A high-performance C++ framework for emulating executable binaries.
 
Loading...
Searching...
No Matches
baremetal_manager.hpp
Go to the documentation of this file.
1#ifndef ARION_BAREMETAL_MANAGER_HPP
2#define ARION_BAREMETAL_MANAGER_HPP
3
6#include <vector>
7
8namespace arion
9{
10
14{
15 private:
19 std::vector<BYTE> code;
24
25 public:
33 ARION_EXPORT BaremetalManager(CPU_ARCH arch, std::vector<BYTE> code, ADDR load_addr, ADDR entry_addr)
34 : arch(arch), code(code), load_addr(load_addr), entry_addr(entry_addr) {};
41 ARION_EXPORT BaremetalManager(CPU_ARCH arch, std::vector<BYTE> code, ADDR load_addr)
42 : BaremetalManager(arch, code, load_addr, load_addr) {};
49 ARION_EXPORT BaremetalManager(CPU_ARCH arch, ADDR load_addr, ADDR entry_addr)
50 : BaremetalManager(arch, std::vector<BYTE>(), load_addr, entry_addr) {};
60 std::vector<uint8_t> ARION_EXPORT get_code();
71};
72
73}; // namespace arion
74
75#endif // ARION_BAREMETAL_MANAGER_HPP
Definition baremetal_manager.hpp:14
BaremetalManager(CPU_ARCH arch, std::vector< BYTE > code, ADDR load_addr)
Definition baremetal_manager.hpp:41
BaremetalManager(CPU_ARCH arch, std::vector< BYTE > code, ADDR load_addr, ADDR entry_addr)
Definition baremetal_manager.hpp:33
BaremetalManager(CPU_ARCH arch, ADDR load_addr, ADDR entry_addr)
Definition baremetal_manager.hpp:49
ADDR load_addr
The memory address at which to map the code.
Definition baremetal_manager.hpp:21
ADDR entry_addr
The memory address at which to start emulation.
Definition baremetal_manager.hpp:23
CPU_ARCH arch
Arion CPU architecture for emulation.
Definition baremetal_manager.hpp:17
std::vector< BYTE > code
The code to be emulated.
Definition baremetal_manager.hpp:19
std::vector< uint8_t > get_code()
#define ARION_EXPORT
Defines which symbols should be exported from the library.
Definition global_defs.hpp:13
Definition arch_x86-64.hpp:11
uint64_t ADDR
Identifies a memory address.
Definition global_defs.hpp:36
CPU_ARCH
Identifies a CPU architecture.
Definition global_defs.hpp:128
uint8_t BYTE
Identifies an 8-bit integer.
Definition global_defs.hpp:40