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);
|
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_MEMMAP_SYSMEM 0
|
||||||
#define VM_MMIO 1
|
#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
|
* struct vm_memmap - EPT memory mapping info for guest
|
||||||
*/
|
*/
|
||||||
|
@ -204,4 +209,22 @@ struct api_version {
|
||||||
uint32_t minor_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 */
|
#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);
|
int vm_intr_monitor(struct vmctx *ctx, void *intr_buf);
|
||||||
void vm_stop_watchdog(struct vmctx *ctx);
|
void vm_stop_watchdog(struct vmctx *ctx);
|
||||||
void vm_reset_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_ */
|
#endif /* _VMMAPI_H_ */
|
||||||
|
|
Loading…
Reference in New Issue