From: Anthony Liguori <anthony@codemonkey.ws>
To: "Andreas Färber" <afaerber@suse.de>
Cc: "Blue Swirl" <blauwirbel@gmail.com>,
qemu-devel@nongnu.org, "Aurélien Jarno" <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] [PULL] QOM CPUState, part 3: cpu_state_reset()
Date: Thu, 07 Jun 2012 09:17:29 +0800 [thread overview]
Message-ID: <4FD00129.6060505@codemonkey.ws> (raw)
In-Reply-To: <1338859366-20689-1-git-send-email-afaerber@suse.de>
On 06/05/2012 09:21 AM, Andreas Färber wrote:
> Hello Anthony,
>
> Please pull the next batch of QOM CPUState conversions cherry-picked from
> qom-next branch.
>
> These are more than 50 but all pretty trivial and a self-contained series.
Pulled. Thanks.
Regards,
Anthony Liguori
> As before, there are sh4 and mips parts that didn't get ack'ed.
> I tested them to the best of my abilities where test images were available.
>
> After this PULL, these should be the only occurrences of cpu_state_reset():
> target-mips/cpu.c: cpu_state_reset(env);
> target-mips/cpu.h:void cpu_state_reset(CPUMIPSState *s);
> target-mips/translate.c:void cpu_state_reset(CPUMIPSState *env)
> The idea is to eliminate this last occurrence when subclasses for TYPE_MIPS_CPU
> have been introduced.
>
> Known conflicts:
>
> * ppc AREG0 series (I've provided Alex with a rebased version in advance)
> * target-or32
>
> Outlook:
>
> Not included in this PULL are 22 follow-ups for ARM that clean up some
> ugliness introduced here and that prepare for QOM CPUState part 4.
> Not included either is 1 Xen patch cherry-picked from part 4.
>
> Apart from these there's 28 more patches on qom-next plus a handful that I've
> been modifying on my GitHub "realize" branch. Many if not all of those can be
> pulled in parallel to this one, coming up next. :)
>
> Regards,
> Andreas
>
> Cc: Anthony Liguori<anthony@codemonkey.ws>
> Cc: Blue Swirl<blauwirbel@gmail.com>
>
> Cc: Aurélien Jarno<aurelien@aurel32.net>
>
> The following changes since commit 8cc9b43f7c5f826b39af4b012ad89bb55faac29c:
>
> target-microblaze: lwx/swx: first implementation (2012-06-04 10:19:46 +0200)
>
> are available in the git repository at:
> git://repo.or.cz/qemu/afaerber.git qom-cpu-3
>
> Andreas Färber (74):
> target-arm: Use cpu_reset() in cpu_arm_init()
> pxa2xx: Use cpu_arm_init() and store ARMCPU
> omap: Use cpu_arm_init() to store ARMCPU in omap_mpu_state_s
> armv7m: Use cpu_arm_init() to obtain ARMCPU
> armv7m: Pass ARMCPU to armv7m_reset()
> arm_boot: Pass ARMCPU to do_cpu_reset()
> target-lm32: Let cpu_lm32_init() return LM32CPU
> lm32_boards: Use cpu_lm32_init() to obtain LM32CPU
> lm32_boards: Store LM32CPU in ResetInfo
> milkymist: Use cpu_lm32_init() to obtain LM32CPU
> milkymist: Store LM32 in ResetInfo
> target-xtensa: Let cpu_xtensa_init() return XtensaCPU
> xtensa_sim: Use cpu_xtensa_init() to obtain XtensaCPU
> xtensa_sim: Pass XtensaCPU to sim_reset()
> xtensa_lx60: Use cpu_xtensa_init() to obtain XtensaCPU
> xtensa_lx60: Pass XtensaCPU to lx60_reset()
> target-cris: Reindent cpu_cris_init()
> target-cris: Let cpu_cris_init() return CRISCPU
> axis_dev88: Use cpu_cris_init() to obtain CRISCPU
> cris-boot: Pass CRISCPU to cris_load_image()
> cris-boot: Pass CRISCPU to main_cpu_reset().
> target-microblaze: Let cpu_mb_init() return MicroBlazeCPU
> petalogix_ml605: Use cpu_mb_init() to obtain MicroBlazeCPU
> petalogix_s3adsp1800_mmu: Use cpu_mb_init() to obtain MicroBlazeCPU
> microblaze_boot: Pass MicroBlazeCPU to microblaze_load_kernel()
> target-i386: Pass X86CPU to do_cpu_{init,sipi}()
> target-i386: Let cpu_x86_init() return X86CPU
> pc: Use cpu_x86_init() to obtain X86CPU
> pc: Pass X86CPU to pc_cpu_reset()
> target-sh4: Let cpu_sh4_init() return SuperHCPU
> r2d: Use cpu_sh4_init() to obtain SuperHCPU
> r2d: Store SuperHCPU in ResetData
> target-mips: Use cpu_reset() in cpu_mips_init()
> target-mips: Use cpu_reset() in do_interrupt()
> target-mips: Let cpu_mips_init() return MIPSCPU
> mips_fulong2e: Use cpu_mips_cpu() to obtain MIPSCPU
> mips_fulong2e: Pass MIPSCPU to main_cpu_reset()
> mips_jazz: Use cpu_mips_init() to obtain MIPSCPU
> mips_jazz: Pass MIPSCPU to main_cpu_reset()
> mips_malta: Use cpu_mips_init() to obtain MIPSCPU
> mips_malta: Pass MIPSCPU to main_cpu_reset()
> mips_mipssim: Use cpu_mips_init() to obtain MIPSCPU
> mips_mipssim: Store MIPSCPU in ResetData
> mips_r4k: Use cpu_mips_init() to obtain MIPSCPU
> mips_r4k: Store MIPSCPU in ResetData
> target-ppc: Let cpu_ppc_init() return PowerPCCPU
> ppce500_mpc8544ds: Pass PowerPCCPU to mpc8544ds_cpu_reset[_sec]
> spapr: Use cpu_ppc_init() to obtain PowerPCCPU
> spapr: Pass PowerPCCPU to spapr_cpu_reset()
> ppc440_bamboo: Use cpu_ppc_init() to obtain PowerPCCPU
> ppc440_bamboo: Pass PowerPCCPU to main_cpu_reset()
> ppc4xx_devs: Use cpu_ppc_init() to obtain PowerPCCPU
> ppc4xx_devs: Pass PowerPCCPU to ppc4xx_reset()
> ppc_newworld: Use cpu_ppc_init() to obtain PowerPCCPU
> ppc_newworld: Pass PowerPCCPU to ppc_core99_reset()
> ppc_oldworld: Use cpu_ppc_init() to obtain PowerPCCPU
> ppc_oldworld: Pass PowerPCCPU to ppc_heathrow_reset()
> ppc_prep: Use cpu_ppc_init() to obtain PowerPCCPU
> ppc_prep: Pass PowerPCCPU to ppc_prep_reset()
> virtex_ml507: Use cpu_ppc_init() to obtain PowerPCCPU
> virtex_ml507: Let ppc440_init_xilinx() return PowerPCCPU
> virtex_ml507: Pass PowerPCCPU to main_cpu_reset()
> cpu-exec: Use cpu_reset() in cpu_exec() for TARGET_PPC
> target-sparc: Let cpu_sparc_init() return SPARCCPU
> sun4m: Use cpu_sparc_init() to obtain SPARCCPU
> sun4m: Pass SPARCCPU to {main,secondary}_cpu_reset()
> sun4u: Use cpu_sparc_init() to obtain SPARCCPU
> sun4u: Let cpu_devinit() return SPARCCPU
> sun4u: Store SPARCCPU in ResetData
> leon3: Use cpu_sparc_init() to obtain SPARCCPU
> leon3: Store SPARCCPU in ResetData
> bsd-user: Use cpu_reset() in after cpu_init()
> linux-user: Use cpu_reset() after cpu_init() / cpu_copy()
> Kill off cpu_state_reset()
>
> bsd-user/main.c | 2 +-
> cpu-all.h | 1 -
> cpu-exec.c | 9 ++-
> hw/arm_boot.c | 9 ++-
> hw/armv7m.c | 15 ++++--
> hw/axis_dev88.c | 6 ++-
> hw/cris-boot.c | 10 ++--
> hw/cris-boot.h | 2 +-
> hw/leon3.c | 14 +++--
> hw/lm32_boards.c | 18 ++++---
> hw/mainstone.c | 2 +-
> hw/microblaze_boot.c | 16 +++---
> hw/microblaze_boot.h | 4 +-
> hw/milkymist.c | 12 +++--
> hw/mips_fulong2e.c | 13 +++--
> hw/mips_jazz.c | 13 +++--
> hw/mips_malta.c | 15 ++++--
> hw/mips_mipssim.c | 15 +++--
> hw/mips_r4k.c | 15 +++--
> hw/nseries.c | 6 +-
> hw/omap.h | 2 +-
> hw/omap1.c | 20 ++++---
> hw/omap2.c | 8 ++--
> hw/omap_sx1.c | 2 +-
> hw/palm.c | 2 +-
> hw/pc.c | 19 ++++---
> hw/petalogix_ml605_mmu.c | 10 +++-
> hw/petalogix_s3adsp1800_mmu.c | 10 +++-
> hw/ppc440_bamboo.c | 13 +++--
> hw/ppc4xx_devs.c | 13 +++--
> hw/ppc_newworld.c | 13 +++--
> hw/ppc_oldworld.c | 13 +++--
> hw/ppc_prep.c | 13 +++--
> hw/ppce500_mpc8544ds.c | 21 +++++---
> hw/pxa.h | 2 +-
> hw/pxa2xx.c | 40 +++++++-------
> hw/r2d.c | 18 ++++---
> hw/spapr.c | 14 +++--
> hw/spitz.c | 2 +-
> hw/sun4m.c | 20 +++++---
> hw/sun4u.c | 25 ++++++----
> hw/tosa.c | 2 +-
> hw/virtex_ml507.c | 27 ++++++----
> hw/xtensa_lx60.c | 15 +++--
> hw/xtensa_sim.c | 17 ++++--
> hw/z2.c | 2 +-
> linux-user/main.c | 2 +-
> linux-user/syscall.c | 2 +-
> target-arm/helper.c | 7 +--
> target-cris/cpu.h | 12 ++++-
> target-cris/translate.c | 110 ++++++++++++++++++++---------------------
> target-i386/cpu.h | 16 +++++--
> target-i386/helper.c | 23 ++++-----
> target-i386/kvm.c | 6 ++-
> target-lm32/cpu.c | 2 +-
> target-lm32/cpu.h | 12 ++++-
> target-lm32/helper.c | 10 +---
> target-m68k/helper.c | 5 --
> target-microblaze/cpu.h | 12 ++++-
> target-microblaze/translate.c | 18 ++-----
> target-mips/cpu.h | 15 +++++-
> target-mips/helper.c | 3 +-
> target-mips/translate.c | 6 +-
> target-ppc/cpu.h | 12 ++++-
> target-ppc/helper.c | 9 +---
> target-s390x/helper.c | 9 +---
> target-sh4/cpu.h | 12 ++++-
> target-sh4/translate.c | 9 +---
> target-sparc/cpu.c | 9 +---
> target-sparc/cpu.h | 17 +++++-
> target-xtensa/cpu.c | 2 +-
> target-xtensa/cpu.h | 16 +++++-
> target-xtensa/helper.c | 9 +---
> 73 files changed, 516 insertions(+), 389 deletions(-)
>
>
prev parent reply other threads:[~2012-06-07 1:17 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-05 1:21 [Qemu-devel] [PULL] QOM CPUState, part 3: cpu_state_reset() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 01/74] target-arm: Use cpu_reset() in cpu_arm_init() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 02/74] pxa2xx: Use cpu_arm_init() and store ARMCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 03/74] omap: Use cpu_arm_init() to store ARMCPU in omap_mpu_state_s Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 04/74] armv7m: Use cpu_arm_init() to obtain ARMCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 05/74] armv7m: Pass ARMCPU to armv7m_reset() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 06/74] arm_boot: Pass ARMCPU to do_cpu_reset() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 07/74] target-lm32: Let cpu_lm32_init() return LM32CPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 08/74] lm32_boards: Use cpu_lm32_init() to obtain LM32CPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 09/74] lm32_boards: Store LM32CPU in ResetInfo Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 10/74] milkymist: Use cpu_lm32_init() to obtain LM32CPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 11/74] milkymist: Store LM32 in ResetInfo Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 12/74] target-xtensa: Let cpu_xtensa_init() return XtensaCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 13/74] xtensa_sim: Use cpu_xtensa_init() to obtain XtensaCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 14/74] xtensa_sim: Pass XtensaCPU to sim_reset() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 15/74] xtensa_lx60: Use cpu_xtensa_init() to obtain XtensaCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 16/74] xtensa_lx60: Pass XtensaCPU to lx60_reset() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 17/74] target-cris: Reindent cpu_cris_init() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 18/74] target-cris: Let cpu_cris_init() return CRISCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 19/74] axis_dev88: Use cpu_cris_init() to obtain CRISCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 20/74] cris-boot: Pass CRISCPU to cris_load_image() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 21/74] cris-boot: Pass CRISCPU to main_cpu_reset() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 22/74] target-microblaze: Let cpu_mb_init() return MicroBlazeCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 23/74] petalogix_ml605: Use cpu_mb_init() to obtain MicroBlazeCPU Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 24/74] petalogix_s3adsp1800_mmu: " Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 25/74] microblaze_boot: Pass MicroBlazeCPU to microblaze_load_kernel() Andreas Färber
2012-06-05 1:21 ` [PATCH 26/74] target-i386: Pass X86CPU to do_cpu_{init,sipi}() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 26/74] target-i386: Pass X86CPU to do_cpu_{init, sipi}() Andreas Färber
2012-06-05 1:21 ` [Qemu-devel] [PATCH 27/74] target-i386: Let cpu_x86_init() return X86CPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 28/74] pc: Use cpu_x86_init() to obtain X86CPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 29/74] pc: Pass X86CPU to pc_cpu_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 30/74] target-sh4: Let cpu_sh4_init() return SuperHCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 31/74] r2d: Use cpu_sh4_init() to obtain SuperHCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 32/74] r2d: Store SuperHCPU in ResetData Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 33/74] target-mips: Use cpu_reset() in cpu_mips_init() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 34/74] target-mips: Use cpu_reset() in do_interrupt() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 35/74] target-mips: Let cpu_mips_init() return MIPSCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 36/74] mips_fulong2e: Use cpu_mips_cpu() to obtain MIPSCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 37/74] mips_fulong2e: Pass MIPSCPU to main_cpu_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 38/74] mips_jazz: Use cpu_mips_init() to obtain MIPSCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 39/74] mips_jazz: Pass MIPSCPU to main_cpu_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 40/74] mips_malta: Use cpu_mips_init() to obtain MIPSCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 41/74] mips_malta: Pass MIPSCPU to main_cpu_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 42/74] mips_mipssim: Use cpu_mips_init() to obtain MIPSCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 43/74] mips_mipssim: Store MIPSCPU in ResetData Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 44/74] mips_r4k: Use cpu_mips_init() to obtain MIPSCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 45/74] mips_r4k: Store MIPSCPU in ResetData Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 46/74] target-ppc: Let cpu_ppc_init() return PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 47/74] ppce500_mpc8544ds: Pass PowerPCCPU to mpc8544ds_cpu_reset[_sec] Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 48/74] spapr: Use cpu_ppc_init() to obtain PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 49/74] spapr: Pass PowerPCCPU to spapr_cpu_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 50/74] ppc440_bamboo: Use cpu_ppc_init() to obtain PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 51/74] ppc440_bamboo: Pass PowerPCCPU to main_cpu_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 52/74] ppc4xx_devs: Use cpu_ppc_init() to obtain PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 53/74] ppc4xx_devs: Pass PowerPCCPU to ppc4xx_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 54/74] ppc_newworld: Use cpu_ppc_init() to obtain PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 55/74] ppc_newworld: Pass PowerPCCPU to ppc_core99_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 56/74] ppc_oldworld: Use cpu_ppc_init() to obtain PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 57/74] ppc_oldworld: Pass PowerPCCPU to ppc_heathrow_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 58/74] ppc_prep: Use cpu_ppc_init() to obtain PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 59/74] ppc_prep: Pass PowerPCCPU to ppc_prep_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 60/74] virtex_ml507: Use cpu_ppc_init() to obtain PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 61/74] virtex_ml507: Let ppc440_init_xilinx() return PowerPCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 62/74] virtex_ml507: Pass PowerPCCPU to main_cpu_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 63/74] cpu-exec: Use cpu_reset() in cpu_exec() for TARGET_PPC Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 64/74] target-sparc: Let cpu_sparc_init() return SPARCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 65/74] sun4m: Use cpu_sparc_init() to obtain SPARCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 66/74] sun4m: Pass SPARCCPU to {main, secondary}_cpu_reset() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 67/74] sun4u: Use cpu_sparc_init() to obtain SPARCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 68/74] sun4u: Let cpu_devinit() return SPARCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 69/74] sun4u: Store SPARCCPU in ResetData Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 70/74] leon3: Use cpu_sparc_init() to obtain SPARCCPU Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 71/74] leon3: Store SPARCCPU in ResetData Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 72/74] bsd-user: Use cpu_reset() in after cpu_init() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 73/74] linux-user: Use cpu_reset() after cpu_init() / cpu_copy() Andreas Färber
2012-06-05 1:22 ` [Qemu-devel] [PATCH 74/74] Kill off cpu_state_reset() Andreas Färber
2012-06-07 1:17 ` Anthony Liguori [this message]
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=4FD00129.6060505@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=afaerber@suse.de \
--cc=aurelien@aurel32.net \
--cc=blauwirbel@gmail.com \
--cc=qemu-devel@nongnu.org \
/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: link
Be 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.