qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 00/15] Clean up cpu-ldst ld/st memory accessors


From: Peter Maydell
Subject: Re: [Qemu-devel] [PATCH 00/15] Clean up cpu-ldst ld/st memory accessors
Date: Thu, 15 Jan 2015 18:24:11 +0000

On 15 January 2015 at 15:32, Lluís Vilanova <address@hidden> wrote:
> 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 memory
> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]