[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 5/8] block: add a callback layer for common func
From: |
Wenchao Xia |
Subject: |
[Qemu-devel] [RFC PATCH 5/8] block: add a callback layer for common functions |
Date: |
Thu, 12 Sep 2013 17:15:09 +0800 |
This structure can hold some call back functions, such as
event emit, error printf. By using call back, block layer
can be decoupled with other components.
Signed-off-by: Wenchao Xia <address@hidden>
---
block.c | 7 +++++++
include/block/block.h | 11 +++++++++++
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/block.c b/block.c
index 07385bf..576b86e 100644
--- a/block.c
+++ b/block.c
@@ -55,6 +55,13 @@ typedef enum {
BDRV_REQ_ZERO_WRITE = 0x2,
} BdrvRequestFlags;
+BDRVCommonHooks bdrv_common_hooks;
+
+void bdrv_set_common_hooks(BDRVCommonHooks *hooks)
+{
+ bdrv_common_hooks = *hooks;
+}
+
static void bdrv_dev_change_media_cb(BlockDriverState *bs, bool load);
static BlockDriverAIOCB *bdrv_aio_readv_em(BlockDriverState *bs,
int64_t sector_num, QEMUIOVector *qiov, int nb_sectors,
diff --git a/include/block/block.h b/include/block/block.h
index 728ec1a..7913f48 100644
--- a/include/block/block.h
+++ b/include/block/block.h
@@ -119,6 +119,17 @@ typedef struct BDRVReopenState {
void *opaque;
} BDRVReopenState;
+/*
+ * Now all block layer use same hooks, If needed it can be changed as per
+ * bds.
+ */
+typedef struct BDRVCommonHooks {
+ void (*hooks)(void *);
+} BDRVCommonHooks;
+
+extern BDRVCommonHooks bdrv_common_hooks;
+
+void bdrv_set_common_hooks(BDRVCommonHooks *hooks);
void bdrv_iostatus_enable(BlockDriverState *bs);
void bdrv_iostatus_reset(BlockDriverState *bs);
--
1.7.1
- [Qemu-devel] [RFC PATCH 0/8] Remove stub mon-protocol-event for block, Wenchao Xia, 2013/09/12
- [Qemu-devel] [RFC PATCH 1/8] block: use type MonitorEvent directly, Wenchao Xia, 2013/09/12
- [Qemu-devel] [RFC PATCH 2/8] block: do not include monitor.h in block.c, Wenchao Xia, 2013/09/12
- [Qemu-devel] [RFC PATCH 4/8] qapi: rename MonitorEvent to QEvent, Wenchao Xia, 2013/09/12
- [Qemu-devel] [RFC PATCH 3/8] qapi: move MonitorEvent define, Wenchao Xia, 2013/09/12
- [Qemu-devel] [RFC PATCH 8/8] stubs: remove mon-protocol-event.o in stub obj, Wenchao Xia, 2013/09/12
- [Qemu-devel] [RFC PATCH 6/8] block: replace monitor_protocol_event() with callback, Wenchao Xia, 2013/09/12
- [Qemu-devel] [RFC PATCH 7/8] block: do not include monitor.h, Wenchao Xia, 2013/09/12
- [Qemu-devel] [RFC PATCH 5/8] block: add a callback layer for common functions,
Wenchao Xia <=
- Re: [Qemu-devel] [RFC PATCH 0/8] Remove stub mon-protocol-event for block, Paolo Bonzini, 2013/09/12