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

Re: [Xen-devel] RFC: Proposed libxl USB hot-plug interface



On Wed, 2013-04-03 at 16:11 +0100, George Dunlap wrote:
> OK, based on the feedback, what about an interface like the following?
> 
> The idea would be that long-term, AUTO would always do PV for PV VMs, 
> and would somehow decide whether to do HVM or PV for HVM domains.
> 
> The "type" and the "union" fields are designed to allow the interface to 
> be extended to include other types of devices, such as adding emulated 
> tablets, mice, keyboards, usb sticks, &c.
> 
> "list" should return all available USB devices including the "handle" 
> that can be used to remove a device.
> 
> Thoughts?
> 
>   -George
> 
> #define LIBXL_DEVICE_HOST_USB_ANY (-1)
> int libxl_usb_add(libxl_ctx *ctx, uint32_t domid,
>                    libxl_device_usb *dev,
>                    const libxl_asyncop_how *ao_how)
>                    LIBXL_EXTERNAL_CALLERS_ONLY;
> int libxl_usb_del(libxl_ctx *ctx, uint32_t domid,
>                    uint64_t handle,
>                    const libxl_asyncop_how *ao_how)
>                    LIBXL_EXTERNAL_CALLERS_ONLY;
> int libxl_usb_list(libxl_ctx *ctx, uint32_t domid,
>                     libxl_device_usb **dev,
>                     const libxl_asyncop_how *ao_how)
>                     LIBXL_EXTERNAL_CALLERS_ONLY;
> 
> struct libxl_device_usb {

I assume you will actually do this via the libxl IDL when implementing?

>      uint16_t protocol; /* AUTO, PV, HVM */

Should be an enum I think.

>      uint16_t type; /* HOST; later can be emulated devices like tablet, 
> disk, &c */

And IIUC so should this.

>      uint32_t backend_domain_id; /* For PVUSB */

All other libxl_device_* use "backend_domid"

>      uint64_t handle;  /* OUT: Unique (per domain) handle that must be 
> used to remove a device */

This seem analogous to other device's libxl_devid?

>      int

Is this the key for the following union? If so then it should be an
appropriate enum.

>      union {
>          struct {
>              int hostbus, hostaddr, vendorid, productid;
>          } host;
>      };
> };
> 



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