Skip to content

Latest commit

 

History

History
277 lines (163 loc) · 6.37 KB

File metadata and controls

277 lines (163 loc) · 6.37 KB

MemoryMap

#include <memory_map.hpp>

class MemoryMap

Defined in include/memory_map.hpp:36

RV64-VM Memory map class.

This class implements Main memory storage.

List of all members

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

Public Methods

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.

MemoryMap

inline

inline MemoryMap()

Defined in include/memory_map.hpp:42

MemoryMap constructor.


~MemoryMap

inline

inline ~MemoryMap()

Defined in include/memory_map.hpp:47

MemoryMap destructor.

Safely removes all regions


get_regions

inline

inline std::vector< MemoryRegion * > & get_regions()

Defined in include/memory_map.hpp:118

Returns all created regions.

See also: MemoryRegion

Returns

Memory regions


get_ram_direct

const inline

inline MemoryRegion * get_ram_direct() const

Defined in include/memory_map.hpp:124

Returns pointer to 0x80000000 guest ram region.

See also: MemoryRegion

Returns

Direct pointer to region


add_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.

Parameters

Parameter Type Description
base uint64_t Guest base
size size_t Region size

load_file

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.

Returns

Success boolean

Parameters

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)

load_buffer

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.

Returns

Success boolean

Parameters

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)

load

inline

inline uint64_t load(uint64_t addr, uint64_t size)

Defined in include/memory_map.hpp:204

Loads value from guest memory.

Returns

Value stored in memory

Parameters

Parameter Type Description
addr uint64_t Guest address
size uint64_t Data size (bits)

store

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.

Parameters

Parameter Type Description
addr uint64_t Guest address
size uint64_t Data size (bits)
value uint64_t Value to store

find_region

inline

inline MemoryRegion * find_region(uint64_t addr)

Defined in include/memory_map.hpp:289

Finds region by specidied guest address.

Returns

Memory region

See also: MemoryRegion

Parameters

Parameter Type Description
addr uint64_t Guest addr