1 | /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ |
2 | /* |
3 | * Interfaces for vfio-ccw |
4 | * |
5 | * Copyright IBM Corp. 2017 |
6 | * |
7 | * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> |
8 | */ |
9 | |
10 | #ifndef _VFIO_CCW_H_ |
11 | #define _VFIO_CCW_H_ |
12 | |
13 | #include <linux/types.h> |
14 | |
15 | /* used for START SUBCHANNEL, always present */ |
16 | struct ccw_io_region { |
17 | #define ORB_AREA_SIZE 12 |
18 | __u8 orb_area[ORB_AREA_SIZE]; |
19 | #define SCSW_AREA_SIZE 12 |
20 | __u8 scsw_area[SCSW_AREA_SIZE]; |
21 | #define IRB_AREA_SIZE 96 |
22 | __u8 irb_area[IRB_AREA_SIZE]; |
23 | __u32 ret_code; |
24 | } __packed; |
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 | |
56 | #endif |
57 | |