xref: /qemu/hw/vfio/vfio-helpers.h (revision 090c9641882da217e40936c98742749e4cc94130)
1ac28680dSCédric Le Goater /*
2ac28680dSCédric Le Goater  * VFIO helpers
3ac28680dSCédric Le Goater  *
4ac28680dSCédric Le Goater  * Copyright Red Hat, Inc. 2025
5ac28680dSCédric Le Goater  *
6ac28680dSCédric Le Goater  * SPDX-License-Identifier: GPL-2.0-or-later
7ac28680dSCédric Le Goater  */
8ac28680dSCédric Le Goater 
9ac28680dSCédric Le Goater #ifndef HW_VFIO_VFIO_HELPERS_H
10ac28680dSCédric Le Goater #define HW_VFIO_VFIO_HELPERS_H
11ac28680dSCédric Le Goater 
12ac28680dSCédric Le Goater #ifdef CONFIG_LINUX
13ac28680dSCédric Le Goater #include <linux/vfio.h>
14ac28680dSCédric Le Goater 
15*c3fbdba1SCédric Le Goater extern int vfio_kvm_device_fd;
16*c3fbdba1SCédric Le Goater 
17ac28680dSCédric Le Goater struct vfio_info_cap_header *
18ac28680dSCédric Le Goater vfio_get_cap(void *ptr, uint32_t cap_offset, uint16_t id);
19ac28680dSCédric Le Goater struct vfio_info_cap_header *
20ac28680dSCédric Le Goater vfio_get_device_info_cap(struct vfio_device_info *info, uint16_t id);
21ac28680dSCédric Le Goater struct vfio_info_cap_header *
22ac28680dSCédric Le Goater vfio_get_region_info_cap(struct vfio_region_info *info, uint16_t id);
23f6d7f5d0SCédric Le Goater struct vfio_info_cap_header *
24f6d7f5d0SCédric Le Goater vfio_get_iommu_type1_info_cap(struct vfio_iommu_type1_info *info, uint16_t id);
25f6d7f5d0SCédric Le Goater bool vfio_get_info_dma_avail(struct vfio_iommu_type1_info *info,
26f6d7f5d0SCédric Le Goater                              unsigned int *avail);
27ac28680dSCédric Le Goater #endif
28ac28680dSCédric Le Goater 
29ac28680dSCédric Le Goater int vfio_bitmap_alloc(VFIOBitmap *vbmap, hwaddr size);
30005b8d10SCédric Le Goater struct vfio_device_info *vfio_get_device_info(int fd);
31ac28680dSCédric Le Goater 
3254525613SCédric Le Goater int vfio_kvm_device_add_fd(int fd, Error **errp);
3354525613SCédric Le Goater int vfio_kvm_device_del_fd(int fd, Error **errp);
3454525613SCédric Le Goater 
35ac28680dSCédric Le Goater #endif /* HW_VFIO_VFIO_HELPERS_H */
36