static void pcie_pci_bridge_realize(PCIDevice *d, Error **errp)

{

    PCIBridge *br = PCI_BRIDGE(d);

    PCIEPCIBridge *pcie_br = PCIE_PCI_BRIDGE_DEV(d);

    int rc, pos;



    pci_bridge_initfn(d, TYPE_PCI_BUS);



    d->config[PCI_INTERRUPT_PIN] = 0x1;

    memory_region_init(&pcie_br->shpc_bar, OBJECT(d), "shpc-bar",

                       shpc_bar_size(d));

    rc = shpc_init(d, &br->sec_bus, &pcie_br->shpc_bar, 0, errp);

    if (rc) {

        goto error;

    }



    rc = pcie_cap_init(d, 0, PCI_EXP_TYPE_PCI_BRIDGE, 0, errp);

    if (rc < 0) {

        goto cap_error;

    }



    pos = pci_add_capability(d, PCI_CAP_ID_PM, 0, PCI_PM_SIZEOF, errp);

    if (pos < 0) {

        goto pm_error;

    }

    d->exp.pm_cap = pos;

    pci_set_word(d->config + pos + PCI_PM_PMC, 0x3);



    pcie_cap_arifwd_init(d);

    pcie_cap_deverr_init(d);



    rc = pcie_aer_init(d, PCI_ERR_VER, 0x100, PCI_ERR_SIZEOF, errp);

    if (rc < 0) {

        goto aer_error;

    }



    if (pcie_br->msi != ON_OFF_AUTO_OFF) {

        rc = msi_init(d, 0, 1, true, true, errp);

        if (rc < 0) {

            goto msi_error;

        }

    }

    pci_register_bar(d, 0, PCI_BASE_ADDRESS_SPACE_MEMORY |

                     PCI_BASE_ADDRESS_MEM_TYPE_64, &pcie_br->shpc_bar);

    return;



msi_error:

    pcie_aer_exit(d);

aer_error:

pm_error:

    pcie_cap_exit(d);

cap_error:

    shpc_free(d);

error:

    pci_bridge_exitfn(d);

}

static void pcie_pci_bridge_realize(PCIDevice *d, Error **errp)

{

    PCIBridge *br = PCI_BRIDGE(d);

    PCIEPCIBridge *pcie_br = PCIE_PCI_BRIDGE_DEV(d);

    int rc, pos;



    pci_bridge_initfn(d, TYPE_PCI_BUS);



    d->config[PCI_INTERRUPT_PIN] = 0x1;

    memory_region_init(&pcie_br->shpc_bar, OBJECT(d), "shpc-bar",

                       shpc_bar_size(d));

    rc = shpc_init(d, &br->sec_bus, &pcie_br->shpc_bar, 0, errp);

    if (rc) {

        goto error;

    }



    rc = pcie_cap_init(d, 0, PCI_EXP_TYPE_PCI_BRIDGE, 0, errp);

    if (rc < 0) {

        goto cap_error;

    }



    pos = pci_add_capability(d, PCI_CAP_ID_PM, 0, PCI_PM_SIZEOF, errp);

    if (pos < 0) {

        goto pm_error;

    }

    d->exp.pm_cap = pos;

    pci_set_word(d->config + pos + PCI_PM_PMC, 0x3);



    pcie_cap_arifwd_init(d);

    pcie_cap_deverr_init(d);



    rc = pcie_aer_init(d, PCI_ERR_VER, 0x100, PCI_ERR_SIZEOF, errp);

    if (rc < 0) {

        goto aer_error;

    }



    if (pcie_br->msi != ON_OFF_AUTO_OFF) {

        rc = msi_init(d, 0, 1, true, true, errp);

        if (rc < 0) {

            goto msi_error;

        }

    }

    pci_register_bar(d, 0, PCI_BASE_ADDRESS_SPACE_MEMORY |

                     PCI_BASE_ADDRESS_MEM_TYPE_64, &pcie_br->shpc_bar);

    return;



msi_error:

    pcie_aer_exit(d);

aer_error:

pm_error:

    pcie_cap_exit(d);

cap_error:

    shpc_free(d);

error:

    pci_bridge_exitfn(d);

}

        rc = msi_init(d, 0, 1, true, true, errp);             goto msi_error;     shpc_free(d);
static void FUNC_0(PCIDevice *VAR_0, Error **VAR_1)

