[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [usb] display device identifier string for user with in
From: |
Lonnie Mendez |
Subject: |
Re: [Qemu-devel] [usb] display device identifier string for user with info usb |
Date: |
Mon, 22 May 2006 15:15:56 -0500 |
User-agent: |
Mozilla Thunderbird 1.0.7 (X11/20050923) |
Whoops. Wrong patch - missing 1 chunk - please see attached.
--- 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);
}
}