16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2060d2b5aSDong Jia Shi /* 3060d2b5aSDong Jia Shi * Interfaces for vfio-ccw 4060d2b5aSDong Jia Shi * 5060d2b5aSDong Jia Shi * Copyright IBM Corp. 2017 6060d2b5aSDong Jia Shi * 7060d2b5aSDong Jia Shi * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> 8060d2b5aSDong Jia Shi */ 9060d2b5aSDong Jia Shi 10060d2b5aSDong Jia Shi #ifndef _VFIO_CCW_H_ 11060d2b5aSDong Jia Shi #define _VFIO_CCW_H_ 12060d2b5aSDong Jia Shi 13060d2b5aSDong Jia Shi #include <linux/types.h> 14060d2b5aSDong Jia Shi 15d5afd5d1SCornelia Huck /* used for START SUBCHANNEL, always present */ 16060d2b5aSDong Jia Shi struct ccw_io_region { 17060d2b5aSDong Jia Shi #define ORB_AREA_SIZE 12 18060d2b5aSDong Jia Shi __u8 orb_area[ORB_AREA_SIZE]; 19060d2b5aSDong Jia Shi #define SCSW_AREA_SIZE 12 20060d2b5aSDong Jia Shi __u8 scsw_area[SCSW_AREA_SIZE]; 21060d2b5aSDong Jia Shi #define IRB_AREA_SIZE 96 22060d2b5aSDong Jia Shi __u8 irb_area[IRB_AREA_SIZE]; 23060d2b5aSDong Jia Shi __u32 ret_code; 24060d2b5aSDong Jia Shi } __packed; 25060d2b5aSDong Jia Shi 26d5afd5d1SCornelia Huck /* 27d5afd5d1SCornelia Huck * used for processing commands that trigger asynchronous actions 28d5afd5d1SCornelia Huck * Note: this is controlled by a capability 29d5afd5d1SCornelia Huck */ 30d5afd5d1SCornelia Huck #define VFIO_CCW_ASYNC_CMD_HSCH (1 << 0) 31d5afd5d1SCornelia Huck #define VFIO_CCW_ASYNC_CMD_CSCH (1 << 1) 32d5afd5d1SCornelia Huck struct ccw_cmd_region { 33d5afd5d1SCornelia Huck __u32 command; 34d5afd5d1SCornelia Huck __u32 ret_code; 35d5afd5d1SCornelia Huck } __packed; 36d5afd5d1SCornelia Huck 3724c98674SFarhan Ali /* 3824c98674SFarhan Ali * Used for processing commands that read the subchannel-information block 3924c98674SFarhan Ali * Reading this region triggers a stsch() to hardware 4024c98674SFarhan Ali * Note: this is controlled by a capability 4124c98674SFarhan Ali */ 4224c98674SFarhan Ali struct ccw_schib_region { 4324c98674SFarhan Ali #define SCHIB_AREA_SIZE 52 4424c98674SFarhan Ali __u8 schib_area[SCHIB_AREA_SIZE]; 4524c98674SFarhan Ali } __packed; 4624c98674SFarhan Ali 47*d8cac29bSFarhan Ali /* 48*d8cac29bSFarhan Ali * Used for returning a Channel Report Word to userspace. 49*d8cac29bSFarhan Ali * Note: this is controlled by a capability 50*d8cac29bSFarhan Ali */ 51*d8cac29bSFarhan Ali struct ccw_crw_region { 52*d8cac29bSFarhan Ali __u32 crw; 53*d8cac29bSFarhan Ali __u32 pad; 54*d8cac29bSFarhan Ali } __packed; 55*d8cac29bSFarhan Ali 56060d2b5aSDong Jia Shi #endif 57