{

    PCIBridge *br = PCI_BRIDGE(VAR_0);

    PCIEPCIBridge *pcie_br = PCIE_PCI_BRIDGE_DEV(VAR_0);

    int VAR_2, VAR_3;



    pci_bridge_initfn(VAR_0, TYPE_PCI_BUS);



    VAR_0->config[PCI_INTERRUPT_PIN] = 0x1;

    memory_region_init(&pcie_br->shpc_bar, OBJECT(VAR_0), "shpc-bar",

                       shpc_bar_size(VAR_0));

    VAR_2 = shpc_init(VAR_0, &br->sec_bus, &pcie_br->shpc_bar, 0, VAR_1);

    if (VAR_2) {

        goto error;

    }



    VAR_2 = pcie_cap_init(VAR_0, 0, PCI_EXP_TYPE_PCI_BRIDGE, 0, VAR_1);

    if (VAR_2 < 0) {

        goto cap_error;

    }



    VAR_3 = pci_add_capability(VAR_0, PCI_CAP_ID_PM, 0, PCI_PM_SIZEOF, VAR_1);

    if (VAR_3 < 0) {

        goto pm_error;

    }

    VAR_0->exp.pm_cap = VAR_3;

    pci_set_word(VAR_0->config + VAR_3 + PCI_PM_PMC, 0x3);



    pcie_cap_arifwd_init(VAR_0);

    pcie_cap_deverr_init(VAR_0);



    VAR_2 = pcie_aer_init(VAR_0, PCI_ERR_VER, 0x100, PCI_ERR_SIZEOF, VAR_1);

    if (VAR_2 < 0) {

        goto aer_error;

    }



    if (pcie_br->msi != ON_OFF_AUTO_OFF) {

        VAR_2 = msi_init(VAR_0, 0, 1, true, true, VAR_1);

        if (VAR_2 < 0) {

            goto msi_error;

        }

    }

    pci_register_bar(VAR_0, 0, PCI_BASE_ADDRESS_SPACE_MEMORY |

                     PCI_BASE_ADDRESS_MEM_TYPE_64, &pcie_br->shpc_bar);

    return;



msi_error:

    pcie_aer_exit(VAR_0);

aer_error:

pm_error:

    pcie_cap_exit(VAR_0);

cap_error:

    shpc_free(VAR_0);

error:

    pci_bridge_exitfn(VAR_0);

}

static void FUNC_0(PCIDevice *VAR_0, Error **VAR_1)
{ PCIBridge *br = PCI_BRIDGE(VAR_0); PCIEPCIBridge *pcie_br = PCIE_PCI_BRIDGE_DEV(VAR_0); int VAR_2, VAR_3; pci_bridge_initfn(VAR_0, TYPE_PCI_BUS); VAR_0->config[PCI_INTERRUPT_PIN] = 0x1; memory_region_init(&pcie_br->shpc_bar, OBJECT(VAR_0), "shpc-bar",
shpc_bar_size(VAR_0)); VAR_2 = shpc_init(VAR_0, &br->sec_bus, &pcie_br->shpc_bar, 0, VAR_1); if (VAR_2) { goto error; } VAR_2 = pcie_cap_init(VAR_0, 0, PCI_EXP_TYPE_PCI_BRIDGE, 0, VAR_1); if (VAR_2 < 0) { goto cap_error; } VAR_3 = pci_add_capability(VAR_0, PCI_CAP_ID_PM, 0, PCI_PM_SIZEOF, VAR_1); if (VAR_3 < 0) { goto pm_error; } VAR_0->exp.pm_cap = VAR_3; pci_set_word(VAR_0->config + VAR_3 + PCI_PM_PMC, 0x3); pcie_cap_arifwd_init(VAR_0); pcie_cap_deverr_init(VAR_0); VAR_2 = pcie_aer_init(VAR_0, PCI_ERR_VER, 0x100, PCI_ERR_SIZEOF, VAR_1); if (VAR_2 < 0) { goto aer_error; } if (pcie_br->msi != ON_OFF_AUTO_OFF) { VAR_2 = msi_init(VAR_0, 0, 1, true, true, VAR_1); if (VAR_2 < 0) { goto msi_error; } } pci_register_bar(VAR_0, 0, PCI_BASE_ADDRESS_SPACE_MEMORY |
PCI_BASE_ADDRESS_MEM_TYPE_64, &pcie_br->shpc_bar); return; msi_error:
pcie_aer_exit(VAR_0); aer_error:
pm_error:
pcie_cap_exit(VAR_0); cap_error:
shpc_free(VAR_0); error:
pci_bridge_exitfn(VAR_0); }