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

Re: [Xen-devel] [PATCH 02/10] xen: make GUEST_HANDLE_64() and uint64_aligned_t available everywhere



>>> On 25.06.13 at 16:48, David Vrabel <david.vrabel@xxxxxxxxxx> wrote:
> I want the structure to be identical for 32-bit and 64-bit guests so
> compat code is not required in the hypervisor.
> 
> Without a macro like XEN_GUEST_HANDLE_64() how do you suggest the
> structure is defined so the field is sized correctly (i.e., 8 bytes)?
> 
> Are you suggesting something like?
> 
> typedef struct xen_kexec_load {
>     uint8_t  type;        /* One of KEXEC_TYPE_* */
>     uint8_t  _pad;
>     uint16_t arch;        /* ELF machine type (EM_*). */
>     uint32_t nr_segments;
>     union {
>         XEN_GUEST_HANDLE(xen_kexec_segment_t) segments;
>         uint64_t _qword;
>     } u;
>     uint64_t entry_maddr; /* image entry point machine address. */
> } xen_kexec_load_t;

Yes - there are already other cases similar to this in the public
headers, for example struct vcpu_register_runstate_memory_area
and struct vcpu_register_time_memory_area.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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