From: Lonnie Mendez <lmendez19@austin.rr.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [usb] display device identifier string for user with info usb
Date: Mon, 22 May 2006 15:12:38 -0500 [thread overview]
Message-ID: <44721B36.1070909@austin.rr.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 316 bytes --]
The attached patch provides more output to accompany info usb. A
device name is provided which is obtained from product string
descriptor. This is to help clear up what device is which as the only
information currently provided to the user are the bus and address the
device has been given from the guest.
[-- Attachment #2: qemu-info-usb.diff --]
[-- Type: text/plain, Size: 4031 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;
}
}
next reply other threads:[~2006-05-22 20:12 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-22 20:12 Lonnie Mendez [this message]
2006-05-22 20:15 ` [Qemu-devel] [usb] display device identifier string for user with info usb Lonnie Mendez
[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=44721B36.1070909@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).