int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg)

{

    struct kvm_irq_routing_entry kroute;



    if (!kvm_irqchip_in_kernel()) {

        return -ENOSYS;

    }



    kroute.gsi = virq;

    kroute.type = KVM_IRQ_ROUTING_MSI;

    kroute.flags = 0;

    kroute.u.msi.address_lo = (uint32_t)msg.address;

    kroute.u.msi.address_hi = msg.address >> 32;

    kroute.u.msi.data = msg.data;



    return kvm_update_routing_entry(s, &kroute);

}

int kvm_irqchip_update_msi_route(KVMState *s, int virq, MSIMessage msg)

{

    struct kvm_irq_routing_entry kroute;



    if (!kvm_irqchip_in_kernel()) {

        return -ENOSYS;

    }



    kroute.gsi = virq;

    kroute.type = KVM_IRQ_ROUTING_MSI;

    kroute.flags = 0;

    kroute.u.msi.address_lo = (uint32_t)msg.address;

    kroute.u.msi.address_hi = msg.address >> 32;

    kroute.u.msi.data = msg.data;



    return kvm_update_routing_entry(s, &kroute);

}

int FUNC_0(KVMState *VAR_0, int VAR_1, MSIMessage VAR_2)

{

    struct kvm_irq_routing_entry VAR_3;



    if (!kvm_irqchip_in_kernel()) {

        return -ENOSYS;

    }



    VAR_3.gsi = VAR_1;

    VAR_3.type = KVM_IRQ_ROUTING_MSI;

    VAR_3.flags = 0;

    VAR_3.u.msi.address_lo = (uint32_t)VAR_2.address;

    VAR_3.u.msi.address_hi = VAR_2.address >> 32;

    VAR_3.u.msi.data = VAR_2.data;



    return kvm_update_routing_entry(VAR_0, &VAR_3);

}

int FUNC_0(KVMState *VAR_0, int VAR_1, MSIMessage VAR_2)
{ struct kvm_irq_routing_entry VAR_3; if (!kvm_irqchip_in_kernel()) { return -ENOSYS; } VAR_3.gsi = VAR_1; VAR_3.type = KVM_IRQ_ROUTING_MSI; VAR_3.flags = 0; VAR_3.u.msi.address_lo = (uint32_t)VAR_2.address; VAR_3.u.msi.address_hi = VAR_2.address >> 32; VAR_3.u.msi.data = VAR_2.data; return kvm_update_routing_entry(VAR_0, &VAR_3); }