1 | /* |
2 | * QEMU VFIO helpers |
3 | * |
4 | * Copyright 2016 - 2018 Red Hat, Inc. |
5 | * |
6 | * Authors: |
7 | * Fam Zheng <famz@redhat.com> |
8 | * |
9 | * This work is licensed under the terms of the GNU GPL, version 2 or later. |
10 | * See the COPYING file in the top-level directory. |
11 | */ |
12 | |
13 | #ifndef QEMU_VFIO_HELPERS_H |
14 | #define QEMU_VFIO_HELPERS_H |
15 | |
16 | typedef struct QEMUVFIOState QEMUVFIOState; |
17 | |
18 | QEMUVFIOState *qemu_vfio_open_pci(const char *device, Error **errp); |
19 | void qemu_vfio_close(QEMUVFIOState *s); |
20 | int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size, |
21 | bool temporary, uint64_t *iova_list); |
22 | int qemu_vfio_dma_reset_temporary(QEMUVFIOState *s); |
23 | void qemu_vfio_dma_unmap(QEMUVFIOState *s, void *host); |
24 | void *qemu_vfio_pci_map_bar(QEMUVFIOState *s, int index, |
25 | uint64_t offset, uint64_t size, |
26 | Error **errp); |
27 | void qemu_vfio_pci_unmap_bar(QEMUVFIOState *s, int index, void *bar, |
28 | uint64_t offset, uint64_t size); |
29 | int qemu_vfio_pci_init_irq(QEMUVFIOState *s, EventNotifier *e, |
30 | int irq_type, Error **errp); |
31 | |
32 | #endif |
33 | |