static int __read(RIO *io, RIODesc *fd, ut8 *buf, int count) { if (!fd) return -1; if (wind_get_target(fd->data)) { uint64_t va; if (!wind_va_to_pa (fd->data, io->off, &va)) return -1; return wind_read_at_phys(fd->data, buf, va, count); } return wind_read_at(fd->data, buf, io->off, count); }
ut64 wind_get_target_base (WindCtx *ctx) { ut64 ppeb; ut64 base = 0; if (!ctx || !ctx->io_ptr || !ctx->syncd || !ctx->target) return 0; if (!wind_va_to_pa(ctx, ctx->target->peb, &ppeb)) return 0; if (!wind_read_at_phys (ctx, (uint8_t *)&base, ppeb + O_(P_ImageBaseAddress), 4 << ctx->is_x64)) return 0; return base; }