| /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
| /* |
| * Interfaces for vfio-ccw |
| * |
| * Copyright IBM Corp. 2017 |
| * |
| * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> |
| */ |
| |
| #ifndef _VFIO_CCW_H_ |
| #define _VFIO_CCW_H_ |
| |
| #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]; |
| #define SCSW_AREA_SIZE 12 |
| __u8 scsw_area[SCSW_AREA_SIZE]; |
| #define IRB_AREA_SIZE 96 |
| __u8 irb_area[IRB_AREA_SIZE]; |
| __u32 ret_code; |
| } __attribute__((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; |
| } __attribute__((packed)); |
| |
| /* |
| * Used for processing commands that read the subchannel-information block |
| * Reading this region triggers a stsch() to hardware |
| * Note: this is controlled by a capability |
| */ |
| struct ccw_schib_region { |
| #define SCHIB_AREA_SIZE 52 |
| __u8 schib_area[SCHIB_AREA_SIZE]; |
| } __attribute__((packed)); |
| |
| /* |
| * Used for returning a Channel Report Word to userspace. |
| * Note: this is controlled by a capability |
| */ |
| struct ccw_crw_region { |
| __u32 crw; |
| __u32 pad; |
| } __attribute__((packed)); |
| |
| #endif |