[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Structure packing when using hypercall.



See arch/x86/hvm/hvm.c. Some 32-to-64 conversion gets done in there, as a
wrapper around the core hypercall routines.

 -- Keir

On 22/10/07 20:14, "Roger Cruz" <rcruz@xxxxxxxxxxxxxxxxxxxxxxxx> wrote:

> 
> I'm wondering how you resolve the issue of structure packing when an
> application that calls hypervisor functions (say, the grant table map
> reference hypercall that uses struct grant_entry) is compiled with a
> 32-bit compiler and the hypervisor is compiled with a 64-bit version.
> There is a discrepancy in the sizes and alignment of the fields within
> the structure, depending on which compiler is being used.
> 
> So, my problem arises that I have a 64-bit compiler and a 32-bit HVM
> guest making a hypercall using the public H header files.  Is there some
> packing being done in other files or at compile time that I'm not
> seeing?
> 
> 
> struct grant_entry {
>     /* GTF_xxx: various type and flag information.  [XEN,GST] */
>     uint16_t flags;
>     /* The domain being granted foreign privileges. [GST] */
>     domid_t  domid;
>     /*
>      * GTF_permit_access: Frame that @domid is allowed to map and
> access. [GST]
>      * GTF_accept_transfer: Frame whose ownership transferred by @domid.
> [XEN]
>      */
>     uint32_t frame;
> };
> typedef struct grant_entry grant_entry_t;
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxxxxxxxx
> http://lists.xensource.com/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.