FLIC (floating interrupt controller)====================================FLIC handles floating (non per-cpu) interrupts, i.e. I/O, service and somemachine check interruptions. All interrupts are stored in a per-vm list ofpending interrupts. FLIC performs operations on this list.Only one FLIC instance may be instantiated.FLIC provides support to- add interrupts (KVM_DEV_FLIC_ENQUEUE)- inspect currently pending interrupts (KVM_FLIC_GET_ALL_IRQS)- purge all pending floating interrupts (KVM_DEV_FLIC_CLEAR_IRQS)Groups: KVM_DEV_FLIC_ENQUEUE Passes a buffer and length into the kernel which are then injected into the list of pending interrupts. attr->addr contains the pointer to the buffer and attr->attr contains the length of the buffer. The format of the data structure kvm_s390_irq as it is copied from userspace is defined in usr/include/linux/kvm.h. KVM_DEV_FLIC_GET_ALL_IRQS Copies all floating interrupts into a buffer provided by userspace. When the buffer is too small it returns -ENOMEM, which is the indication for userspace to try again with a bigger buffer. All interrupts remain pending, i.e. are not deleted from the list of currently pending interrupts. attr->addr contains the userspace address of the buffer into which all interrupt data will be copied. attr->attr contains the size of the buffer in bytes. KVM_DEV_FLIC_CLEAR_IRQS Simply deletes all elements from the list of currently pending floating interrupts. No interrupts are injected into the guest.