Linux Audio

Check our new training course

Loading...
v6.8
 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
11static inline u64 vfio_cdx_index_to_offset(u32 index)
12{
13	return ((u64)(index) << VFIO_CDX_OFFSET_SHIFT);
14}
15
 
 
 
 
 
 
 
 
16struct vfio_cdx_region {
17	u32			flags;
18	u32			type;
19	u64			addr;
20	resource_size_t		size;
21};
22
23struct vfio_cdx_device {
24	struct vfio_device	vdev;
25	struct vfio_cdx_region	*regions;
 
26	u32			flags;
27#define BME_SUPPORT BIT(0)
 
 
28};
 
 
 
 
 
 
 
29
30#endif /* VFIO_CDX_PRIVATE_H */
v6.13.7
 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
11static inline u64 vfio_cdx_index_to_offset(u32 index)
12{
13	return ((u64)(index) << VFIO_CDX_OFFSET_SHIFT);
14}
15
16struct vfio_cdx_irq {
17	u32			flags;
18	u32			count;
19	int			irq_no;
20	struct eventfd_ctx	*trigger;
21	char			*name;
22};
23
24struct vfio_cdx_region {
25	u32			flags;
26	u32			type;
27	u64			addr;
28	resource_size_t		size;
29};
30
31struct 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
41int 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
46void vfio_cdx_irqs_cleanup(struct vfio_cdx_device *vdev);
47
48#endif /* VFIO_CDX_PRIVATE_H */