|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for 4.9 1/6] x86/hvm: Correct some address space terminology
>>> On 03.04.17 at 12:19, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 03/04/17 09:24, Jan Beulich wrote:
>>>>> On 31.03.17 at 21:50, <andrew.cooper3@xxxxxxxxxx> wrote:
>>> --- a/xen/arch/x86/mm/shadow/common.c
>>> +++ b/xen/arch/x86/mm/shadow/common.c
>>> @@ -136,13 +136,13 @@ static struct segment_register *hvm_get_seg_reg(
>>> 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)
>> ... here would be useful (to distinguish the virtual address
>> represented by the pointer itself - in hypervisor space - from the
>> one the pointer points to, i.e. in guest space).
>
> The virtual address representation is {seg, offset}, and Xen can't use
> linear addresses.
Oops, I'm sorry, I meant linear, not virtual. And of course Xen uses
linear addresses (in hypervisor address space) all the time (due to
virtual == linear in 64-bit mode, leaving aside the few exceptions;
in particular we never pass around any {seg, offset} pairs to
represent hypervisor pointers). I.e. once the function has written
*linear we have two linear addresses here:
- "linear" itself represents one (hypervisor, pointer type)
- "*linear" holds another (guest, integral type)
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |