cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

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 */
     16struct 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)
     32struct 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 */
     42struct 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 */
     51struct ccw_crw_region {
     52	__u32 crw;
     53	__u32 pad;
     54} __attribute__((packed));
     55
     56#endif