unsigned long *reps,
enum hvm_access_type access_type,
struct hvm_emulate_ctxt *hvmemul_ctxt,
- unsigned long *paddr)
+ unsigned long *linear)
{
struct segment_register *reg;
int okay;
if ( seg == x86_seg_none )
{
- *paddr = offset;
+ *linear = offset;
return X86EMUL_OKAY;
}
okay = hvm_virtual_to_linear_addr(
seg, reg, offset - (*reps - 1) * bytes_per_rep,
*reps * bytes_per_rep, access_type,
- hvmemul_ctxt->ctxt.addr_size, paddr);
- *paddr += (*reps - 1) * bytes_per_rep;
+ hvmemul_ctxt->ctxt.addr_size, linear);
+ *linear += (*reps - 1) * bytes_per_rep;
if ( hvmemul_ctxt->ctxt.addr_size != 64 )
- *paddr = (uint32_t)*paddr;
+ *linear = (uint32_t)*linear;
}
else
{
okay = hvm_virtual_to_linear_addr(
seg, reg, offset, *reps * bytes_per_rep, access_type,
- hvmemul_ctxt->ctxt.addr_size, paddr);
+ hvmemul_ctxt->ctxt.addr_size, linear);
}
if ( okay )
return seg_reg;
}
-static int hvm_translate_linear_addr(
+static int hvm_translate_virtual_addr(
enum x86_segment seg,
unsigned long offset,
unsigned int bytes,
enum hvm_access_type access_type,
struct sh_emulate_ctxt *sh_ctxt,
- unsigned long *paddr)
+ unsigned long *linear)
{
const struct segment_register *reg;
int okay;
return -PTR_ERR(reg);
okay = hvm_virtual_to_linear_addr(
- seg, reg, offset, bytes, access_type, sh_ctxt->ctxt.addr_size, paddr);
+ seg, reg, offset, bytes, access_type, sh_ctxt->ctxt.addr_size, linear);
if ( !okay )
{
unsigned long addr;
int rc;
- rc = hvm_translate_linear_addr(
+ rc = hvm_translate_virtual_addr(
seg, offset, bytes, access_type, sh_ctxt, &addr);
if ( rc || !bytes )
return rc;
if ( seg == x86_seg_ss )
perfc_incr(shadow_fault_emulate_stack);
- rc = hvm_translate_linear_addr(
+ rc = hvm_translate_virtual_addr(
seg, offset, bytes, hvm_access_write, sh_ctxt, &addr);
if ( rc || !bytes )
return rc;
if ( bytes > sizeof(long) )
return X86EMUL_UNHANDLEABLE;
- rc = hvm_translate_linear_addr(
+ rc = hvm_translate_virtual_addr(
seg, offset, bytes, hvm_access_write, sh_ctxt, &addr);
if ( rc )
return rc;
/* Attempt to prefetch whole instruction. */
sh_ctxt->insn_buf_eip = regs->rip;
sh_ctxt->insn_buf_bytes =
- (!hvm_translate_linear_addr(
+ (!hvm_translate_virtual_addr(
x86_seg_cs, regs->rip, sizeof(sh_ctxt->insn_buf),
hvm_access_insn_fetch, sh_ctxt, &addr) &&
!hvm_fetch_from_guest_linear(
{
/* Prefetch more bytes. */
sh_ctxt->insn_buf_bytes =
- (!hvm_translate_linear_addr(
+ (!hvm_translate_virtual_addr(
x86_seg_cs, regs->rip, sizeof(sh_ctxt->insn_buf),
hvm_access_insn_fetch, sh_ctxt, &addr) &&
!hvm_fetch_from_guest_linear(