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 | } __attribute__((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 | } __attribute__((packed)); |
36 | |
37 | #endif |
38 | |