[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 30/34] nvma: ide: add bootindex to qom property
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 30/34] nvma: ide: add bootindex to qom property |
Date: |
Wed, 15 Oct 2014 11:06:03 +0200 |
From: Gonglei <address@hidden>
At present, nvma cannot boot. However, it provides already
a bootindex property, so change bootindex to qom for nvma
device, but not call add_boot_device_path.
Signed-off-by: Gonglei <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/block/nvme.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/hw/block/nvme.c b/hw/block/nvme.c
index b010c9b..9a95f75 100644
--- a/hw/block/nvme.c
+++ b/hw/block/nvme.c
@@ -24,6 +24,8 @@
#include <hw/hw.h>
#include <hw/pci/msix.h>
#include <hw/pci/pci.h>
+#include "sysemu/sysemu.h"
+#include "qapi/visitor.h"
#include "nvme.h"
@@ -871,11 +873,53 @@ static void nvme_class_init(ObjectClass *oc, void *data)
dc->vmsd = &nvme_vmstate;
}
+static void nvme_get_bootindex(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ NvmeCtrl *s = NVME(obj);
+
+ visit_type_int32(v, &s->conf.bootindex, name, errp);
+}
+
+static void nvme_set_bootindex(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ NvmeCtrl *s = NVME(obj);
+ int32_t boot_index;
+ Error *local_err = NULL;
+
+ visit_type_int32(v, &boot_index, name, &local_err);
+ if (local_err) {
+ goto out;
+ }
+ /* check whether bootindex is present in fw_boot_order list */
+ check_boot_index(boot_index, &local_err);
+ if (local_err) {
+ goto out;
+ }
+ /* change bootindex to a new one */
+ s->conf.bootindex = boot_index;
+
+out:
+ if (local_err) {
+ error_propagate(errp, local_err);
+ }
+}
+
+static void nvme_instance_init(Object *obj)
+{
+ object_property_add(obj, "bootindex", "int32",
+ nvme_get_bootindex,
+ nvme_set_bootindex, NULL, NULL, NULL);
+ object_property_set_int(obj, -1, "bootindex", NULL);
+}
+
static const TypeInfo nvme_info = {
.name = "nvme",
.parent = TYPE_PCI_DEVICE,
.instance_size = sizeof(NvmeCtrl),
.class_init = nvme_class_init,
+ .instance_init = nvme_instance_init,
};
static void nvme_register_types(void)
--
1.8.3.1
- [Qemu-devel] [PULL 11/34] ne2000: add bootindex to qom property, (continued)
- [Qemu-devel] [PULL 11/34] ne2000: add bootindex to qom property, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 15/34] vmxnet3: add bootindex to qom property, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 31/34] ide: add calling add_boot_device_patch in bootindex setter function, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 18/34] virtio-net: alias bootindex property explicitly for virt-net-pci/ccw/s390, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 14/34] spapr_lian: add bootindex to qom property, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 09/34] e1000: add bootindex to qom property, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 07/34] bootindex: add a setter/getter functions wrapper for bootindex property, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 12/34] pcnet: add bootindex to qom property, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 04/34] fw_cfg: add fw_cfg_machine_reset function, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 22/34] redirect: remove bootindex property from qdev to qom, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 30/34] nvma: ide: add bootindex to qom property,
Gerd Hoffmann <=
- [Qemu-devel] [PULL 32/34] bootindex: move calling add_boot_device_patch to bootindex setter function, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 34/34] bootindex: change fprintf to error_report, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 05/34] bootindex: rework add_boot_device_path function, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 28/34] virtio-blk: alias bootindex property explicitly for virt-blk-pci/ccw/s390, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 10/34] eepro100: add bootindex to qom property, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 16/34] usb-net: add bootindex to qom property, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 20/34] pci-assign: remove bootindex property from qdev to qom, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 19/34] host-libusb: remove bootindex property from qdev to qom, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 27/34] block: remove bootindex property from qdev to qom, Gerd Hoffmann, 2014/10/15
- [Qemu-devel] [PULL 29/34] usb-storage: add bootindex to qom property, Gerd Hoffmann, 2014/10/15