dm: Add vhm ioeventfd and irqfd interfaces
ioeventfd and irqfd support for vhm was introduced in kernel vhm module. We provide the interfaces of them for DM users. Tracked-On: #1329 Signed-off-by: Shuo Liu <shuo.a.liu@intel.com> Acked-by: Yu Wang <yu1.wang@intel.com>
This commit is contained in:
parent
a189be26ff
commit
94513ab724
|
@ -657,3 +657,15 @@ vm_intr_monitor(struct vmctx *ctx, void *intr_buf)
|
|||
{
|
||||
return ioctl(ctx->fd, IC_VM_INTR_MONITOR, intr_buf);
|
||||
}
|
||||
|
||||
int
|
||||
vm_ioeventfd(struct vmctx *ctx, struct acrn_ioeventfd *args)
|
||||
{
|
||||
return ioctl(ctx->fd, IC_EVENT_IOEVENTFD, args);
|
||||
}
|
||||
|
||||
int
|
||||
vm_irqfd(struct vmctx *ctx, struct acrn_irqfd *args)
|
||||
{
|
||||
return ioctl(ctx->fd, IC_EVENT_IRQFD, args);
|
||||
}
|
||||
|
|
|
@ -112,6 +112,11 @@
|
|||
#define VM_MEMMAP_SYSMEM 0
|
||||
#define VM_MMIO 1
|
||||
|
||||
/* VHM eventfd */
|
||||
#define IC_ID_EVENT_BASE 0x70UL
|
||||
#define IC_EVENT_IOEVENTFD _IC_ID(IC_ID, IC_ID_EVENT_BASE + 0x00)
|
||||
#define IC_EVENT_IRQFD _IC_ID(IC_ID, IC_ID_EVENT_BASE + 0x01)
|
||||
|
||||
/**
|
||||
* struct vm_memmap - EPT memory mapping info for guest
|
||||
*/
|
||||
|
@ -204,4 +209,22 @@ struct api_version {
|
|||
uint32_t minor_version;
|
||||
};
|
||||
|
||||
#define ACRN_IOEVENTFD_FLAG_PIO 0x01
|
||||
#define ACRN_IOEVENTFD_FLAG_DATAMATCH 0x02
|
||||
#define ACRN_IOEVENTFD_FLAG_DEASSIGN 0x04
|
||||
struct acrn_ioeventfd {
|
||||
int32_t fd;
|
||||
uint32_t flags;
|
||||
uint64_t addr;
|
||||
uint32_t len;
|
||||
uint32_t reserved;
|
||||
uint64_t data;
|
||||
};
|
||||
|
||||
#define ACRN_IRQFD_FLAG_DEASSIGN 0x01
|
||||
struct acrn_irqfd {
|
||||
int32_t fd;
|
||||
uint32_t flags;
|
||||
struct acrn_msi_entry msi;
|
||||
};
|
||||
#endif /* VHM_IOCTL_DEFS_H */
|
||||
|
|
|
@ -155,4 +155,7 @@ int vm_get_cpu_state(struct vmctx *ctx, void *state_buf);
|
|||
int vm_intr_monitor(struct vmctx *ctx, void *intr_buf);
|
||||
void vm_stop_watchdog(struct vmctx *ctx);
|
||||
void vm_reset_watchdog(struct vmctx *ctx);
|
||||
|
||||
int vm_ioeventfd(struct vmctx *ctx, struct acrn_ioeventfd *args);
|
||||
int vm_irqfd(struct vmctx *ctx, struct acrn_irqfd *args);
|
||||
#endif /* _VMMAPI_H_ */
|
||||
|
|
Loading…
Reference in New Issue