#include <memory_map.hpp>
class MemoryMapDefined in include/memory_map.hpp:36
RV64-VM Memory map class.
This class implements Main memory storage.
| Name | Kind | Owner |
|---|---|---|
MemoryMap |
function |
Declared here |
~MemoryMap |
function |
Declared here |
get_regions |
function |
Declared here |
get_ram_direct |
function |
Declared here |
add_region |
function |
Declared here |
load_file |
function |
Declared here |
load_buffer |
function |
Declared here |
load |
function |
Declared here |
store |
function |
Declared here |
find_region |
function |
Declared here |
| Return | Name | Description |
|---|---|---|
MemoryMap inline |
MemoryMap constructor. | |
~MemoryMap inline |
MemoryMap destructor. | |
std::vector< MemoryRegion * > & |
get_regions inline |
Returns all created regions. |
MemoryRegion * |
get_ram_direct const inline |
Returns pointer to 0x80000000 guest ram region. |
void |
add_region inline |
Creates new guest region in memory. |
bool |
load_file inline |
Loads binary or ELF file to guest memory. |
bool |
load_buffer inline |
Loads buffer to guest memory. |
uint64_t |
load inline |
Loads value from guest memory. |
void |
store inline |
Stores value to guest memory. |
MemoryRegion * |
find_region inline |
Finds region by specidied guest address. |
inline
inline MemoryMap()Defined in include/memory_map.hpp:42
MemoryMap constructor.
inline
inline ~MemoryMap()Defined in include/memory_map.hpp:47
MemoryMap destructor.
Safely removes all regions
inline
inline std::vector< MemoryRegion * > & get_regions()Defined in include/memory_map.hpp:118
Returns all created regions.
See also: MemoryRegion
Memory regions
const inline
inline MemoryRegion * get_ram_direct() constDefined in include/memory_map.hpp:124
Returns pointer to 0x80000000 guest ram region.
See also: MemoryRegion
Direct pointer to region
inline
inline void add_region(uint64_t base, size_t size)Defined in include/memory_map.hpp:130
Creates new guest region in memory.
| Parameter | Type | Description |
|---|---|---|
base |
uint64_t |
Guest base |
size |
size_t |
Region size |
inline
inline bool load_file(uint64_t memory_path, std::string path = "", uint64_t * entry_pc = NULL)Defined in include/memory_map.hpp:145
Loads binary or ELF file to guest memory.
Success boolean
| Parameter | Type | Description |
|---|---|---|
memory_path |
uint64_t |
Guest address to put data in |
path |
std::string |
Path to file |
entry_pc |
uint64_t * |
Output program counter readed from ELF file(if you use elf) |
inline
inline bool load_buffer(uint64_t memory_path, char * buffer, uint64_t size, uint64_t * entry_pc = NULL)Defined in include/memory_map.hpp:183
Loads buffer to guest memory.
Success boolean
| Parameter | Type | Description |
|---|---|---|
memory_path |
uint64_t |
Guest address to put data in |
buffer |
char * |
Host pointer to buffer |
size |
uint64_t |
Buffer size |
entry_pc |
uint64_t * |
Output program counter readed from ELF file(if you use elf) |
inline
inline uint64_t load(uint64_t addr, uint64_t size)Defined in include/memory_map.hpp:204
Loads value from guest memory.
Value stored in memory
| Parameter | Type | Description |
|---|---|---|
addr |
uint64_t |
Guest address |
size |
uint64_t |
Data size (bits) |
inline
inline void store(uint64_t addr, uint64_t size, uint64_t value)Defined in include/memory_map.hpp:246
Stores value to guest memory.
| Parameter | Type | Description |
|---|---|---|
addr |
uint64_t |
Guest address |
size |
uint64_t |
Data size (bits) |
value |
uint64_t |
Value to store |
inline
inline MemoryRegion * find_region(uint64_t addr)Defined in include/memory_map.hpp:289
Finds region by specidied guest address.
Memory region
See also: MemoryRegion
| Parameter | Type | Description |
|---|---|---|
addr |
uint64_t |
Guest addr |