diff options
author | 2009-01-22 16:59:11 +0000 | |
---|---|---|
committer | 2009-01-22 16:59:11 +0000 | |
commit | 6d16c2f88f2a866bec27c4d170ddd97ee8e41a0e (patch) | |
tree | 77f31b52168f1a8c7042be16b2a2b9821e525e97 /cpu-all.h | |
parent | Fix build with --disable-sdl (diff) | |
download | qemu-kvm-6d16c2f88f2a866bec27c4d170ddd97ee8e41a0e.tar.gz qemu-kvm-6d16c2f88f2a866bec27c4d170ddd97ee8e41a0e.tar.bz2 qemu-kvm-6d16c2f88f2a866bec27c4d170ddd97ee8e41a0e.zip |
Add target memory mapping API (Avi Kivity)
Devices accessing large amounts of memory (as with DMA) will wish to obtain
a pointer to guest memory rather than access it indirectly via
cpu_physical_memory_rw(). Add a new API to convert target addresses to
host pointers.
In case the target address does not correspond to RAM, a bounce buffer is
allocated. To prevent the guest from causing the host to allocate unbounded
amounts of bounce buffer, this memory is limited (currently to one page).
Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6394 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'cpu-all.h')
-rw-r--r-- | cpu-all.h | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -923,6 +923,12 @@ static inline void cpu_physical_memory_write(target_phys_addr_t addr, { cpu_physical_memory_rw(addr, (uint8_t *)buf, len, 1); } +void *cpu_physical_memory_map(target_phys_addr_t addr, + target_phys_addr_t *plen, + int is_write); +void cpu_physical_memory_unmap(void *buffer, target_phys_addr_t len, + int is_write, target_phys_addr_t access_len); + uint32_t ldub_phys(target_phys_addr_t addr); uint32_t lduw_phys(target_phys_addr_t addr); uint32_t ldl_phys(target_phys_addr_t addr); |