qemu

FORK: QEMU emulator
git clone https://git.neptards.moe/neptards/qemu.git
Log | Files | Refs | Submodules | LICENSE

vfio_ccw.h (1317B)


      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 /*
     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 } __attribute__((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 } __attribute__((packed));
     55 
     56 #endif