diff options
author | Cornelia Huck <cohuck@redhat.com> | 2018-07-23 16:03:27 +0200 |
---|---|---|
committer | Cornelia Huck <cohuck@redhat.com> | 2019-04-24 14:18:51 +0200 |
commit | d5afd5d135c8cc43bd2568361b4c91f0bd488c3f (patch) | |
tree | 89ed16e6dba457f7fe6f4aeb3aadff90535fb975 /include/uapi | |
parent | b0940857379eb930a4310625c4cd89254e4478b6 (diff) | |
download | linux-d5afd5d135c8cc43bd2568361b4c91f0bd488c3f.tar.gz linux-d5afd5d135c8cc43bd2568361b4c91f0bd488c3f.tar.bz2 linux-d5afd5d135c8cc43bd2568361b4c91f0bd488c3f.zip |
vfio-ccw: add handling for async channel instructions
Add a region to the vfio-ccw device that can be used to submit
asynchronous I/O instructions. ssch continues to be handled by the
existing I/O region; the new region handles hsch and csch.
Interrupt status continues to be reported through the same channels
as for ssch.
Acked-by: Eric Farman <farman@linux.ibm.com>
Reviewed-by: Farhan Ali <alifm@linux.ibm.com>
Signed-off-by: Cornelia Huck <cohuck@redhat.com>
Diffstat (limited to 'include/uapi')
-rw-r--r-- | include/uapi/linux/vfio.h | 2 | ||||
-rw-r--r-- | include/uapi/linux/vfio_ccw.h | 12 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h index 56e2413d3e00..8f10748dac79 100644 --- a/include/uapi/linux/vfio.h +++ b/include/uapi/linux/vfio.h @@ -354,6 +354,8 @@ struct vfio_region_gfx_edid { }; #define VFIO_REGION_TYPE_CCW (2) +/* ccw sub-types */ +#define VFIO_REGION_SUBTYPE_CCW_ASYNC_CMD (1) /* * 10de vendor sub-type diff --git a/include/uapi/linux/vfio_ccw.h b/include/uapi/linux/vfio_ccw.h index 2ec5f367ff78..cbecbf0cd54f 100644 --- a/include/uapi/linux/vfio_ccw.h +++ b/include/uapi/linux/vfio_ccw.h @@ -12,6 +12,7 @@ #include <linux/types.h> +/* used for START SUBCHANNEL, always present */ struct ccw_io_region { #define ORB_AREA_SIZE 12 __u8 orb_area[ORB_AREA_SIZE]; @@ -22,4 +23,15 @@ struct ccw_io_region { __u32 ret_code; } __packed; +/* + * used for processing commands that trigger asynchronous actions + * Note: this is controlled by a capability + */ +#define VFIO_CCW_ASYNC_CMD_HSCH (1 << 0) +#define VFIO_CCW_ASYNC_CMD_CSCH (1 << 1) +struct ccw_cmd_region { + __u32 command; + __u32 ret_code; +} __packed; + #endif |