brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 7a29f57 Raw
50 lines · c
1/* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */2/*3 * Copyright 2013-2016 Freescale Semiconductor Inc.4 * Copyright 2016,2019-2020 NXP5 */6 7#ifndef VFIO_FSL_MC_PRIVATE_H8#define VFIO_FSL_MC_PRIVATE_H9 10#define VFIO_FSL_MC_OFFSET_SHIFT    4011#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 42int 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 */50