summaryrefslogtreecommitdiff
path: root/hw/s390x/s390-ccw.c
diff options
context:
space:
mode:
authorJason J. Herne <jjherne@linux.ibm.com>2019-04-04 10:34:20 -0400
committerThomas Huth <thuth@redhat.com>2019-04-12 12:39:52 +0200
commit44445d8668f458dec0ecb8bcecdcbf24e6d4251b (patch)
tree1aa420b280325cea5aab9f9b8d65d77d45de078f /hw/s390x/s390-ccw.c
parent532cc6da74ec25b5ba6893b5757c977d54582949 (diff)
downloadqemu-44445d8668f458dec0ecb8bcecdcbf24e6d4251b.zip
s390 vfio-ccw: Add bootindex property and IPLB data
Add bootindex property and iplb data for vfio-ccw devices. This allows us to forward boot information into the bios for vfio-ccw devices. Refactor s390_get_ccw_device() to return device type. This prevents us from having to use messy casting logic in several places. Signed-off-by: Jason J. Herne <jjherne@linux.ibm.com> Acked-by: Halil Pasic <pasic@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Message-Id: <1554388475-18329-2-git-send-email-jjherne@linux.ibm.com> [thuth: fixed "typedef struct VFIOCCWDevice" build failure with clang] Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'hw/s390x/s390-ccw.c')
-rw-r--r--hw/s390x/s390-ccw.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
index cad91ee626..f5f025d1b6 100644
--- a/hw/s390x/s390-ccw.c
+++ b/hw/s390x/s390-ccw.c
@@ -124,6 +124,14 @@ static void s390_ccw_unrealize(S390CCWDevice *cdev, Error **errp)
g_free(cdev->mdevid);
}
+static void s390_ccw_instance_init(Object *obj)
+{
+ S390CCWDevice *dev = S390_CCW_DEVICE(obj);
+
+ device_add_bootindex_property(obj, &dev->bootindex, "bootindex",
+ "/disk@0,0", DEVICE(obj), NULL);
+}
+
static void s390_ccw_class_init(ObjectClass *klass, void *data)
{
DeviceClass *dc = DEVICE_CLASS(klass);
@@ -137,6 +145,7 @@ static void s390_ccw_class_init(ObjectClass *klass, void *data)
static const TypeInfo s390_ccw_info = {
.name = TYPE_S390_CCW,
.parent = TYPE_CCW_DEVICE,
+ .instance_init = s390_ccw_instance_init,
.instance_size = sizeof(S390CCWDevice),
.class_size = sizeof(S390CCWDeviceClass),
.class_init = s390_ccw_class_init,