From: Samuel Ortiz <sameo@linux.intel.com> To: qemu-devel@nongnu.org Cc: Shannon Zhao <shannon.zhaosl@gmail.com>, Stefano Stabellini <sstabellini@kernel.org>, Anthony Perard <anthony.perard@citrix.com>, Richard Henderson <rth@twiddle.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, xen-devel@lists.xenproject.org, Paolo Bonzini <pbonzini@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Igor Mammedov <imammedo@redhat.com>, qemu-arm@nongnu.org, Peter Maydell <peter.maydell@linaro.org>, Eduardo Habkost <ehabkost@redhat.com>, Yang Zhong <yang.zhong@intel.com> Subject: [Qemu-devel] [PATCH v5 12/24] hw: acpi: Export the MCFG getter Date: Mon, 5 Nov 2018 02:40:35 +0100 [thread overview] Message-ID: <20181105014047.26447-13-sameo@linux.intel.com> (raw) In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> From: Yang Zhong <yang.zhong@intel.com> The ACPI MCFG getter is not x86 specific and could be called from anywhere within generic ACPI API, so let's export it. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Yang Zhong <yang.zhong@intel.com> --- include/hw/acpi/aml-build.h | 1 + hw/acpi/aml-build.c | 24 ++++++++++++++++++++++++ hw/i386/acpi-build.c | 22 ---------------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h index 1861e37ebf..64ea371656 100644 --- a/include/hw/acpi/aml-build.h +++ b/include/hw/acpi/aml-build.h @@ -408,6 +408,7 @@ void *acpi_data_push(GArray *table_data, unsigned size); unsigned acpi_data_len(GArray *table); Object *acpi_get_pci_host(void); void acpi_get_pci_holes(Range *hole, Range *hole64); +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg); /* Align AML blob size to a multiple of 'align' */ void acpi_align_size(GArray *blob, unsigned align); void acpi_add_table(GArray *table_offsets, GArray *table_data); diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 869ed70db3..2c5446ab23 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -32,6 +32,8 @@ #include "hw/i386/pc.h" #include "sysemu/tpm.h" #include "hw/acpi/tpm.h" +#include "qom/qom-qobject.h" +#include "qapi/qmp/qnum.h" #define PCI_HOST_BRIDGE_CONFIG_ADDR 0xcf8 #define PCI_HOST_BRIDGE_IO_0_MIN_ADDR 0x0000 @@ -1657,6 +1659,28 @@ void acpi_get_pci_holes(Range *hole, Range *hole64) NULL)); } +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) +{ + Object *pci_host; + QObject *o; + + pci_host = acpi_get_pci_host(); + g_assert(pci_host); + + o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NULL); + if (!o) { + return false; + } + mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o)); + qobject_unref(o); + + o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); + assert(o); + mcfg->mcfg_size = qnum_get_uint(qobject_to(QNum, o)); + qobject_unref(o); + return true; +} + static void crs_range_insert(GPtrArray *ranges, uint64_t base, uint64_t limit) { CrsRangeEntry *entry; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 14e2624d14..d8bba16776 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1856,28 +1856,6 @@ build_amd_iommu(GArray *table_data, BIOSLinker *linker) "IVRS", table_data->len - iommu_start, 1, NULL, NULL); } -static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) -{ - Object *pci_host; - QObject *o; - - pci_host = acpi_get_pci_host(); - g_assert(pci_host); - - o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NULL); - if (!o) { - return false; - } - mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o)); - qobject_unref(o); - - o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); - assert(o); - mcfg->mcfg_size = qnum_get_uint(qobject_to(QNum, o)); - qobject_unref(o); - return true; -} - static void acpi_build(AcpiBuildTables *tables, MachineState *machine, AcpiConfiguration *acpi_conf) -- 2.19.1
WARNING: multiple messages have this Message-ID (diff)
From: Samuel Ortiz <sameo@linux.intel.com> To: qemu-devel@nongnu.org Cc: Yang Zhong <yang.zhong@intel.com>, Peter Maydell <peter.maydell@linaro.org>, Stefano Stabellini <sstabellini@kernel.org>, Eduardo Habkost <ehabkost@redhat.com>, "Michael S. Tsirkin" <mst@redhat.com>, Shannon Zhao <shannon.zhaosl@gmail.com>, Igor Mammedov <imammedo@redhat.com>, qemu-arm@nongnu.org, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, Anthony Perard <anthony.perard@citrix.com>, xen-devel@lists.xenproject.org, Richard Henderson <rth@twiddle.net> Subject: [PATCH v5 12/24] hw: acpi: Export the MCFG getter Date: Mon, 5 Nov 2018 02:40:35 +0100 [thread overview] Message-ID: <20181105014047.26447-13-sameo@linux.intel.com> (raw) In-Reply-To: <20181105014047.26447-1-sameo@linux.intel.com> From: Yang Zhong <yang.zhong@intel.com> The ACPI MCFG getter is not x86 specific and could be called from anywhere within generic ACPI API, so let's export it. Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Yang Zhong <yang.zhong@intel.com> --- include/hw/acpi/aml-build.h | 1 + hw/acpi/aml-build.c | 24 ++++++++++++++++++++++++ hw/i386/acpi-build.c | 22 ---------------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h index 1861e37ebf..64ea371656 100644 --- a/include/hw/acpi/aml-build.h +++ b/include/hw/acpi/aml-build.h @@ -408,6 +408,7 @@ void *acpi_data_push(GArray *table_data, unsigned size); unsigned acpi_data_len(GArray *table); Object *acpi_get_pci_host(void); void acpi_get_pci_holes(Range *hole, Range *hole64); +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg); /* Align AML blob size to a multiple of 'align' */ void acpi_align_size(GArray *blob, unsigned align); void acpi_add_table(GArray *table_offsets, GArray *table_data); diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c index 869ed70db3..2c5446ab23 100644 --- a/hw/acpi/aml-build.c +++ b/hw/acpi/aml-build.c @@ -32,6 +32,8 @@ #include "hw/i386/pc.h" #include "sysemu/tpm.h" #include "hw/acpi/tpm.h" +#include "qom/qom-qobject.h" +#include "qapi/qmp/qnum.h" #define PCI_HOST_BRIDGE_CONFIG_ADDR 0xcf8 #define PCI_HOST_BRIDGE_IO_0_MIN_ADDR 0x0000 @@ -1657,6 +1659,28 @@ void acpi_get_pci_holes(Range *hole, Range *hole64) NULL)); } +bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) +{ + Object *pci_host; + QObject *o; + + pci_host = acpi_get_pci_host(); + g_assert(pci_host); + + o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NULL); + if (!o) { + return false; + } + mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o)); + qobject_unref(o); + + o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); + assert(o); + mcfg->mcfg_size = qnum_get_uint(qobject_to(QNum, o)); + qobject_unref(o); + return true; +} + static void crs_range_insert(GPtrArray *ranges, uint64_t base, uint64_t limit) { CrsRangeEntry *entry; diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 14e2624d14..d8bba16776 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -1856,28 +1856,6 @@ build_amd_iommu(GArray *table_data, BIOSLinker *linker) "IVRS", table_data->len - iommu_start, 1, NULL, NULL); } -static bool acpi_get_mcfg(AcpiMcfgInfo *mcfg) -{ - Object *pci_host; - QObject *o; - - pci_host = acpi_get_pci_host(); - g_assert(pci_host); - - o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_BASE, NULL); - if (!o) { - return false; - } - mcfg->mcfg_base = qnum_get_uint(qobject_to(QNum, o)); - qobject_unref(o); - - o = object_property_get_qobject(pci_host, PCIE_HOST_MCFG_SIZE, NULL); - assert(o); - mcfg->mcfg_size = qnum_get_uint(qobject_to(QNum, o)); - qobject_unref(o); - return true; -} - static void acpi_build(AcpiBuildTables *tables, MachineState *machine, AcpiConfiguration *acpi_conf) -- 2.19.1 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2018-11-05 1:42 UTC|newest] Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-11-05 1:40 [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 01/24] hw: i386: Decouple the ACPI build from the PC machine type Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-09 14:23 ` [Qemu-devel] " Igor Mammedov 2018-11-09 14:23 ` Igor Mammedov 2018-11-21 14:42 ` [Qemu-devel] " Samuel Ortiz 2018-11-21 14:42 ` Samuel Ortiz 2018-11-22 15:13 ` Igor Mammedov 2018-11-22 15:13 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 02/24] hw: acpi: Export ACPI build alignment API Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-09 14:27 ` [Qemu-devel] " Igor Mammedov 2018-11-09 14:27 ` Igor Mammedov 2018-11-21 14:42 ` [Qemu-devel] " Samuel Ortiz 2018-11-21 14:42 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 03/24] hw: acpi: The RSDP build API can return void Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-06 10:23 ` [Qemu-devel] " Paolo Bonzini 2018-11-06 10:23 ` Paolo Bonzini 2018-11-06 10:43 ` [Qemu-devel] " Samuel Ortiz 2018-11-06 10:43 ` Samuel Ortiz 2018-11-08 14:24 ` [Qemu-devel] " Igor Mammedov 2018-11-08 14:24 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 04/24] hw: acpi: Export the RSDP build API Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 05/24] hw: acpi: Implement XSDT support for RSDP Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-08 14:16 ` [Qemu-devel] " Igor Mammedov 2018-11-08 14:16 ` Igor Mammedov 2018-11-08 14:36 ` [Qemu-devel] " Samuel Ortiz 2018-11-08 14:36 ` Samuel Ortiz 2018-11-08 14:53 ` [Qemu-devel] " Igor Mammedov 2018-11-08 14:53 ` Igor Mammedov 2018-11-19 18:27 ` Michael S. Tsirkin 2018-11-19 18:27 ` Michael S. Tsirkin 2018-11-20 8:23 ` [Qemu-devel] " Igor Mammedov 2018-11-20 8:23 ` Igor Mammedov 2018-11-21 14:42 ` [Qemu-devel] " Samuel Ortiz 2018-11-21 14:42 ` Samuel Ortiz 2018-11-22 16:26 ` Igor Mammedov 2018-11-22 16:26 ` Igor Mammedov 2018-11-23 9:36 ` Samuel Ortiz 2018-11-23 9:36 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 06/24] hw: acpi: Factorize the RSDP build API implementation Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 07/24] hw: acpi: Generalize AML build routines Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-09 13:37 ` [Qemu-devel] " Igor Mammedov 2018-11-21 15:00 ` Samuel Ortiz 2018-11-21 15:00 ` Samuel Ortiz 2018-11-09 13:37 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 08/24] hw: acpi: Factorize _OSC AML across architectures Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 09/24] hw: i386: Move PCI host definitions to pci_host.h Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-09 14:30 ` [Qemu-devel] " Igor Mammedov 2018-11-09 14:30 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 10/24] hw: acpi: Export the PCI host and holes getters Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-13 15:59 ` [Qemu-devel] " Igor Mammedov 2018-11-13 15:59 ` Igor Mammedov 2018-11-21 15:43 ` Samuel Ortiz 2018-11-21 15:43 ` Samuel Ortiz 2018-11-23 10:55 ` Igor Mammedov 2018-11-23 10:55 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 11/24] hw: acpi: Export and generalize the PCI host AML API Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-14 10:55 ` [Qemu-devel] " Igor Mammedov 2018-11-14 10:55 ` Igor Mammedov 2018-11-21 23:12 ` [Qemu-devel] " Samuel Ortiz 2018-11-21 23:12 ` Samuel Ortiz 2018-11-23 11:04 ` Igor Mammedov 2018-11-23 11:04 ` Igor Mammedov 2018-11-05 1:40 ` Samuel Ortiz [this message] 2018-11-05 1:40 ` [PATCH v5 12/24] hw: acpi: Export the MCFG getter Samuel Ortiz 2018-11-15 12:36 ` [Qemu-devel] " Igor Mammedov 2018-11-15 12:36 ` Igor Mammedov 2018-11-21 23:21 ` [Qemu-devel] " Samuel Ortiz 2018-11-21 23:21 ` Samuel Ortiz 2018-11-27 13:54 ` Igor Mammedov 2018-11-27 13:54 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 13/24] hw: acpi: Do not create hotplug method when handler is not defined Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-09 9:12 ` [Qemu-devel] " Igor Mammedov 2018-11-09 9:12 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 14/24] hw: i386: Make the hotpluggable memory size property more generic Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-15 12:49 ` [Qemu-devel] " Igor Mammedov 2018-11-15 12:49 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 15/24] hw: i386: Export the i386 ACPI SRAT build method Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-15 13:28 ` [Qemu-devel] " Igor Mammedov 2018-11-15 13:28 ` Igor Mammedov 2018-11-21 23:27 ` Samuel Ortiz 2018-11-21 23:27 ` Samuel Ortiz 2018-11-26 15:47 ` Igor Mammedov 2018-11-26 15:47 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 16/24] hw: acpi: Fix memory hotplug AML generation error Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-08 14:23 ` [Qemu-devel] " Igor Mammedov 2018-11-08 14:23 ` Igor Mammedov 2019-01-14 18:35 ` [Qemu-devel] " Michael S. Tsirkin 2019-01-14 18:35 ` Michael S. Tsirkin 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 17/24] hw: acpi: Export the PCI hotplug API Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 18/24] hw: i386: Export the MADT build method Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-16 9:27 ` [Qemu-devel] " Igor Mammedov 2018-11-16 9:27 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 19/24] hw: acpi: Retrieve the PCI bus from AcpiPciHpState Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-16 9:39 ` [Qemu-devel] " Igor Mammedov 2018-11-16 9:39 ` Igor Mammedov 2018-11-16 19:42 ` [Qemu-devel] " Boeuf, Sebastien 2018-11-19 15:37 ` Igor Mammedov 2018-11-19 15:37 ` Igor Mammedov 2018-11-19 18:02 ` [Qemu-devel] " Boeuf, Sebastien 2018-11-19 18:02 ` Boeuf, Sebastien 2018-11-20 8:26 ` [Qemu-devel] " Igor Mammedov 2018-11-20 8:26 ` Igor Mammedov 2018-11-16 19:42 ` Boeuf, Sebastien 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 20/24] hw: acpi: Define ACPI tables builder interface Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-16 16:02 ` [Qemu-devel] " Igor Mammedov 2018-11-16 16:02 ` Igor Mammedov 2018-11-21 23:57 ` Samuel Ortiz 2018-11-21 23:57 ` Samuel Ortiz 2018-11-27 14:08 ` Igor Mammedov 2018-11-27 14:08 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 21/24] hw: i386: Implement the ACPI builder interface for PC Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 22/24] hw: pci-host: piix: Return PCI host pointer instead of PCI bus Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-16 11:09 ` [Qemu-devel] " Igor Mammedov 2018-11-16 11:09 ` Igor Mammedov 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 23/24] hw: i386: Set ACPI configuration PCI host pointer Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-05 1:40 ` [Qemu-devel] [PATCH v5 24/24] hw: i386: Refactor PCI host getter Samuel Ortiz 2018-11-05 1:40 ` Samuel Ortiz 2018-11-16 16:29 ` [Qemu-devel] [PATCH v5 00/24] ACPI reorganization for hardware-reduced API addition Igor Mammedov 2018-11-16 16:29 ` Igor Mammedov 2018-11-16 16:37 ` Paolo Bonzini 2018-11-16 16:37 ` Paolo Bonzini 2018-11-19 15:31 ` Igor Mammedov 2018-11-19 15:31 ` Igor Mammedov 2018-11-19 17:14 ` Paolo Bonzini 2018-11-19 17:14 ` Paolo Bonzini 2018-11-19 18:14 ` Michael S. Tsirkin 2018-11-19 18:14 ` Michael S. Tsirkin 2018-11-20 21:35 ` Paolo Bonzini 2018-11-20 21:35 ` Paolo Bonzini 2018-11-20 12:57 ` Igor Mammedov 2018-11-20 12:57 ` Igor Mammedov 2018-11-20 21:36 ` Paolo Bonzini 2018-11-20 21:36 ` Paolo Bonzini 2018-11-21 12:35 ` Michael S. Tsirkin 2018-11-21 12:35 ` Michael S. Tsirkin 2018-11-21 13:50 ` Samuel Ortiz 2018-11-21 13:50 ` Samuel Ortiz 2018-11-21 13:57 ` Michael S. Tsirkin 2018-11-21 13:57 ` Michael S. Tsirkin 2018-11-21 14:15 ` Igor Mammedov 2018-11-21 14:15 ` Igor Mammedov 2018-11-21 14:38 ` Samuel Ortiz 2018-11-21 14:38 ` Samuel Ortiz 2018-11-22 10:39 ` Igor Mammedov 2018-11-22 10:39 ` Igor Mammedov 2018-11-22 0:17 ` Samuel Ortiz 2018-11-22 0:17 ` Samuel Ortiz
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20181105014047.26447-13-sameo@linux.intel.com \ --to=sameo@linux.intel.com \ --cc=anthony.perard@citrix.com \ --cc=ehabkost@redhat.com \ --cc=imammedo@redhat.com \ --cc=marcel.apfelbaum@gmail.com \ --cc=mst@redhat.com \ --cc=pbonzini@redhat.com \ --cc=peter.maydell@linaro.org \ --cc=qemu-arm@nongnu.org \ --cc=qemu-devel@nongnu.org \ --cc=rth@twiddle.net \ --cc=shannon.zhaosl@gmail.com \ --cc=sstabellini@kernel.org \ --cc=xen-devel@lists.xenproject.org \ --cc=yang.zhong@intel.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.