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_zdev.h (2329B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2/*
      3 * VFIO Region definitions for ZPCI devices
      4 *
      5 * Copyright IBM Corp. 2020
      6 *
      7 * Author(s): Pierre Morel <pmorel@linux.ibm.com>
      8 *            Matthew Rosato <mjrosato@linux.ibm.com>
      9 */
     10
     11#ifndef _VFIO_ZDEV_H_
     12#define _VFIO_ZDEV_H_
     13
     14#include <linux/types.h>
     15#include <linux/vfio.h>
     16
     17/**
     18 * VFIO_DEVICE_INFO_CAP_ZPCI_BASE - Base PCI Function information
     19 *
     20 * This capability provides a set of descriptive information about the
     21 * associated PCI function.
     22 */
     23struct vfio_device_info_cap_zpci_base {
     24	struct vfio_info_cap_header header;
     25	__u64 start_dma;	/* Start of available DMA addresses */
     26	__u64 end_dma;		/* End of available DMA addresses */
     27	__u16 pchid;		/* Physical Channel ID */
     28	__u16 vfn;		/* Virtual function number */
     29	__u16 fmb_length;	/* Measurement Block Length (in bytes) */
     30	__u8 pft;		/* PCI Function Type */
     31	__u8 gid;		/* PCI function group ID */
     32};
     33
     34/**
     35 * VFIO_DEVICE_INFO_CAP_ZPCI_GROUP - Base PCI Function Group information
     36 *
     37 * This capability provides a set of descriptive information about the group of
     38 * PCI functions that the associated device belongs to.
     39 */
     40struct vfio_device_info_cap_zpci_group {
     41	struct vfio_info_cap_header header;
     42	__u64 dasm;		/* DMA Address space mask */
     43	__u64 msi_addr;		/* MSI address */
     44	__u64 flags;
     45#define VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH 1 /* Program-specified TLB refresh */
     46	__u16 mui;		/* Measurement Block Update Interval */
     47	__u16 noi;		/* Maximum number of MSIs */
     48	__u16 maxstbl;		/* Maximum Store Block Length */
     49	__u8 version;		/* Supported PCI Version */
     50};
     51
     52/**
     53 * VFIO_DEVICE_INFO_CAP_ZPCI_UTIL - Utility String
     54 *
     55 * This capability provides the utility string for the associated device, which
     56 * is a device identifier string made up of EBCDID characters.  'size' specifies
     57 * the length of 'util_str'.
     58 */
     59struct vfio_device_info_cap_zpci_util {
     60	struct vfio_info_cap_header header;
     61	__u32 size;
     62	__u8 util_str[];
     63};
     64
     65/**
     66 * VFIO_DEVICE_INFO_CAP_ZPCI_PFIP - PCI Function Path
     67 *
     68 * This capability provides the PCI function path string, which is an identifier
     69 * that describes the internal hardware path of the device. 'size' specifies
     70 * the length of 'pfip'.
     71 */
     72struct vfio_device_info_cap_zpci_pfip {
     73	struct vfio_info_cap_header header;
     74	__u32 size;
     75	__u8 pfip[];
     76};
     77
     78#endif