diff options
author | Cornelia Huck | 2019-05-07 17:47:33 +0200 |
---|---|---|
committer | Cornelia Huck | 2019-06-24 17:27:57 +0200 |
commit | 8fadea24de4ef83dd2db3a9cd06b384fd820b9db (patch) | |
tree | aab722dbd72a8690a2cc024a879cd95802873656 /hw/s390x/s390-ccw.c | |
parent | vfio-ccw: use vfio_set_irq_signaling (diff) | |
download | qemu-8fadea24de4ef83dd2db3a9cd06b384fd820b9db.tar.gz qemu-8fadea24de4ef83dd2db3a9cd06b384fd820b9db.tar.xz qemu-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.c | 20 |
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) |