.. | .. |
---|
12 | 12 | |
---|
13 | 13 | #include <linux/types.h> |
---|
14 | 14 | |
---|
| 15 | +/* used for START SUBCHANNEL, always present */ |
---|
15 | 16 | struct ccw_io_region { |
---|
16 | 17 | #define ORB_AREA_SIZE 12 |
---|
17 | 18 | __u8 orb_area[ORB_AREA_SIZE]; |
---|
.. | .. |
---|
22 | 23 | __u32 ret_code; |
---|
23 | 24 | } __packed; |
---|
24 | 25 | |
---|
| 26 | +/* |
---|
| 27 | + * used for processing commands that trigger asynchronous actions |
---|
| 28 | + * Note: this is controlled by a capability |
---|
| 29 | + */ |
---|
| 30 | +#define VFIO_CCW_ASYNC_CMD_HSCH (1 << 0) |
---|
| 31 | +#define VFIO_CCW_ASYNC_CMD_CSCH (1 << 1) |
---|
| 32 | +struct ccw_cmd_region { |
---|
| 33 | + __u32 command; |
---|
| 34 | + __u32 ret_code; |
---|
| 35 | +} __packed; |
---|
| 36 | + |
---|
| 37 | +/* |
---|
| 38 | + * Used for processing commands that read the subchannel-information block |
---|
| 39 | + * Reading this region triggers a stsch() to hardware |
---|
| 40 | + * Note: this is controlled by a capability |
---|
| 41 | + */ |
---|
| 42 | +struct ccw_schib_region { |
---|
| 43 | +#define SCHIB_AREA_SIZE 52 |
---|
| 44 | + __u8 schib_area[SCHIB_AREA_SIZE]; |
---|
| 45 | +} __packed; |
---|
| 46 | + |
---|
| 47 | +/* |
---|
| 48 | + * Used for returning a Channel Report Word to userspace. |
---|
| 49 | + * Note: this is controlled by a capability |
---|
| 50 | + */ |
---|
| 51 | +struct ccw_crw_region { |
---|
| 52 | + __u32 crw; |
---|
| 53 | + __u32 pad; |
---|
| 54 | +} __packed; |
---|
| 55 | + |
---|
25 | 56 | #endif |
---|