| 
    
 [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  |