[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH COLO-BLOCK v8 06/18] introduce a new API to enable/d
From: |
Wen Congyang |
Subject: |
[Qemu-devel] [PATCH COLO-BLOCK v8 06/18] introduce a new API to enable/disable attach device model |
Date: |
Tue, 7 Jul 2015 16:43:04 +0800 |
Signed-off-by: Wen Congyang <address@hidden>
---
block/block-backend.c | 24 ++++++++++++++++++++++++
include/sysemu/block-backend.h | 2 ++
2 files changed, 26 insertions(+)
diff --git a/block/block-backend.c b/block/block-backend.c
index aee8a12..72d8b2c 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -344,6 +344,30 @@ void *blk_get_attached_dev(BlockBackend *blk)
}
/*
+ * Disable to attach a device mode to @blk.
+ * Return 0 on success, -EBUSY when a device model is attached already.
+ */
+int blk_disable_attach_dev(BlockBackend *blk)
+{
+ if (blk->dev) {
+ return blk->dev == (void *)-1 ? 0 : -EBUSY;
+ }
+
+ blk->dev = (void *)-1;
+ return 0;
+}
+
+/*
+ * Enable to attach a device mode to @blk.
+ */
+void blk_enable_attach_dev(BlockBackend *blk)
+{
+ if (blk->dev == (void *)-1) {
+ blk->dev = NULL;
+ }
+}
+
+/*
* Set @blk's device model callbacks to @ops.
* @opaque is the opaque argument to pass to the callbacks.
* This is for use by device models.
diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h
index 8fc960f..7619a9f 100644
--- a/include/sysemu/block-backend.h
+++ b/include/sysemu/block-backend.h
@@ -80,6 +80,8 @@ int blk_attach_dev(BlockBackend *blk, void *dev);
void blk_attach_dev_nofail(BlockBackend *blk, void *dev);
void blk_detach_dev(BlockBackend *blk, void *dev);
void *blk_get_attached_dev(BlockBackend *blk);
+int blk_disable_attach_dev(BlockBackend *blk);
+void blk_enable_attach_dev(BlockBackend *blk);
void blk_set_dev_ops(BlockBackend *blk, const BlockDevOps *ops, void *opaque);
int blk_read(BlockBackend *blk, int64_t sector_num, uint8_t *buf,
int nb_sectors);
--
2.4.3
- [Qemu-devel] [PATCH COLO-BLOCK v8 00/18] Block replication for continuous checkpoints, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 01/18] Add new block driver interface to add/delete a BDS's child, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 02/18] quorum: implement block driver interfaces add/delete a BDS's child, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 04/18] introduce a new API qemu_opts_absorb_qdict_by_index(), Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 05/18] quorum: allow ignoring child errors, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 07/18] introduce a new API to check if blk is attached, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 06/18] introduce a new API to enable/disable attach device model,
Wen Congyang <=
- [Qemu-devel] [PATCH COLO-BLOCK v8 08/18] block: make bdrv_put_ref_bh_schedule() as a public API, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 09/18] Backup: clear all bitmap when doing block checkpoint, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 10/18] allow writing to the backing file, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 12/18] block: Allow references for backing files, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 13/18] docs: block replication's description, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 14/18] Add new block driver interfaces to control block replication, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 15/18] skip nbd_target when starting block replication, Wen Congyang, 2015/07/07
- [Qemu-devel] [PATCH COLO-BLOCK v8 16/18] quorum: implement block driver interfaces for block replication, Wen Congyang, 2015/07/07