linux-headers (unknown)

(root)/
include/
linux/
vfio_ccw.h
       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