@@ -2332,6 +2332,31 @@ static void scsi_disk_realize(SCSIDevice *dev, Error **errp)
}
}
+static void scsi_dev_get_bootindex(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ DeviceState *dev = DEVICE(obj);
+ SCSIDevice *s = DO_UPCAST(SCSIDevice, qdev, dev);
+
+ get_bootindex(&s->conf.bootindex, v, name, errp);
+}
+
+static void scsi_dev_set_bootindex(Object *obj, Visitor *v, void *opaque,
+ const char *name, Error **errp)
+{
+ DeviceState *dev = DEVICE(obj);
+ SCSIDevice *s = DO_UPCAST(SCSIDevice, qdev, dev);
+
+ set_bootindex(&s->conf.bootindex, v, name, errp);
+}
+
+void scsi_dev_instance_init(Object *obj)
+{
+ object_property_add(obj, "bootindex", "int",
+ scsi_dev_get_bootindex,
+ scsi_dev_set_bootindex, NULL, NULL, NULL);
+}
+
static const SCSIReqOps scsi_disk_emulate_reqops = {
.size = sizeof(SCSIDiskReq),
.free_req = scsi_free_request,
@@ -2645,6 +2670,7 @@ static const TypeInfo scsi_hd_info = {
.parent = TYPE_SCSI_DEVICE,
.instance_size = sizeof(SCSIDiskState),
.class_init = scsi_hd_class_initfn,
+ .instance_init = scsi_dev_instance_init,
};
static Property scsi_cd_properties[] = {
@@ -2676,6 +2702,7 @@ static const TypeInfo scsi_cd_info = {
.parent = TYPE_SCSI_DEVICE,
.instance_size = sizeof(SCSIDiskState),
.class_init = scsi_cd_class_initfn,
+ .instance_init = scsi_dev_instance_init,
};
#ifdef __linux__
@@ -2706,6 +2733,7 @@ static const TypeInfo scsi_block_info = {
.parent = TYPE_SCSI_DEVICE,
.instance_size = sizeof(SCSIDiskState),
.class_init = scsi_block_class_initfn,
+ .instance_init = scsi_dev_instance_init,
};
#endif
@@ -2744,6 +2772,7 @@ static const TypeInfo scsi_disk_info = {
.parent = TYPE_SCSI_DEVICE,
.instance_size = sizeof(SCSIDiskState),
.class_init = scsi_disk_class_initfn,
+ .instance_init = scsi_dev_instance_init,
};
static void scsi_disk_register_types(void)
@@ -514,6 +514,7 @@ static const TypeInfo scsi_generic_info = {
.parent = TYPE_SCSI_DEVICE,
.instance_size = sizeof(SCSIDevice),
.class_init = scsi_generic_class_initfn,
+ .instance_init = scsi_dev_instance_init,
};
static void scsi_generic_register_types(void)
@@ -270,4 +270,5 @@ SCSIDevice *scsi_device_find(SCSIBus *bus, int channel, int target, int lun);
/* scsi-generic.c. */
extern const SCSIReqOps scsi_generic_req_ops;
+void scsi_dev_instance_init(Object *obj);
#endif