61typedef enum : uint16_t {
94 uint32_t buf_ptr = 0U;
95 (void)uc_reg_read(uc, UC_ARM_REG_R0, &lba);
96 (void)uc_reg_read(uc, UC_ARM_REG_R1, &buf_ptr);
129 const uint32_t addr =
elf_sym_addr(elf,
"ra8_sdmmc_spi_read_block",
nullptr);
132 " [fast-sd] ra8_sdmmc_spi_read_block not found -- SD stays on the per-byte path\n");
135 static uc_hook s_h_fast_sd;
136 (void)uc_hook_add(uc,
143 (void)
priv_emu_io_errf(
" [fast-sd] ra8_sdmmc_spi_read_block block-hook armed @ 0x%08X "
144 "(SD blocks served direct from the image)\n",
SD-card-over-SPI device model for ra8_emulator (attached to SPI_B).
bool board_sd_attached(void)
Report whether an SD-card image is currently attached.
bool board_sd_read_block(uint32_t lba, uint8_t *dst)
Copy one 512-byte block straight out of the backing image.
ELF32 image services for the board emulator (load / symbols / vectors).
uint32_t elf_sym_addr(const emu_elf_source_t *elf, const char *name, uint32_t *size_out)
Resolve a function symbol's entry address from the ELF .symtab.
Shared Unicorn engine access utilities for the board emulator.
void emu_seam_request_relaunch(void)
Mark the pending engine stop as a zero-time seam relaunch.
Bounded raw-descriptor I/O seam for the RA8 emulator.
emu_io_result_t priv_emu_io_errf(const char *format,...)
Format bounded text and write it to the injected error descriptor.
uc_err emu_mem_write(uc_engine *uc, uint64_t address, const void *bytes, size_t count)
Write guest memory through the central access seam.
fast_sd_const_t
–fast-sd block-serving constants.
@ k_fast_sd_block
SD block size served per hook entry.
void fast_sd_seam_install(uc_engine *uc, const emu_elf_source_t *elf)
Install the --fast-sd block-read hook if opted-in and the symbol exists.
void emu_fast_sd_enable(void)
Implementation of emu_fast_sd_enable() – CLI opt-in latch.
static bool s_fast_sd
True once --fast-sd is requested on the command line.
static RA8_INTERNAL void internal_on_sdmmc_read_block(uc_engine *uc, uint64_t address, uint32_t size, void *user)
Perform on sdmmc read block for the emu seam SD model.
Armv8.1-M instruction-emulation seams (M85 ops on Unicorn's M33).
Function-entry seam glue + the –trace-sym instrument.
void eth_hook_return(uc_engine *uc, uint32_t r0)
Emulate "return r0;" from a hooked function: set R0, branch to LR.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).
One independently owned immutable raw-descriptor ELF source.