uint_t rep_num = 1;
ullong_t mask = 0;
addr_t inst_ptr;
- struct v3_segment * theseg = &(core->segments.es); // default is ES
+ struct v3_segment * theseg = &(core->segments.ds); // default is DS
// This is kind of hacky...
// direction can equal either 1 or -1
PrintDebug("OUTS size=%d for %d steps\n", write_size, rep_num);
while (rep_num > 0) {
- addr_t host_addr;
+ addr_t host_addr = 0;
dst_addr = get_addr_linear(core, (core->vm_regs.rsi & mask), theseg);
if (v3_gva_to_hva(core, dst_addr, &host_addr) == -1) {
- // either page fault or gpf...
+ PrintError("Could not translate outs dest addr, either page fault or gpf...\n");
+ return -1;
}
if (hook->write(core, io_info->port, (char*)host_addr, write_size, hook->priv_data) != write_size) {