Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 64 lines 1.3 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2/* 3 * Copyright (C) 2022-2023, Advanced Micro Devices, Inc. 4 */ 5 6#ifndef VFIO_CDX_PRIVATE_H 7#define VFIO_CDX_PRIVATE_H 8 9#include <linux/mutex.h> 10 11#define VFIO_CDX_OFFSET_SHIFT 40 12 13static inline u64 vfio_cdx_index_to_offset(u32 index) 14{ 15 return ((u64)(index) << VFIO_CDX_OFFSET_SHIFT); 16} 17 18struct vfio_cdx_irq { 19 u32 flags; 20 u32 count; 21 int irq_no; 22 struct eventfd_ctx *trigger; 23 char *name; 24}; 25 26struct vfio_cdx_region { 27 u32 flags; 28 u32 type; 29 u64 addr; 30 resource_size_t size; 31}; 32 33struct vfio_cdx_device { 34 struct vfio_device vdev; 35 struct vfio_cdx_region *regions; 36 struct mutex cdx_irqs_lock; 37 struct vfio_cdx_irq *cdx_irqs; 38 u32 flags; 39#define BME_SUPPORT BIT(0) 40 u32 msi_count; 41}; 42 43#ifdef CONFIG_GENERIC_MSI_IRQ 44int vfio_cdx_set_irqs_ioctl(struct vfio_cdx_device *vdev, 45 u32 flags, unsigned int index, 46 unsigned int start, unsigned int count, 47 void *data); 48 49void vfio_cdx_irqs_cleanup(struct vfio_cdx_device *vdev); 50#else 51static int vfio_cdx_set_irqs_ioctl(struct vfio_cdx_device *vdev, 52 u32 flags, unsigned int index, 53 unsigned int start, unsigned int count, 54 void *data) 55{ 56 return -EINVAL; 57} 58 59static void vfio_cdx_irqs_cleanup(struct vfio_cdx_device *vdev) 60{ 61} 62#endif 63 64#endif /* VFIO_CDX_PRIVATE_H */