From: Gleb Natapov <gleb@redhat.com>
To: qemu-devel@nongnu.org
Cc: kvm@vger.kernel.org, mst@redhat.com, armbru@redhat.com,
blauwirbel@gmail.com, alex.williamson@redhat.com,
kevin@koconnor.net
Subject: [Qemu-devel] [PATCHv5 10/15] Add get_dev_path callback for usb bus.
Date: Mon, 15 Nov 2010 16:31:04 +0200 [thread overview]
Message-ID: <1289831469-25540-11-git-send-email-gleb@redhat.com> (raw)
In-Reply-To: <1289831469-25540-1-git-send-email-gleb@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
---
hw/usb-bus.c | 42 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/hw/usb-bus.c b/hw/usb-bus.c
index 256b881..8b4583c 100644
--- a/hw/usb-bus.c
+++ b/hw/usb-bus.c
@@ -5,11 +5,13 @@
#include "monitor.h"
static void usb_bus_dev_print(Monitor *mon, DeviceState *qdev, int indent);
+static char *usbbus_get_fw_dev_path(DeviceState *dev);
static struct BusInfo usb_bus_info = {
.name = "USB",
.size = sizeof(USBBus),
.print_dev = usb_bus_dev_print,
+ .get_fw_dev_path = usbbus_get_fw_dev_path,
};
static int next_usb_bus = 0;
static QTAILQ_HEAD(, USBBus) busses = QTAILQ_HEAD_INITIALIZER(busses);
@@ -307,3 +309,43 @@ USBDevice *usbdevice_create(const char *cmdline)
}
return usb->usbdevice_init(params);
}
+
+static int usbbus_get_fw_dev_path_helper(USBDevice *d, USBBus *bus, char *p,
+ int len)
+{
+ int l = 0;
+ USBPort *port;
+
+ QTAILQ_FOREACH(port, &bus->used, next) {
+ if (port->dev == d) {
+ if (port->pdev) {
+ l = usbbus_get_fw_dev_path_helper(port->pdev, bus, p, len);
+ }
+ l += snprintf(p + l, len - l, "%s@%x/", qdev_fw_name(&d->qdev),
+ port->index);
+ break;
+ }
+ }
+
+ return l;
+}
+
+static char *usbbus_get_fw_dev_path(DeviceState *dev)
+{
+ USBDevice *d = (USBDevice*)dev;
+ USBBus *bus = usb_bus_from_device(d);
+ char path[100];
+ int l;
+
+ assert(d->attached != 0);
+
+ l = usbbus_get_fw_dev_path_helper(d, bus, path, sizeof(path));
+
+ if (l == 0) {
+ abort();
+ }
+
+ path[l-1] = '\0';
+
+ return strdup(path);
+}
--
1.7.1
next prev parent reply other threads:[~2010-11-15 14:31 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-15 14:30 [Qemu-devel] [PATCHv5 00/15] boot order specification Gleb Natapov
2010-11-15 14:30 ` [Qemu-devel] [PATCHv5 01/15] Introduce fw_name field to DeviceInfo structure Gleb Natapov
2010-11-16 8:09 ` Isaku Yamahata
2010-11-16 8:59 ` Gleb Natapov
2010-11-15 14:30 ` [Qemu-devel] [PATCHv5 02/15] Introduce new BusInfo callback get_fw_dev_path Gleb Natapov
2010-11-15 14:30 ` [Qemu-devel] [PATCHv5 03/15] Keep track of ISA ports ISA device is using in qdev Gleb Natapov
2010-11-15 14:30 ` [Qemu-devel] [PATCHv5 04/15] Add get_fw_dev_path callback to ISA bus " Gleb Natapov
2010-11-15 14:30 ` [Qemu-devel] [PATCHv5 05/15] Store IDE bus id in IDEBus structure for easy access Gleb Natapov
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 06/15] Add get_fw_dev_path callback to IDE bus Gleb Natapov
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 07/15] Add get_dev_path callback for system bus Gleb Natapov
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 08/15] Add get_fw_dev_path callback for pci bus Gleb Natapov
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 09/15] Record which USBDevice USBPort belongs too Gleb Natapov
2010-11-15 14:31 ` Gleb Natapov [this message]
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 11/15] Add bootindex parameter to net/block/fd device Gleb Natapov
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 12/15] Change fw_cfg_add_file() to get full file path as a parameter Gleb Natapov
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 13/15] Add bootindex for option roms Gleb Natapov
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 14/15] Add notifier that will be called when machine is fully created Gleb Natapov
2010-11-15 14:31 ` [Qemu-devel] [PATCHv5 15/15] Pass boot device list to firmware Gleb Natapov
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=1289831469-25540-11-git-send-email-gleb@redhat.com \
--to=gleb@redhat.com \
--cc=alex.williamson@redhat.com \
--cc=armbru@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=kevin@koconnor.net \
--cc=kvm@vger.kernel.org \
--cc=mst@redhat.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).