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

Re: [Xen-devel] confusion over vcpumask in mmuext_op



> vcpumask is now a guest handle, but it seems the Linux code still sets
> it directly instead of using set_xen_guest_handle(). What am I missing?

It's a result of some version-fu in the interface:

Linux's drivers/xen/Kconfig defines:
if XEN
config XEN_INTERFACE_VERSION
        hex
        default 0x00030203

xen.h defines:
struct mmuext_op {
    unsigned int cmd;
    union {
        /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
        xen_pfn_t     mfn;
        /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
        unsigned long linear_addr;
    } arg1;
    union {
        /* SET_LDT */
        unsigned int nr_ents;
        /* TLB_FLUSH_MULTI, INVLPG_MULTI */
        XEN_GUEST_HANDLE_00030205(void) vcpumask; /* MW:note the macro name */
    } arg2;
};


typedef struct
And xen-compat.h defines:
/* Fields defined as a Xen guest handle since 0x00030205. */
#if __XEN_INTERFACE_VERSION__ >= 0x00030205
#define XEN_GUEST_HANDLE_00030205(type) XEN_GUEST_HANDLE(type)
#else
#define XEN_GUEST_HANDLE_00030205(type) type *
#endif

So actually the field vcpumask is currently being compiled as a void *.

Cheers,
Mark


-- 
Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!

_______________________________________________
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®.