get roms more room. (Glauber Costa)
[qemu] / usb-bsd.c
index 567aa81..5becea5 100644 (file)
--- 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 */
 #undef USB_SPEED_LOW
 
 #include <sys/ioctl.h>
+#ifndef __DragonFly__
 #include <dev/usb/usb.h>
+#else
+#include <bus/usb/usb.h>
+#endif
 #include <signal.h>
 
 /* 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);
 }