bool HWStubDevice::WriteMem(soc_addr_t addr, size_t length, void *buffer) { if(!m_hwdev) return false; int ret = hwstub_rw_mem_atomic(m_hwdev, 0, addr, buffer, length); return ret >= 0 && (size_t)ret == length; }
soc_word_t hw_read32(lua_State *state, soc_addr_t addr) { uint32_t u; if(hwstub_rw_mem_atomic(g_hwdev, 1, addr, &u, sizeof(u)) != sizeof(u)) luaL_error(state, "fail to read32 @ %p", addr); return u; }
void hw_write32(lua_State *state, soc_addr_t addr, soc_word_t val) { uint32_t u = val; if(hwstub_rw_mem_atomic(g_hwdev, 0, addr, &u, sizeof(u)) != sizeof(u)) luaL_error(state, "fail to write32 @ %p", addr); }