X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=usb-bsd.c;h=5becea561333a7703e557ae1a0a5f19bc88cd86c;hb=705bf6326a6557323dfcd3c3183c9095f6ed178a;hp=567aa81d8137244d57f914ecdfe26ef960e038e2;hpb=6806364989f71456a65c630bc380249c9462204c;p=qemu diff --git a/usb-bsd.c b/usb-bsd.c index 567aa81..5becea5 100644 --- a/usb-bsd.c +++ b/usb-bsd.c @@ -25,7 +25,7 @@ */ #include "qemu-common.h" -#include "console.h" +#include "monitor.h" #include "hw/usb.h" /* usb.h declares these */ @@ -34,7 +34,11 @@ #undef USB_SPEED_LOW #include +#ifndef __DragonFly__ #include +#else +#include +#endif #include /* This value has maximum potential at 16. @@ -68,7 +72,7 @@ static int ensure_ep_open(USBHostDevice *dev, int ep, int mode) ep = UE_GET_ADDR(ep); if (dev->ep_fd[ep] < 0) { -#if __FreeBSD__ +#if defined(__FreeBSD__) || defined(__DragonFly__) snprintf(buf, sizeof(buf) - 1, "%s.%d", dev->devpath, ep); #else snprintf(buf, sizeof(buf) - 1, "%s.%02d", dev->devpath, ep); @@ -178,7 +182,7 @@ static int usb_host_handle_control(USBDevice *dev, req.ucr_flags = USBD_SHORT_XFER_OK; ret = ioctl(s->devfd, USB_SET_TIMEOUT, &timeout); -#if (__NetBSD__ || __OpenBSD__) +#if defined(__NetBSD__) || defined(__OpenBSD__) if (ret < 0 && errno != EINVAL) { #else if (ret < 0) { @@ -321,7 +325,7 @@ USBDevice *usb_host_device_open(const char *devname) return NULL; } -#if __FreeBSD__ +#if defined(__FreeBSD__) || defined(__DragonFly__) snprintf(ctlpath, PATH_MAX, "/dev/%s", bus_info.udi_devnames[0]); #else snprintf(ctlpath, PATH_MAX, "/dev/%s.00", bus_info.udi_devnames[0]); @@ -340,8 +344,6 @@ USBDevice *usb_host_device_open(const char *devname) if (dfd >= 0) { dev = qemu_mallocz(sizeof(USBHostDevice)); - if (!dev) - goto fail; dev->devfd = dfd; if (ioctl(dfd, USB_GET_DEVICEINFO, &dev_info) < 0) { @@ -372,7 +374,7 @@ USBDevice *usb_host_device_open(const char *devname) "host:%s", devname); pstrcpy(dev->devpath, sizeof(dev->devpath), "/dev/"); - strcat(dev->devpath, dev_info.udi_devnames[0]); + pstrcat(dev->devpath, sizeof(dev->devpath), dev_info.udi_devnames[0]); /* Mark the endpoints as not yet open */ for (i = 0; i < USB_MAX_ENDPOINTS; i++) @@ -413,7 +415,7 @@ static int usb_host_scan(void *opaque, USBScanFunc *func) if (strncmp(bus_info.udi_devnames[0], "ugen", 4) != 0) continue; -#if __FreeBSD__ +#if defined(__FreeBSD__) || defined(__DragonFly__) snprintf(devbuf, sizeof(devbuf) - 1, "/dev/%s", bus_info.udi_devnames[0]); #else snprintf(devbuf, sizeof(devbuf) - 1, "/dev/%s.00", bus_info.udi_devnames[0]); @@ -550,12 +552,13 @@ static const char *usb_class_str(uint8_t class) return p->class_name; } -void usb_info_device(int bus_num, int addr, int class_id, - int vendor_id, int product_id, - const char *product_name, - int speed) +static void usb_info_device(int bus_num, int addr, int class_id, + int vendor_id, int product_id, + const char *product_name, + int speed) { const char *class_str, *speed_str; + Monitor *mon = cur_mon; switch(speed) { case USB_SPEED_LOW: @@ -572,20 +575,21 @@ void usb_info_device(int bus_num, int addr, int class_id, break; } - term_printf(" Device %d.%d, speed %s Mb/s\n", - bus_num, addr, speed_str); + monitor_printf(mon, " Device %d.%d, speed %s Mb/s\n", + bus_num, addr, speed_str); class_str = usb_class_str(class_id); if (class_str) - term_printf(" %s:", class_str); + monitor_printf(mon, " %s:", class_str); else - term_printf(" Class %02x:", class_id); - term_printf(" USB device %04x:%04x", vendor_id, product_id); + monitor_printf(mon, " Class %02x:", class_id); + monitor_printf(mon, " USB device %04x:%04x", vendor_id, product_id); if (product_name[0] != '\0') - term_printf(", %s", product_name); - term_printf("\n"); + monitor_printf(mon, ", %s", product_name); + monitor_printf(mon, "\n"); } -static int usb_host_info_device(void *opaque, int bus_num, int addr, +static int usb_host_info_device(void *opaque, + int bus_num, int addr, int class_id, int vendor_id, int product_id, const char *product_name, @@ -596,7 +600,7 @@ static int usb_host_info_device(void *opaque, int bus_num, int addr, return 0; } -void usb_host_info(void) +void usb_host_info(Monitor *mon) { usb_host_scan(NULL, usb_host_info_device); }