Patchwork [1/2] v2 Add drive_get_by_id

login
register
mail settings
Submitter Ryan Harper
Date Oct. 22, 2010, 2:55 a.m.
Message ID <1287716153-25305-2-git-send-email-ryanh@us.ibm.com>
Download mbox | patch
Permalink /patch/68793/
State New
Headers show

Comments

Ryan Harper - Oct. 22, 2010, 2:55 a.m.
Add a function to find a drive by id string.

Changes since v1:
-Coding Style fix

Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
---
 blockdev.c |   13 +++++++++++++
 blockdev.h |    1 +
 2 files changed, 14 insertions(+), 0 deletions(-)
Luiz Capitulino - Oct. 22, 2010, 3:41 p.m.
On Thu, 21 Oct 2010 21:55:52 -0500
Ryan Harper <ryanh@us.ibm.com> wrote:

> Add a function to find a drive by id string.
> 
> Changes since v1:
> -Coding Style fix
> 
> Signed-off-by: Ryan Harper <ryanh@us.ibm.com>
> ---
>  blockdev.c |   13 +++++++++++++
>  blockdev.h |    1 +
>  2 files changed, 14 insertions(+), 0 deletions(-)
> 
> diff --git a/blockdev.c b/blockdev.c
> index ff7602b..5fc3b9b 100644
> --- a/blockdev.c
> +++ b/blockdev.c
> @@ -75,6 +75,19 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit)
>      return NULL;
>  }
>  
> +DriveInfo *drive_get_by_id(const char *id)
> +{
> +    DriveInfo *dinfo;
> +
> +    QTAILQ_FOREACH(dinfo, &drives, next) {
> +        if (strcmp(id, dinfo->id)) {
> +            continue;
> +        }

Very minor, but the following allows you to drop a statement:

if (!strcmp()) {
  return dinfo;
}

> +        return dinfo;
> +    }
> +    return NULL;
> +}
> +
>  int drive_get_max_bus(BlockInterfaceType type)
>  {
>      int max_bus;
> diff --git a/blockdev.h b/blockdev.h
> index 653affc..19c6915 100644
> --- a/blockdev.h
> +++ b/blockdev.h
> @@ -38,6 +38,7 @@ DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit);
>  int drive_get_max_bus(BlockInterfaceType type);
>  void drive_uninit(DriveInfo *dinfo);
>  DriveInfo *drive_get_by_blockdev(BlockDriverState *bs);
> +DriveInfo *drive_get_by_id(const char *id);
>  
>  QemuOpts *drive_add(const char *file, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
>  DriveInfo *drive_init(QemuOpts *arg, int default_to_scsi, int *fatal_error);

Patch

diff --git a/blockdev.c b/blockdev.c
index ff7602b..5fc3b9b 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -75,6 +75,19 @@  DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit)
     return NULL;
 }
 
+DriveInfo *drive_get_by_id(const char *id)
+{
+    DriveInfo *dinfo;
+
+    QTAILQ_FOREACH(dinfo, &drives, next) {
+        if (strcmp(id, dinfo->id)) {
+            continue;
+        }
+        return dinfo;
+    }
+    return NULL;
+}
+
 int drive_get_max_bus(BlockInterfaceType type)
 {
     int max_bus;
diff --git a/blockdev.h b/blockdev.h
index 653affc..19c6915 100644
--- a/blockdev.h
+++ b/blockdev.h
@@ -38,6 +38,7 @@  DriveInfo *drive_get(BlockInterfaceType type, int bus, int unit);
 int drive_get_max_bus(BlockInterfaceType type);
 void drive_uninit(DriveInfo *dinfo);
 DriveInfo *drive_get_by_blockdev(BlockDriverState *bs);
+DriveInfo *drive_get_by_id(const char *id);
 
 QemuOpts *drive_add(const char *file, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
 DriveInfo *drive_init(QemuOpts *arg, int default_to_scsi, int *fatal_error);