Commit | Line | Data |
---|---|---|
fb1ff4c1 BB |
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 | ||
df747bcd DC |
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 | ||
cc0ee20b DC |
18 | struct vfio_fsl_mc_irq { |
19 | u32 flags; | |
20 | u32 count; | |
21 | struct eventfd_ctx *trigger; | |
22 | char *name; | |
23 | }; | |
24 | ||
df747bcd DC |
25 | struct vfio_fsl_mc_region { |
26 | u32 flags; | |
27 | u32 type; | |
28 | u64 addr; | |
29 | resource_size_t size; | |
1bb141ed | 30 | void __iomem *ioaddr; |
df747bcd DC |
31 | }; |
32 | ||
fb1ff4c1 | 33 | struct vfio_fsl_mc_device { |
0ca78666 | 34 | struct vfio_device vdev; |
fb1ff4c1 | 35 | struct fsl_mc_device *mc_dev; |
704f5082 | 36 | struct notifier_block nb; |
df747bcd | 37 | struct vfio_fsl_mc_region *regions; |
2e0d2956 | 38 | struct mutex igate; |
cc0ee20b | 39 | struct vfio_fsl_mc_irq *mc_irqs; |
fb1ff4c1 BB |
40 | }; |
41 | ||
2e0d2956 DC |
42 | extern 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 | ||
cc0ee20b DC |
47 | void vfio_fsl_mc_irqs_cleanup(struct vfio_fsl_mc_device *vdev); |
48 | ||
fb1ff4c1 | 49 | #endif /* VFIO_FSL_MC_PRIVATE_H */ |