diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-14 21:06:47 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-14 21:06:47 -0400 |
commit | 8c194f3bd322a8bd44d079092d870549b8ae62d1 (patch) | |
tree | c194690d0a01b6e5313d6af133e394a056a3015f /include/linux/vfio.h | |
parent | 07e492eb8921a8aa53fd2bf637bee3da94cc03fe (diff) | |
parent | 5a0ff17741c1785b27229a16b5ab77470d71b170 (diff) |
Merge tag 'vfio-v4.1-rc1' of git://github.com/awilliam/linux-vfio
Pull VFIO updates from Alex Williamson:
- VFIO platform bus driver support (Baptiste Reynal, Antonios Motakis,
testing and review by Eric Auger)
- Split VFIO irqfd support to separate module (Alex Williamson)
- vfio-pci VGA arbiter client (Alex Williamson)
- New vfio-pci.ids= module option (Alex Williamson)
- vfio-pci D3 power state support for idle devices (Alex Williamson)
* tag 'vfio-v4.1-rc1' of git://github.com/awilliam/linux-vfio: (30 commits)
vfio-pci: Fix use after free
vfio-pci: Move idle devices to D3hot power state
vfio-pci: Remove warning if try-reset fails
vfio-pci: Allow PCI IDs to be specified as module options
vfio-pci: Add VGA arbiter client
vfio-pci: Add module option to disable VGA region access
vgaarb: Stub vga_set_legacy_decoding()
vfio: Split virqfd into a separate module for vfio bus drivers
vfio: virqfd_lock can be static
vfio: put off the allocation of "minor" in vfio_create_group
vfio/platform: implement IRQ masking/unmasking via an eventfd
vfio: initialize the virqfd workqueue in VFIO generic code
vfio: move eventfd support code for VFIO_PCI to a separate file
vfio: pass an opaque pointer on virqfd initialization
vfio: add local lock for virqfd instead of depending on VFIO PCI
vfio: virqfd: rename vfio_pci_virqfd_init and vfio_pci_virqfd_exit
vfio: add a vfio_ prefix to virqfd_enable and virqfd_disable and export
vfio/platform: support for level sensitive interrupts
vfio/platform: trigger an interrupt via eventfd
vfio/platform: initial interrupts support code
...
Diffstat (limited to 'include/linux/vfio.h')
-rw-r--r-- | include/linux/vfio.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/include/linux/vfio.h b/include/linux/vfio.h index 049b2f497bc7..ddb440975382 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h | |||
@@ -14,6 +14,8 @@ | |||
14 | 14 | ||
15 | #include <linux/iommu.h> | 15 | #include <linux/iommu.h> |
16 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
17 | #include <linux/workqueue.h> | ||
18 | #include <linux/poll.h> | ||
17 | #include <uapi/linux/vfio.h> | 19 | #include <uapi/linux/vfio.h> |
18 | 20 | ||
19 | /** | 21 | /** |
@@ -110,4 +112,27 @@ static inline long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, | |||
110 | return -ENOTTY; | 112 | return -ENOTTY; |
111 | } | 113 | } |
112 | #endif /* CONFIG_EEH */ | 114 | #endif /* CONFIG_EEH */ |
115 | |||
116 | /* | ||
117 | * IRQfd - generic | ||
118 | */ | ||
119 | struct virqfd { | ||
120 | void *opaque; | ||
121 | struct eventfd_ctx *eventfd; | ||
122 | int (*handler)(void *, void *); | ||
123 | void (*thread)(void *, void *); | ||
124 | void *data; | ||
125 | struct work_struct inject; | ||
126 | wait_queue_t wait; | ||
127 | poll_table pt; | ||
128 | struct work_struct shutdown; | ||
129 | struct virqfd **pvirqfd; | ||
130 | }; | ||
131 | |||
132 | extern int vfio_virqfd_enable(void *opaque, | ||
133 | int (*handler)(void *, void *), | ||
134 | void (*thread)(void *, void *), | ||
135 | void *data, struct virqfd **pvirqfd, int fd); | ||
136 | extern void vfio_virqfd_disable(struct virqfd **pvirqfd); | ||
137 | |||
113 | #endif /* VFIO_H */ | 138 | #endif /* VFIO_H */ |