summaryrefslogtreecommitdiff
path: root/hw/s390x/s390-ccw.c
diff options
context:
space:
mode:
authorCornelia Huck <cohuck@redhat.com>2019-05-07 17:47:33 +0200
committerCornelia Huck <cohuck@redhat.com>2019-06-24 17:27:57 +0200
commit8fadea24de4ef83dd2db3a9cd06b384fd820b9db (patch)
treeaab722dbd72a8690a2cc024a879cd95802873656 /hw/s390x/s390-ccw.c
parentb5e89f044dea477cef0f8bf5da52035369d95157 (diff)
downloadqemu-8fadea24de4ef83dd2db3a9cd06b384fd820b9db.zip
vfio-ccw: support async command subregion
A vfio-ccw device may provide an async command subregion for issuing halt/clear subchannel requests. If it is present, use it for sending halt/clear request to the device; if not, fall back to emulation (as done today). Reviewed-by: Farhan Ali <alifm@linux.ibm.com> Message-Id: <20190613092542.2834-1-cohuck@redhat.com> Reviewed-by: Eric Farman <farman@linux.ibm.com> Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to 'hw/s390x/s390-ccw.c')
-rw-r--r--hw/s390x/s390-ccw.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/hw/s390x/s390-ccw.c b/hw/s390x/s390-ccw.c
index 8403f0e3e9..22c6878b84 100644
--- a/hw/s390x/s390-ccw.c
+++ b/hw/s390x/s390-ccw.c
@@ -30,6 +30,26 @@ IOInstEnding s390_ccw_cmd_request(SubchDev *sch)
return cdc->handle_request(sch);
}
+int s390_ccw_halt(SubchDev *sch)
+{
+ S390CCWDeviceClass *cdc = S390_CCW_DEVICE_GET_CLASS(sch->driver_data);
+
+ if (!cdc->handle_halt) {
+ return -ENOSYS;
+ }
+ return cdc->handle_halt(sch);
+}
+
+int s390_ccw_clear(SubchDev *sch)
+{
+ S390CCWDeviceClass *cdc = S390_CCW_DEVICE_GET_CLASS(sch->driver_data);
+
+ if (!cdc->handle_clear) {
+ return -ENOSYS;
+ }
+ return cdc->handle_clear(sch);
+}
+
static void s390_ccw_get_dev_info(S390CCWDevice *cdev,
char *sysfsdev,
Error **errp)