vfio/fsl-mc: Added lock support in preparation for interrupt handling
[linux-block.git] / drivers / vfio / fsl-mc / vfio_fsl_mc_private.h
CommitLineData
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
18struct vfio_fsl_mc_reflck {
19 struct kref kref;
20 struct mutex lock;
21};
22
df747bcd
DC
23struct vfio_fsl_mc_region {
24 u32 flags;
25 u32 type;
26 u64 addr;
27 resource_size_t size;
28};
29
fb1ff4c1
BB
30struct 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 */