From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49771) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBp5w-00082t-F0 for qemu-devel@nongnu.org; Thu, 15 Jan 2015 13:24:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YBp5t-0005aT-3i for qemu-devel@nongnu.org; Thu, 15 Jan 2015 13:24:36 -0500 Received: from mail-lb0-f171.google.com ([209.85.217.171]:43482) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBp5s-0005aN-SN for qemu-devel@nongnu.org; Thu, 15 Jan 2015 13:24:33 -0500 Received: by mail-lb0-f171.google.com with SMTP id w7so14757085lbi.2 for ; Thu, 15 Jan 2015 10:24:32 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <87r3uwf4al.fsf@fimbulvetr.bsc.es> References: <1421334118-3287-1-git-send-email-peter.maydell@linaro.org> <87r3uwf4al.fsf@fimbulvetr.bsc.es> From: Peter Maydell Date: Thu, 15 Jan 2015 18:24:11 +0000 Message-ID: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH 00/15] Clean up cpu-ldst ld/st memory accessors List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Maydell , QEMU Developers On 15 January 2015 at 15:32, Llu=C3=ADs Vilanova wrot= e: > I haven't reviewed the patches, but that's a much appreciated cleanup! I = was > also trying to make sense of all the variants while implementing guest me= mory > access tracing I drew the following terrible ASCII art diagram of the remaining memory access functions... (pastebin link for those without fixed-width mail clients: http://pastebin.ubuntu.com/9757219/ ) If anybody feels they can rearrange it into something less confusing do feel free :-) +--------------------------------------------------------------------------= ------------------------------------+ | | | +-----------------------------------------------------------------------= --------------------------+ | | | | | | | | | | | +------------------------------------------------------------------= --------------------+ | | | | | | | | | | | v v | | | | MemoryRegion callbacks ld/st_*_p, memcpy, etc ! <--+ | | | ^ on host memory | | | | ^ ^ ^ | | | | | | | | | | | | | | | | | | | | | | | | | + | | | | | + +ld/st_*_phys ! | | | | | +-----------------> io_mem_read, <-----------+ | | | | | + io_mem_write ! | | | | | io_read*, io_write* <---+ | | | | | ^ | | | | | | | | + | | | | | + address_space_{rw,read,write} ! | | | | + ^ ^ | | | +helper_ld_* <------+ | | | | | ^ | | | | | | | | | | + | | | | cpu_physical_memory_rw &c+---+ | cpu_physical_memory_write_rom ! | | | | ^ ! | ^ | | | | | + | | | + | | dma_memory_rw &c ! | | +----+ cpu_ld/st_* ! | | | | | | | | + | | +-------------+ generated TCG code | + +-----------------+ cpu_physical_memory_rw_debug ! ! marks APIs intended for use by other parts of QEMU -- PMM