diff options
| author | Linus Torvalds <[email protected]> | 2023-11-01 10:46:48 -1000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2023-11-01 10:46:48 -1000 |
| commit | ca995ce438cc641c47d4b8e4abeb1878a3d07c5f (patch) | |
| tree | 0104ef4fe2108fa08095707620411ffbbe681b96 /include/uapi | |
| parent | 8999ad99f4cb19638d9ecb8017831f9a0ab8dc3d (diff) | |
| parent | 2c269f42d0f382743ab230308b836ffe5ae9b2ae (diff) | |
Merge tag 'for-linus-6.7-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull xen updates from Juergen Gross:
- two small cleanup patches
- a fix for PCI passthrough under Xen
- a four patch series speeding up virtio under Xen with user space
backends
* tag 'for-linus-6.7-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled
xen: privcmd: Add support for ioeventfd
xen: evtchn: Allow shared registration of IRQ handers
xen: irqfd: Use _IOW instead of the internal _IOC() macro
xen: Make struct privcmd_irqfd's layout architecture independent
xen/xenbus: Add __counted_by for struct read_buffer and use struct_size()
xenbus: fix error exit in xenbus_init()
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/xen/privcmd.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/include/uapi/xen/privcmd.h b/include/uapi/xen/privcmd.h index 375718ba4ab6..8b8c5d1420fe 100644 --- a/include/uapi/xen/privcmd.h +++ b/include/uapi/xen/privcmd.h @@ -102,7 +102,7 @@ struct privcmd_mmap_resource { #define PRIVCMD_IRQFD_FLAG_DEASSIGN (1 << 0) struct privcmd_irqfd { - void __user *dm_op; + __u64 dm_op; __u32 size; /* Size of structure pointed by dm_op */ __u32 fd; __u32 flags; @@ -110,6 +110,22 @@ struct privcmd_irqfd { __u8 pad[2]; }; +/* For privcmd_ioeventfd::flags */ +#define PRIVCMD_IOEVENTFD_FLAG_DEASSIGN (1 << 0) + +struct privcmd_ioeventfd { + __u64 ioreq; + __u64 ports; + __u64 addr; + __u32 addr_len; + __u32 event_fd; + __u32 vcpus; + __u32 vq; + __u32 flags; + domid_t dom; + __u8 pad[2]; +}; + /* * @cmd: IOCTL_PRIVCMD_HYPERCALL * @arg: &privcmd_hypercall_t @@ -138,6 +154,8 @@ struct privcmd_irqfd { #define IOCTL_PRIVCMD_MMAP_RESOURCE \ _IOC(_IOC_NONE, 'P', 7, sizeof(struct privcmd_mmap_resource)) #define IOCTL_PRIVCMD_IRQFD \ - _IOC(_IOC_NONE, 'P', 8, sizeof(struct privcmd_irqfd)) + _IOW('P', 8, struct privcmd_irqfd) +#define IOCTL_PRIVCMD_IOEVENTFD \ + _IOW('P', 9, struct privcmd_ioeventfd) #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */ |