int kvm_arch_add_msi_route_post(struct kvm_irq_routing_entry *route,
                                int vector, PCIDevice *dev)
{
    static bool notify_list_inited = false;
    MSIRouteEntry *entry;
    if (!dev) {
        /* These are (possibly) IOAPIC routes only used for split
         * kernel irqchip mode, while what we are housekeeping are
         * PCI devices only. */
        return 0;
    entry = g_new0(MSIRouteEntry, 1);
    entry->dev = dev;
    entry->vector = vector;
    entry->virq = route->gsi;
    QLIST_INSERT_HEAD(&msi_route_list, entry, list);
    trace_kvm_x86_add_msi_route(route->gsi);
    return 0;
int kvm_arch_add_msi_route_post(struct kvm_irq_routing_entry *route,
                                int vector, PCIDevice *dev)
{
    static bool notify_list_inited = false;
    MSIRouteEntry *entry;
    if (!dev) {
        


        return 0;
    entry = g_new0(MSIRouteEntry, 1);
    entry->dev = dev;
    entry->vector = vector;
    entry->virq = route->gsi;
    QLIST_INSERT_HEAD(&msi_route_list, entry, list);
    trace_kvm_x86_add_msi_route(route->gsi);
    return 0;
int FUNC_0(struct kvm_irq_routing_entry *VAR_0,
                                int VAR_1, PCIDevice *VAR_2)
{
    static bool VAR_3 = false;
    MSIRouteEntry *entry;
    if (!VAR_2) {
        


        return 0;
    entry = g_new0(MSIRouteEntry, 1);
    entry->VAR_2 = VAR_2;
    entry->VAR_1 = VAR_1;
    entry->virq = VAR_0->gsi;
    QLIST_INSERT_HEAD(&msi_route_list, entry, list);
    trace_kvm_x86_add_msi_route(VAR_0->gsi);
    return 0;
int FUNC_0(struct kvm_irq_routing_entry *VAR_0,
int VAR_1, PCIDevice *VAR_2)
{ static bool VAR_3 = false; MSIRouteEntry *entry; if (!VAR_2) { return 0; entry = g_new0(MSIRouteEntry, 1); entry->VAR_2 = VAR_2; entry->VAR_1 = VAR_1; entry->virq = VAR_0->gsi; QLIST_INSERT_HEAD(&msi_route_list, entry, list); trace_kvm_x86_add_msi_route(VAR_0->gsi); return 0;