cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vfio_fsl_mc_private.h (1256B)


      1/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */
      2/*
      3 * Copyright 2013-2016 Freescale Semiconductor Inc.
      4 * Copyright 2016,2019-2020 NXP
      5 */
      6
      7#ifndef VFIO_FSL_MC_PRIVATE_H
      8#define VFIO_FSL_MC_PRIVATE_H
      9
     10#define VFIO_FSL_MC_OFFSET_SHIFT    40
     11#define VFIO_FSL_MC_OFFSET_MASK (((u64)(1) << VFIO_FSL_MC_OFFSET_SHIFT) - 1)
     12
     13#define VFIO_FSL_MC_OFFSET_TO_INDEX(off) ((off) >> VFIO_FSL_MC_OFFSET_SHIFT)
     14
     15#define VFIO_FSL_MC_INDEX_TO_OFFSET(index)	\
     16	((u64)(index) << VFIO_FSL_MC_OFFSET_SHIFT)
     17
     18struct vfio_fsl_mc_irq {
     19	u32         flags;
     20	u32         count;
     21	struct eventfd_ctx  *trigger;
     22	char            *name;
     23};
     24
     25struct vfio_fsl_mc_region {
     26	u32			flags;
     27	u32			type;
     28	u64			addr;
     29	resource_size_t		size;
     30	void __iomem		*ioaddr;
     31};
     32
     33struct vfio_fsl_mc_device {
     34	struct vfio_device		vdev;
     35	struct fsl_mc_device		*mc_dev;
     36	struct notifier_block        nb;
     37	struct vfio_fsl_mc_region	*regions;
     38	struct mutex         igate;
     39	struct vfio_fsl_mc_irq      *mc_irqs;
     40};
     41
     42extern int vfio_fsl_mc_set_irqs_ioctl(struct vfio_fsl_mc_device *vdev,
     43			       u32 flags, unsigned int index,
     44			       unsigned int start, unsigned int count,
     45			       void *data);
     46
     47void vfio_fsl_mc_irqs_cleanup(struct vfio_fsl_mc_device *vdev);
     48
     49#endif /* VFIO_FSL_MC_PRIVATE_H */