Skip to content

Commit

Permalink
rdma: introduce qemu_ram_foreach_block()
Browse files Browse the repository at this point in the history
This is used during RDMA initialization in order to
transmit a description of all the RAM blocks to the
peer for later dynamic chunk registration purposes.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Chegu Vinod <chegu_vinod@hp.com>
Tested-by: Chegu Vinod <chegu_vinod@hp.com>
Tested-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
  • Loading branch information
Michael R. Hines authored and Juan Quintela committed Jun 27, 2013
1 parent be903b2 commit bd2fa51
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
9 changes: 9 additions & 0 deletions exec.c
Expand Up @@ -2630,3 +2630,12 @@ bool cpu_physical_memory_is_io(hwaddr phys_addr)
memory_region_is_romd(mr));
}
#endif

void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque)
{
RAMBlock *block;

QTAILQ_FOREACH(block, &ram_list.blocks, next) {
func(block->host, block->offset, block->length, opaque);
}
}
5 changes: 5 additions & 0 deletions include/exec/cpu-common.h
Expand Up @@ -113,6 +113,11 @@ void cpu_physical_memory_write_rom(hwaddr addr,
extern struct MemoryRegion io_mem_rom;
extern struct MemoryRegion io_mem_notdirty;

typedef void (RAMBlockIterFunc)(void *host_addr,
ram_addr_t offset, ram_addr_t length, void *opaque);

void qemu_ram_foreach_block(RAMBlockIterFunc func, void *opaque);

#endif

#endif /* !CPU_COMMON_H */

0 comments on commit bd2fa51

Please sign in to comment.