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 | ||
f2ba7e8c DC |
18 | struct vfio_fsl_mc_reflck { |
19 | struct kref kref; | |
20 | struct mutex lock; | |
21 | }; | |
22 | ||
df747bcd DC |
23 | struct vfio_fsl_mc_region { |
24 | u32 flags; | |
25 | u32 type; | |
26 | u64 addr; | |
27 | resource_size_t size; | |
28 | }; | |
29 | ||
fb1ff4c1 BB |
30 | struct vfio_fsl_mc_device { |
31 | struct fsl_mc_device *mc_dev; | |
704f5082 | 32 | struct notifier_block nb; |
df747bcd DC |
33 | int refcnt; |
34 | struct vfio_fsl_mc_region *regions; | |
f2ba7e8c | 35 | struct vfio_fsl_mc_reflck *reflck; |
fb1ff4c1 BB |
36 | }; |
37 | ||
38 | #endif /* VFIO_FSL_MC_PRIVATE_H */ |