hololink::emulation::RegisterMemory

View as Markdown
#include <hololink/emulation/address_memory.hpp>

Inherits from: hololink::emulation::AddressMemory (public)


Constructors

RegisterMemory

hololink::emulation::RegisterMemory::RegisterMemory() = default

Methods

write

int hololink::emulation::RegisterMemory::write(
AddressValuePair &address_value
) override

Write a value to a register.

Returns: 0 on success, 1 on failure

Parameters

address_value
AddressValuePair &

Pair of address and value to write

read

int hololink::emulation::RegisterMemory::read(
AddressValuePair &address_value
) override

Read a value from a register.

Returns: 0 on success, 1 on failure

Parameters

address_value
AddressValuePair &

Pair of address and value to read

write_many

int hololink::emulation::RegisterMemory::write_many(
AddressValuePair *address_values,
int num_addresses
) override

Convenience function to write multiple values to registers under a single lock.

Returns: 0 on success, 1 on failure

Parameters

address_values
AddressValuePair *

Pointer to array of pairs of register addresses and values to write

num_addresses
int

Number of address-value pairs

read_many

int hololink::emulation::RegisterMemory::read_many(
AddressValuePair *address_values,
int num_addresses
) override

Convenience function to read multiple values from registers under a single lock.

Returns: 0 on success, 1 on failure

Parameters

address_values
AddressValuePair *

Pointer to array of pairs of register addresses and values to read (caller must allocate at least num_addresses elements)

num_addresses
int

Number of addresses to read

write_range

int hololink::emulation::RegisterMemory::write_range(
uint32_t start_address,
uint32_t *values,
int num_addresses,
int stride = 2
) override

Write a range of values to registers.

Allow optimizations if it is known that the addresses are contiguous.

Returns: 0 on success, 1 on failure

Parameters

num_addresses
int

The number of addresses to write

read_range

int hololink::emulation::RegisterMemory::read_range(
uint32_t start_address,
uint32_t *values,
int num_addresses,
int stride = 2
) override

Read a range of values from registers.

Allow optimizations if it is known that the addresses are contiguous.

Returns: 0 on success, 1 on failure

Parameters

num_addresses
int

The number of addresses to read

set_ctxt

void hololink::emulation::RegisterMemory::set_ctxt(
HSBEmulatorCtxt *ctxt
)

Member variables

NameTypeDescription
ctxt_struct HSBEmulatorCtxt *