qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Lonnie Mendez <lmendez19@austin.rr.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [usb] display device identifier string for user with	info usb
Date: Mon, 22 May 2006 15:15:56 -0500	[thread overview]
Message-ID: <44721BFC.3080504@austin.rr.com> (raw)
In-Reply-To: <44721B36.1070909@austin.rr.com>

[-- Attachment #1: Type: text/plain, Size: 65 bytes --]

   Whoops.  Wrong patch - missing 1 chunk - please see attached.

[-- Attachment #2: qemu-info-usb.diff --]
[-- Type: text/plain, Size: 4461 bytes --]

--- qemu/hw/usb.h	2006-05-21 11:30:15.000000000 -0500
+++ qemu/hw/usb.h	2006-05-22 13:23:10.000000000 -0500
@@ -127,6 +127,7 @@
     int (*handle_data)(USBDevice *dev, int pid, uint8_t devep,
                        uint8_t *data, int len);
     uint8_t addr;
+    char devname[32];
     
     int state;
     uint8_t setup_buf[8];
--- qemu/hw/usb-hub.c	2006-05-21 11:30:15.000000000 -0500
+++ qemu/hw/usb-hub.c	2006-05-22 13:23:53.000000000 -0500
@@ -542,6 +542,8 @@
     s->dev.handle_control = usb_hub_handle_control;
     s->dev.handle_data = usb_hub_handle_data;
 
+    strcpy(s->dev.devname, "QEMU USB Hub");
+
     s->nb_ports = nb_ports;
     for(i = 0; i < s->nb_ports; i++) {
         port = &s->ports[i];
--- qemu/hw/usb-hid.c	2006-04-12 16:09:07.000000000 -0500
+++ qemu/hw/usb-hid.c	2006-05-22 13:24:57.000000000 -0500
@@ -515,6 +515,8 @@
     s->dev.handle_data = usb_mouse_handle_data;
     s->kind = USB_TABLET;
 
+    strcpy(s->dev.devname, "QEMU USB Tablet");
+
     return (USBDevice *)s;
 }
 
@@ -533,5 +535,7 @@
     s->dev.handle_data = usb_mouse_handle_data;
     s->kind = USB_MOUSE;
 
+    strcpy(s->dev.devname, "QEMU USB Mouse");
+
     return (USBDevice *)s;
 }
--- qemu/usb-linux.c	2006-03-11 12:03:38.000000000 -0600
+++ qemu/usb-linux.c	2006-05-22 15:06:28.000000000 -0500
@@ -44,6 +44,7 @@
                         int vendor_id, int product_id, 
                         const char *product_name, int speed);
 static int usb_host_find_device(int *pbus_num, int *paddr, 
+                                char *product_name, 
                                 const char *devname);
 
 //#define DEBUG
@@ -145,8 +146,9 @@
     char buf[1024];
     int descr_len, dev_descr_len, config_descr_len, nb_interfaces;
     int bus_num, addr;
+    char product_name[32];
 
-    if (usb_host_find_device(&bus_num, &addr, devname) < 0) 
+    if (usb_host_find_device(&bus_num, &addr, product_name, devname) < 0) 
         return NULL;
     
     snprintf(buf, sizeof(buf), USBDEVFS_PATH "/%03d/%03d", 
@@ -230,6 +232,12 @@
     dev->dev.handle_reset = usb_host_handle_reset;
     dev->dev.handle_control = usb_host_handle_control;
     dev->dev.handle_data = usb_host_handle_data;
+
+    if (product_name[0] == '\0')
+        snprintf(dev->dev.devname, 31, "host:%s", devname);
+    else
+        strncpy(dev->dev.devname, product_name, 31);
+
     return (USBDevice *)dev;
 }
 
@@ -337,6 +345,7 @@
     int product_id;
     int bus_num;
     int addr;
+    char product_name[32];
 } FindDeviceState;
 
 static int usb_host_find_device_scan(void *opaque, int bus_num, int addr, 
@@ -345,8 +354,11 @@
                                      const char *product_name, int speed)
 {
     FindDeviceState *s = opaque;
-    if (vendor_id == s->vendor_id &&
-        product_id == s->product_id) {
+    if ((vendor_id == s->vendor_id &&
+        product_id == s->product_id) ||
+        (bus_num == s->bus_num &&
+        addr == s->addr)) {
+        strncpy(s->product_name, product_name, 31);
         s->bus_num = bus_num;
         s->addr = addr;
         return 1;
@@ -358,7 +370,8 @@
 /* the syntax is : 
    'bus.addr' (decimal numbers) or 
    'vendor_id:product_id' (hexa numbers) */
-static int usb_host_find_device(int *pbus_num, int *paddr, 
+static int usb_host_find_device(int *pbus_num, int *paddr,
+                                char *product_name,
                                 const char *devname)
 {
     const char *p;
@@ -369,6 +382,11 @@
     if (p) {
         *pbus_num = strtoul(devname, NULL, 0);
         *paddr = strtoul(p + 1, NULL, 0);
+        fs.bus_num = *pbus_num;
+        fs.addr = *paddr;
+        ret = usb_host_scan(&fs, usb_host_find_device_scan);
+        if (ret)
+            strcpy(product_name, fs.product_name);
         return 0;
     }
     p = strchr(devname, ':');
@@ -379,6 +397,7 @@
         if (ret) {
             *pbus_num = fs.bus_num;
             *paddr = fs.addr;
+            strcpy(product_name, fs.product_name);
             return 0;
         }
     }
--- qemu/vl.c	2006-05-21 11:30:15.000000000 -0500
+++ qemu/vl.c	2006-05-22 14:49:58.000000000 -0500
@@ -3387,8 +3422,8 @@
             speed_str = "?"; 
             break;
         }
-        term_printf("  Device %d.%d, speed %s Mb/s\n", 
-                    0, dev->addr, speed_str);
+        term_printf("  Device %d.%d, Speed %s Mb/s, Product %s\n", 
+                    0, dev->addr, speed_str, dev->devname);
     }
 }
 

  reply	other threads:[~2006-05-22 20:16 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-22 20:12 [Qemu-devel] [usb] display device identifier string for user with info usb Lonnie Mendez
2006-05-22 20:15 ` Lonnie Mendez [this message]
     [not found]   ` <4490367D.605@bellard.org>
2006-06-15  7:52     ` Lonnie Mendez

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44721BFC.3080504@austin.rr.com \
    --to=lmendez19@austin.rr.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).