|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |