ARM Virtual Interrupt Translation Service (ITS) =============================================== Device types supported: KVM_DEV_TYPE_ARM_VGIC_ITS ARM Interrupt Translation Service Controller The ITS allows MSI(-X) interrupts to be injected into guests. This extension is optional. Creating a virtual ITS controller also requires a host GICv3 (see arm-vgic-v3.txt), but does not depend on having physical ITS controllers. There can be multiple ITS controllers per guest, each of them has to have a separate, non-overlapping MMIO region. Groups: KVM_DEV_ARM_VGIC_GRP_ADDR Attributes: KVM_VGIC_ITS_ADDR_TYPE (rw, 64-bit) Base address in the guest physical address space of the GICv3 ITS control register frame. This address needs to be 64K aligned and the region covers 128K. Errors: -E2BIG: Address outside of addressable IPA range -EINVAL: Incorrectly aligned address -EEXIST: Address already configured -EFAULT: Invalid user pointer for attr->addr. -ENODEV: Incorrect attribute or the ITS is not supported. KVM_DEV_ARM_VGIC_GRP_CTRL Attributes: KVM_DEV_ARM_VGIC_CTRL_INIT request the initialization of the ITS, no additional parameter in kvm_device_attr.addr. Errors: -ENXIO: ITS not properly configured as required prior to setting this attribute -ENOMEM: Memory shortage when allocating ITS internal data