qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v9 28/30] ide: add calling add_boot_device_patch in


From: arei.gonglei
Subject: [Qemu-devel] [PATCH v9 28/30] ide: add calling add_boot_device_patch in bootindex setter function
Date: Wed, 10 Sep 2014 20:31:24 +0800

From: Gonglei <address@hidden>

On this way, we can assure the new bootindex take effect
during vm rebooting. Meanwhile set the initial value of
bootindex to -1.

Because ide devcies's unit property maybe
do not initialize when set_bootindex function is called,
so that we don't know its suffix. So we have to save the
call add_boot_device_path() on ide realize/init function.
When we want to change bootindex during vm rebooting, we
can call it in setter function.

Signed-off-by: Gonglei <address@hidden>
---
 hw/ide/qdev.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index 7feef9b..4b30541 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -219,6 +219,10 @@ static void ide_dev_set_bootindex(Object *obj, Visitor *v, 
void *opaque,
     /* change bootindex to a new one */
     d->conf.bootindex = boot_index;
 
+    if (d->unit != -1) {
+       add_boot_device_path(d->conf.bootindex, &d->qdev,
+                            d->unit ? "/address@hidden" : "/address@hidden");
+    }
 out:
     if (local_err) {
         error_propagate(errp, local_err);
@@ -230,6 +234,7 @@ static void ide_dev_instance_init(Object *obj)
     object_property_add(obj, "bootindex", "int",
                         ide_dev_get_bootindex,
                         ide_dev_set_bootindex, NULL, NULL, NULL);
+    object_property_set_int(obj, -1, "bootindex", NULL);
 }
 
 static int ide_hd_initfn(IDEDevice *dev)
-- 
1.7.12.4





reply via email to

[Prev in Thread] Current Thread [Next in Thread]