qemu

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

vfio_zdev.h (2542B)


      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  */
     23 struct 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 	/* End of version 1 */
     33 	__u32 fh;		/* PCI function handle */
     34 	/* End of version 2 */
     35 };
     36 
     37 /**
     38  * VFIO_DEVICE_INFO_CAP_ZPCI_GROUP - Base PCI Function Group information
     39  *
     40  * This capability provides a set of descriptive information about the group of
     41  * PCI functions that the associated device belongs to.
     42  */
     43 struct vfio_device_info_cap_zpci_group {
     44 	struct vfio_info_cap_header header;
     45 	__u64 dasm;		/* DMA Address space mask */
     46 	__u64 msi_addr;		/* MSI address */
     47 	__u64 flags;
     48 #define VFIO_DEVICE_INFO_ZPCI_FLAG_REFRESH 1 /* Program-specified TLB refresh */
     49 	__u16 mui;		/* Measurement Block Update Interval */
     50 	__u16 noi;		/* Maximum number of MSIs */
     51 	__u16 maxstbl;		/* Maximum Store Block Length */
     52 	__u8 version;		/* Supported PCI Version */
     53 	/* End of version 1 */
     54 	__u8 reserved;
     55 	__u16 imaxstbl;		/* Maximum Interpreted Store Block Length */
     56 	/* End of version 2 */
     57 };
     58 
     59 /**
     60  * VFIO_DEVICE_INFO_CAP_ZPCI_UTIL - Utility String
     61  *
     62  * This capability provides the utility string for the associated device, which
     63  * is a device identifier string made up of EBCDID characters.  'size' specifies
     64  * the length of 'util_str'.
     65  */
     66 struct vfio_device_info_cap_zpci_util {
     67 	struct vfio_info_cap_header header;
     68 	__u32 size;
     69 	__u8 util_str[];
     70 };
     71 
     72 /**
     73  * VFIO_DEVICE_INFO_CAP_ZPCI_PFIP - PCI Function Path
     74  *
     75  * This capability provides the PCI function path string, which is an identifier
     76  * that describes the internal hardware path of the device. 'size' specifies
     77  * the length of 'pfip'.
     78  */
     79 struct vfio_device_info_cap_zpci_pfip {
     80 	struct vfio_info_cap_header header;
     81 	__u32 size;
     82 	__u8 pfip[];
     83 };
     84 
     85 #endif