[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH v4 10/19] xen: setup hypercall page for PVH
From: |
Juergen Gross |
Subject: |
Re: [Xen-devel] [PATCH v4 10/19] xen: setup hypercall page for PVH |
Date: |
Wed, 21 Nov 2018 14:58:14 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 |
On 20/11/2018 10:27, Juergen Gross wrote:
> On 09/11/2018 19:12, Daniel Kiper wrote:
>> On Fri, Nov 02, 2018 at 01:37:29PM +0100, Juergen Gross wrote:>>> +
>>> + asm volatile ("wrmsr" : : "c" (msr), "a" (pfn), "d" (0) : "memory");
>>> +}
>>> +
>>> +int
>>> +grub_xen_hypercall (grub_uint32_t callno, grub_uint32_t a0,
>>> + grub_uint32_t a1, grub_uint32_t a2,
>>> + grub_uint32_t a3, grub_uint32_t a4,
>>> + grub_uint32_t a5 __attribute__ ((unused)))
>>> +{
>>> + grub_uint32_t __res, __ign0, __ign1, __ign2, __ign3, __ign4;
>>> +
>>> + asm volatile ("call *%[callno]"
>>> + : "=a" (__res), "=b" (__ign0), "=c" (__ign1), "=d" (__ign2),
>>> + "=S" (__ign3), "=D" (__ign4)
>>> + : "1" (a0), "2" (a1), "3" (a2), "4" (a3), "5" (a4),
>>
>> I think that you can drop all __ign* variables if you specify proper
>> registers in input argument. If this does not work you can use "+"
>> modifier instead of "=" in the output argument.
>
> I'll have a try.
Doesn't work.
Specifying only the input registers neglects the hypercall
clobbering those.
Using the "+" modifier lets gcc complain.
I'll just use a single dummy variable.
Juergen
[PATCH v4 07/19] xen: add PVH specific defines to offset.h, Juergen Gross, 2018/11/02
[PATCH v4 05/19] xen: add some dummy headers for PVH mode, Juergen Gross, 2018/11/02
[PATCH v4 03/19] xen: carve out grant tab initialization into dedicated function, Juergen Gross, 2018/11/02