1fb1ff4c1SBharat Bhushan /* SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) */ 2fb1ff4c1SBharat Bhushan /* 3fb1ff4c1SBharat Bhushan * Copyright 2013-2016 Freescale Semiconductor Inc. 4fb1ff4c1SBharat Bhushan * Copyright 2016,2019-2020 NXP 5fb1ff4c1SBharat Bhushan */ 6fb1ff4c1SBharat Bhushan 7fb1ff4c1SBharat Bhushan #ifndef VFIO_FSL_MC_PRIVATE_H 8fb1ff4c1SBharat Bhushan #define VFIO_FSL_MC_PRIVATE_H 9fb1ff4c1SBharat Bhushan 10df747bcdSDiana Craciun #define VFIO_FSL_MC_OFFSET_SHIFT 40 11df747bcdSDiana Craciun #define VFIO_FSL_MC_OFFSET_MASK (((u64)(1) << VFIO_FSL_MC_OFFSET_SHIFT) - 1) 12df747bcdSDiana Craciun 13df747bcdSDiana Craciun #define VFIO_FSL_MC_OFFSET_TO_INDEX(off) ((off) >> VFIO_FSL_MC_OFFSET_SHIFT) 14df747bcdSDiana Craciun 15df747bcdSDiana Craciun #define VFIO_FSL_MC_INDEX_TO_OFFSET(index) \ 16df747bcdSDiana Craciun ((u64)(index) << VFIO_FSL_MC_OFFSET_SHIFT) 17df747bcdSDiana Craciun 18df747bcdSDiana Craciun struct vfio_fsl_mc_region { 19df747bcdSDiana Craciun u32 flags; 20df747bcdSDiana Craciun u32 type; 21df747bcdSDiana Craciun u64 addr; 22df747bcdSDiana Craciun resource_size_t size; 23df747bcdSDiana Craciun }; 24df747bcdSDiana Craciun 25fb1ff4c1SBharat Bhushan struct vfio_fsl_mc_device { 26fb1ff4c1SBharat Bhushan struct fsl_mc_device *mc_dev; 27704f5082SDiana Craciun struct notifier_block nb; 28df747bcdSDiana Craciun int refcnt; 29df747bcdSDiana Craciun struct vfio_fsl_mc_region *regions; 30df747bcdSDiana Craciun struct mutex driver_lock; 31fb1ff4c1SBharat Bhushan }; 32fb1ff4c1SBharat Bhushan 33fb1ff4c1SBharat Bhushan #endif /* VFIO_FSL_MC_PRIVATE_H */ 34