[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 12/17] pseries: savevm support for PCI host brid
From: |
Anthony Liguori |
Subject: |
Re: [Qemu-devel] [PATCH 12/17] pseries: savevm support for PCI host bridge |
Date: |
Mon, 08 Jul 2013 13:45:34 -0500 |
User-agent: |
Notmuch/0.15.2+202~g0c4b8aa (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu) |
Alexey Kardashevskiy <address@hidden> writes:
> From: David Gibson <address@hidden>
>
> This adds the necessary support for saving the state of the PAPR virtual
> PCI host bridge (or host bridges).
>
> Signed-off-by: David Gibson <address@hidden>
> Signed-off-by: Alexey Kardashevskiy <address@hidden>
Reviewed-by: Anthony Liguori <address@hidden>
Regards,
Anthony Liguori
> ---
> hw/ppc/spapr_pci.c | 49
> +++++++++++++++++++++++++++++++++++++++++++
> include/hw/pci-host/spapr.h | 6 +++---
> 2 files changed, 52 insertions(+), 3 deletions(-)
>
> diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c
> index c8c12c8..4d8e3cd 100644
> --- a/hw/ppc/spapr_pci.c
> +++ b/hw/ppc/spapr_pci.c
> @@ -696,6 +696,54 @@ static Property spapr_phb_properties[] = {
> DEFINE_PROP_END_OF_LIST(),
> };
>
> +static const VMStateDescription vmstate_spapr_pci_lsi = {
> + .name = "spapr_pci/lsi",
> + .version_id = 1,
> + .minimum_version_id = 1,
> + .minimum_version_id_old = 1,
> + .fields = (VMStateField []) {
> + VMSTATE_UINT32_EQUAL(irq, struct spapr_pci_lsi),
> +
> + VMSTATE_END_OF_LIST()
> + },
> +};
> +
> +static const VMStateDescription vmstate_spapr_pci_msi = {
> + .name = "spapr_pci/lsi",
> + .version_id = 1,
> + .minimum_version_id = 1,
> + .minimum_version_id_old = 1,
> + .fields = (VMStateField []) {
> + VMSTATE_UINT32(config_addr, struct spapr_pci_msi),
> + VMSTATE_UINT32(irq, struct spapr_pci_msi),
> + VMSTATE_UINT32(nvec, struct spapr_pci_msi),
> +
> + VMSTATE_END_OF_LIST()
> + },
> +};
> +
> +static const VMStateDescription vmstate_spapr_pci = {
> + .name = "spapr_pci",
> + .version_id = 1,
> + .minimum_version_id = 1,
> + .minimum_version_id_old = 1,
> + .fields = (VMStateField []) {
> + VMSTATE_UINT64_EQUAL(buid, sPAPRPHBState),
> + VMSTATE_UINT32_EQUAL(dma_liobn, sPAPRPHBState),
> + VMSTATE_UINT64_EQUAL(mem_win_addr, sPAPRPHBState),
> + VMSTATE_UINT64_EQUAL(mem_win_size, sPAPRPHBState),
> + VMSTATE_UINT64_EQUAL(io_win_addr, sPAPRPHBState),
> + VMSTATE_UINT64_EQUAL(io_win_size, sPAPRPHBState),
> + VMSTATE_UINT64_EQUAL(msi_win_addr, sPAPRPHBState),
> + VMSTATE_STRUCT_ARRAY(lsi_table, sPAPRPHBState, PCI_NUM_PINS, 0,
> + vmstate_spapr_pci_lsi, struct spapr_pci_lsi),
> + VMSTATE_STRUCT_ARRAY(msi_table, sPAPRPHBState, SPAPR_MSIX_MAX_DEVS,
> 0,
> + vmstate_spapr_pci_msi, struct spapr_pci_msi),
> +
> + VMSTATE_END_OF_LIST()
> + },
> +};
> +
> static void spapr_phb_class_init(ObjectClass *klass, void *data)
> {
> SysBusDeviceClass *sdc = SYS_BUS_DEVICE_CLASS(klass);
> @@ -704,6 +752,7 @@ static void spapr_phb_class_init(ObjectClass *klass, void
> *data)
> sdc->init = spapr_phb_init;
> dc->props = spapr_phb_properties;
> dc->reset = spapr_phb_reset;
> + dc->vmsd = &vmstate_spapr_pci;
> }
>
> static const TypeInfo spapr_phb_info = {
> diff --git a/include/hw/pci-host/spapr.h b/include/hw/pci-host/spapr.h
> index 1e23dbf..93f9511 100644
> --- a/include/hw/pci-host/spapr.h
> +++ b/include/hw/pci-host/spapr.h
> @@ -52,14 +52,14 @@ typedef struct sPAPRPHBState {
> sPAPRTCETable *tcet;
> AddressSpace iommu_as;
>
> - struct {
> + struct spapr_pci_lsi {
> uint32_t irq;
> } lsi_table[PCI_NUM_PINS];
>
> - struct {
> + struct spapr_pci_msi {
> uint32_t config_addr;
> uint32_t irq;
> - int nvec;
> + uint32_t nvec;
> } msi_table[SPAPR_MSIX_MAX_DEVS];
>
> QLIST_ENTRY(sPAPRPHBState) list;
> --
> 1.7.10.4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Qemu-devel] [PATCH 12/17] pseries: savevm support for PCI host bridge,
Anthony Liguori <=