#ifndef KVM__IOEVENTFD_H #define KVM__IOEVENTFD_H #include #include #include #include "kvm/util.h" struct kvm; struct ioevent { u64 io_addr; u8 io_len; void (*fn)(struct kvm *kvm, void *ptr); struct kvm *fn_kvm; void *fn_ptr; int fd; u64 datamatch; u32 flags; struct list_head list; }; #define IOEVENTFD_FLAG_PIO (1 << 0) #define IOEVENTFD_FLAG_USER_POLL (1 << 1) int ioeventfd__init(struct kvm *kvm); int ioeventfd__exit(struct kvm *kvm); int ioeventfd__add_event(struct ioevent *ioevent, int flags); int ioeventfd__del_event(u64 addr, u64 datamatch); #endif