|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-devel
[Xen-devel] Structure packing when using hypercall. 
| 
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
 | 
 |  | 
  
    |  |  |