WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

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

To: Roger Cruz <rcruz@xxxxxxxxxxxxxxxxxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: Re: [Xen-devel] Structure packing when using hypercall.
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Mon, 22 Oct 2007 20:31:12 +0100
Delivery-date: Mon, 22 Oct 2007 12:26:34 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <40B551BEDC7945419A5897958AB3947C1C9F72@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcgU3OwgSW1bFsSFSXeroa5uYW2mJQAAjHKAAAC/Jss=
Thread-topic: [Xen-devel] Structure packing when using hypercall.
User-agent: Microsoft-Entourage/11.3.6.070618
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