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);
}
}
next prev parent 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.