All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] Fwd: [PATCH v2 1/6] geometry: add bdrv functions for geometry and blocksize
       [not found] <1416327001-22278-2-git-send-email-tumanova@linux.vnet.ibm.com>
@ 2014-11-18 16:15 ` Ekaterina Tumanova
  0 siblings, 0 replies; only message in thread
From: Ekaterina Tumanova @ 2014-11-18 16:15 UTC (permalink / raw)
  To: qemu-devel


copying to mail list

-------- Forwarded Message --------
Subject: [PATCH v2 1/6] geometry: add bdrv functions for geometry and 
blocksize
Date: Tue, 18 Nov 2014 17:09:56 +0100
From: Ekaterina Tumanova <tumanova@linux.vnet.ibm.com>
To: armbru@redhat.com, pbonzini@redhat.com, stefanha@redhat.com, 
kwolf@redhat.com
CC: borntraeger@de.ibm.com, cornelia.huck@de.ibm.com, 
dahi@linux.vnet.ibm.com, mihajlov@linux.vnet.ibm.com, Ekaterina Tumanova 
<tumanova@linux.vnet.ibm.com>

Add driver functions for geometry and blocksize detection

Signed-off-by: Ekaterina Tumanova <tumanova@linux.vnet.ibm.com>
---
  block.c                   | 26 ++++++++++++++++++++++++++
  include/block/block.h     | 20 ++++++++++++++++++++
  include/block/block_int.h |  3 +++
  3 files changed, 49 insertions(+)

diff --git a/block.c b/block.c
index a612594..5df35cf 100644
--- a/block.c
+++ b/block.c
@@ -548,6 +548,32 @@ void bdrv_refresh_limits(BlockDriverState *bs, 
Error **errp)
      }
  }

+struct ProbeBlockSize bdrv_probe_blocksizes(BlockDriverState *bs)
+{
+    BlockDriver *drv = bs->drv;
+    struct ProbeBlockSize err_geo = { .rc = -1 };
+
+    assert(drv != NULL);
+    if (drv->bdrv_probe_blocksizes) {
+        return drv->bdrv_probe_blocksizes(bs);
+    }
+
+    return err_geo;
+}
+
+struct ProbeGeometry bdrv_probe_geometry(BlockDriverState *bs)
+{
+    BlockDriver *drv = bs->drv;
+    struct ProbeGeometry err_geo = { .rc = -1 };
+
+    assert(drv != NULL);
+    if (drv->bdrv_probe_geometry) {
+        return drv->bdrv_probe_geometry(bs);
+    }
+
+    return err_geo;
+}
+
  /*
   * Create a uniquely-named empty temporary file.
   * Return 0 upon success, otherwise a negative errno value.
diff --git a/include/block/block.h b/include/block/block.h
index 5450610..3287dbc 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -60,6 +60,24 @@ typedef enum {
      BDRV_REQ_MAY_UNMAP    = 0x4,
  } BdrvRequestFlags;

+struct ProbeBlockSize {
+    int rc;
+    struct BlockSize {
+        uint16_t phys;
+        uint16_t log;
+    } size;
+};
+
+struct ProbeGeometry {
+    int rc;
+    struct HDGeometry {
+        uint32_t heads;
+        uint32_t sectors;
+        uint32_t cylinders;
+        uint32_t start;
+    } geo;
+};
+
  #define BDRV_O_RDWR        0x0002
  #define BDRV_O_SNAPSHOT    0x0008 /* open the file read only and save 
writes in a snapshot */
  #define BDRV_O_TEMPORARY   0x0010 /* delete the file after use */
@@ -538,6 +556,8 @@ AioContext *bdrv_get_aio_context(BlockDriverState *bs);
   * the old #AioContext is not executing.
   */
  void bdrv_set_aio_context(BlockDriverState *bs, AioContext *new_context);
+struct ProbeBlockSize bdrv_probe_blocksizes(BlockDriverState *bs);
+struct ProbeGeometry bdrv_probe_geometry(BlockDriverState *bs);

  void bdrv_io_plug(BlockDriverState *bs);
  void bdrv_io_unplug(BlockDriverState *bs);
diff --git a/include/block/block_int.h b/include/block/block_int.h
index a1c17b9..830e564 100644
--- a/include/block/block_int.h
+++ b/include/block/block_int.h
@@ -271,6 +271,9 @@ struct BlockDriver {
      void (*bdrv_io_unplug)(BlockDriverState *bs);
      void (*bdrv_flush_io_queue)(BlockDriverState *bs);

+    struct ProbeBlockSize (*bdrv_probe_blocksizes)(BlockDriverState *bs);
+    struct ProbeGeometry (*bdrv_probe_geometry)(BlockDriverState *bs);
+
      QLIST_ENTRY(BlockDriver) list;
  };

-- 
1.8.5.5

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2014-11-18 16:15 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <1416327001-22278-2-git-send-email-tumanova@linux.vnet.ibm.com>
2014-11-18 16:15 ` [Qemu-devel] Fwd: [PATCH v2 1/6] geometry: add bdrv functions for geometry and blocksize Ekaterina Tumanova

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.