mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-11-05 20:35:44 +00:00
Try to fix BSD breakage by 806b602482
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
parent
15cc923584
commit
620150dc9c
1 changed files with 32 additions and 10 deletions
42
usb-bsd.c
42
usb-bsd.c
|
@ -63,6 +63,7 @@ typedef struct USBHostDevice {
|
|||
} USBHostDevice;
|
||||
|
||||
|
||||
#if 0
|
||||
static int ensure_ep_open(USBHostDevice *dev, int ep, int mode)
|
||||
{
|
||||
char buf[32];
|
||||
|
@ -110,6 +111,7 @@ static void ensure_eps_closed(USBHostDevice *dev)
|
|||
epnum++;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void usb_host_handle_reset(USBDevice *dev)
|
||||
{
|
||||
|
@ -118,6 +120,7 @@ static void usb_host_handle_reset(USBDevice *dev)
|
|||
#endif
|
||||
}
|
||||
|
||||
#if 0
|
||||
/* XXX:
|
||||
* -check device states against transfer requests
|
||||
* and return appropriate response
|
||||
|
@ -275,6 +278,7 @@ static int usb_host_handle_data(USBDevice *dev, USBPacket *p)
|
|||
return ret;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
static void usb_host_handle_destroy(USBDevice *opaque)
|
||||
{
|
||||
|
@ -293,9 +297,15 @@ static void usb_host_handle_destroy(USBDevice *opaque)
|
|||
qemu_free(s);
|
||||
}
|
||||
|
||||
static int usb_host_initfn(USBDevice *dev)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
USBDevice *usb_host_device_open(const char *devname)
|
||||
{
|
||||
struct usb_device_info bus_info, dev_info;
|
||||
USBDevice *d = NULL;
|
||||
USBHostDevice *dev;
|
||||
char ctlpath[PATH_MAX + 1];
|
||||
char buspath[PATH_MAX + 1];
|
||||
|
@ -343,9 +353,6 @@ USBDevice *usb_host_device_open(const char *devname)
|
|||
}
|
||||
|
||||
if (dfd >= 0) {
|
||||
dev = qemu_mallocz(sizeof(USBHostDevice));
|
||||
dev->devfd = dfd;
|
||||
|
||||
if (ioctl(dfd, USB_GET_DEVICEINFO, &dev_info) < 0) {
|
||||
#ifdef DEBUG
|
||||
printf("usb_host_device_open: failed to grab device info - %s\n",
|
||||
|
@ -354,18 +361,14 @@ USBDevice *usb_host_device_open(const char *devname)
|
|||
goto fail;
|
||||
}
|
||||
|
||||
d = usb_create(NULL /* FIXME */, "USB Host Device");
|
||||
dev = DO_UPCAST(USBHostDevice, dev, d);
|
||||
|
||||
if (dev_info.udi_speed == 1)
|
||||
dev->dev.speed = USB_SPEED_LOW - 1;
|
||||
else
|
||||
dev->dev.speed = USB_SPEED_FULL - 1;
|
||||
|
||||
dev->dev.handle_packet = usb_generic_handle_packet;
|
||||
|
||||
dev->dev.handle_reset = usb_host_handle_reset;
|
||||
dev->dev.handle_control = usb_host_handle_control;
|
||||
dev->dev.handle_data = usb_host_handle_data;
|
||||
dev->dev.handle_destroy = usb_host_handle_destroy;
|
||||
|
||||
if (strncmp(dev_info.udi_product, "product", 7) != 0)
|
||||
pstrcpy(dev->dev.devname, sizeof(dev->dev.devname),
|
||||
dev_info.udi_product);
|
||||
|
@ -389,6 +392,25 @@ fail:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static struct USBDeviceInfo usb_host_dev_info = {
|
||||
.qdev.name = "USB Host Device",
|
||||
.qdev.size = sizeof(USBHostDevice),
|
||||
.init = usb_host_initfn,
|
||||
.handle_packet = usb_generic_handle_packet,
|
||||
.handle_reset = usb_host_handle_reset,
|
||||
#if 0
|
||||
.handle_control = usb_host_handle_control,
|
||||
.handle_data = usb_host_handle_data,
|
||||
#endif
|
||||
.handle_destroy = usb_host_handle_destroy,
|
||||
};
|
||||
|
||||
static void usb_host_register_devices(void)
|
||||
{
|
||||
usb_qdev_register(&usb_host_dev_info);
|
||||
}
|
||||
device_init(usb_host_register_devices)
|
||||
|
||||
static int usb_host_scan(void *opaque, USBScanFunc *func)
|
||||
{
|
||||
struct usb_device_info bus_info;
|
||||
|
|
Loading…
Reference in a new issue