mirror of
https://github.com/qemu/qemu.git
synced 2024-11-28 22:33:36 +08:00
xen: add pvUSB backend
Add a backend for para-virtualized USB devices for xen domains. The backend is using host-libusb to forward USB requests from a domain via libusb to the real device(s) passed through. Signed-off-by: Juergen Gross <jgross@suse.com> Acked-by: Anthony PERARD <anthony.perard@citrix.com> Message-id: 1463062421-613-4-git-send-email-jgross@suse.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
637c53ffcb
commit
816ac92ef7
@ -38,3 +38,7 @@ common-obj-$(CONFIG_USB_REDIR) += redirect.o quirks.o
|
||||
|
||||
# usb pass-through
|
||||
common-obj-y += $(patsubst %,host-%.o,$(HOST_USB))
|
||||
|
||||
ifeq ($(CONFIG_USB_LIBUSB),y)
|
||||
common-obj-$(CONFIG_XEN_BACKEND) += xen-usb.o
|
||||
endif
|
||||
|
1080
hw/usb/xen-usb.c
Normal file
1080
hw/usb/xen-usb.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -80,6 +80,9 @@ static void xen_init_pv(MachineState *machine)
|
||||
xen_be_register("vfb", &xen_framebuffer_ops);
|
||||
xen_be_register("qdisk", &xen_blkdev_ops);
|
||||
xen_be_register("qnic", &xen_netdev_ops);
|
||||
#ifdef CONFIG_USB_LIBUSB
|
||||
xen_be_register("qusb", &xen_usb_ops);
|
||||
#endif
|
||||
|
||||
/* configure framebuffer */
|
||||
if (xenfb_enabled) {
|
||||
|
@ -101,6 +101,9 @@ extern struct XenDevOps xen_kbdmouse_ops; /* xen_framebuffer.c */
|
||||
extern struct XenDevOps xen_framebuffer_ops; /* xen_framebuffer.c */
|
||||
extern struct XenDevOps xen_blkdev_ops; /* xen_disk.c */
|
||||
extern struct XenDevOps xen_netdev_ops; /* xen_nic.c */
|
||||
#ifdef CONFIG_USB_LIBUSB
|
||||
extern struct XenDevOps xen_usb_ops; /* xen-usb.c */
|
||||
#endif
|
||||
|
||||
void xen_init_display(int domid);
|
||||
|
||||
|
@ -49,6 +49,8 @@ typedef xc_gnttab xengnttab_handle;
|
||||
#define xengnttab_unmap(h, a, n) xc_gnttab_munmap(h, a, n)
|
||||
#define xengnttab_map_grant_refs(h, c, d, r, p) \
|
||||
xc_gnttab_map_grant_refs(h, c, d, r, p)
|
||||
#define xengnttab_map_domain_grant_refs(h, c, d, r, p) \
|
||||
xc_gnttab_map_domain_grant_refs(h, c, d, r, p)
|
||||
|
||||
#define xenforeignmemory_open(l, f) xen_xc
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user