]> Git Repo - linux.git/blob - drivers/vfio/cdx/private.h
drm/v3d: Use v3d_perfmon_find()
[linux.git] / drivers / vfio / cdx / private.h
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 #define VFIO_CDX_OFFSET_SHIFT    40
10
11 static inline u64 vfio_cdx_index_to_offset(u32 index)
12 {
13         return ((u64)(index) << VFIO_CDX_OFFSET_SHIFT);
14 }
15
16 struct vfio_cdx_irq {
17         u32                     flags;
18         u32                     count;
19         int                     irq_no;
20         struct eventfd_ctx      *trigger;
21         char                    *name;
22 };
23
24 struct vfio_cdx_region {
25         u32                     flags;
26         u32                     type;
27         u64                     addr;
28         resource_size_t         size;
29 };
30
31 struct vfio_cdx_device {
32         struct vfio_device      vdev;
33         struct vfio_cdx_region  *regions;
34         struct vfio_cdx_irq     *cdx_irqs;
35         u32                     flags;
36 #define BME_SUPPORT BIT(0)
37         u32                     msi_count;
38         u8                      config_msi;
39 };
40
41 int vfio_cdx_set_irqs_ioctl(struct vfio_cdx_device *vdev,
42                             u32 flags, unsigned int index,
43                             unsigned int start, unsigned int count,
44                             void *data);
45
46 void vfio_cdx_irqs_cleanup(struct vfio_cdx_device *vdev);
47
48 #endif /* VFIO_CDX_PRIVATE_H */
This page took 0.03682 seconds and 4 git commands to generate.