diff options
| author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-02-25 23:24:38 +0000 |
|---|---|---|
| committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-02-25 23:24:38 +0000 |
| commit | 8b1f24b0903a8e43e035d5680aed2fa62c68b197 (patch) | |
| tree | 89bd2f9e49589da533c8ed79076719cb50ff13de | |
| parent | b448f2f36c473f9ac8de4200a897268e0cf419c1 (diff) | |
| download | focaccia-qemu-8b1f24b0903a8e43e035d5680aed2fa62c68b197.tar.gz focaccia-qemu-8b1f24b0903a8e43e035d5680aed2fa62c68b197.zip | |
new physical memory access API (used by DMA accesses)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@645 c046a42c-6fe2-441c-8c8c-71466251a162
| -rw-r--r-- | cpu-all.h | 17 | ||||
| -rw-r--r-- | gdbstub.c | 4 |
2 files changed, 16 insertions, 5 deletions
diff --git a/cpu-all.h b/cpu-all.h index 931ea052dc..247674c637 100644 --- a/cpu-all.h +++ b/cpu-all.h @@ -599,10 +599,21 @@ int cpu_register_io_memory(int io_index, CPUReadMemoryFunc **mem_read, CPUWriteMemoryFunc **mem_write); -void cpu_physical_memory_rw(CPUState *env, uint8_t *buf, target_ulong addr, +void cpu_physical_memory_rw(target_ulong addr, uint8_t *buf, int len, int is_write); -int cpu_memory_rw_debug(CPUState *env, - uint8_t *buf, target_ulong addr, int len, int is_write); +static inline void cpu_physical_memory_read(target_ulong addr, uint8_t *buf, + int len) +{ + cpu_physical_memory_rw(addr, buf, len, 0); +} +static inline void cpu_physical_memory_write(target_ulong addr, const uint8_t *buf, + int len) +{ + cpu_physical_memory_rw(addr, (uint8_t *)buf, len, 1); +} + +int cpu_memory_rw_debug(CPUState *env, target_ulong addr, + uint8_t *buf, int len, int is_write); /* read dirty bit (return 0 or 1) */ static inline int cpu_physical_memory_is_dirty(target_ulong addr) diff --git a/gdbstub.c b/gdbstub.c index 4fa4af79a3..29f73c9cbc 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -472,7 +472,7 @@ int cpu_gdbstub(void *opaque, int (*main_loop)(void *opaque), int port) if (*p == ',') p++; len = strtoul(p, NULL, 16); - if (cpu_memory_rw_debug(env, mem_buf, addr, len, 0) != 0) + if (cpu_memory_rw_debug(env, addr, mem_buf, len, 0) != 0) memset(mem_buf, 0, len); memtohex(buf, mem_buf, len); put_packet(buf); @@ -486,7 +486,7 @@ int cpu_gdbstub(void *opaque, int (*main_loop)(void *opaque), int port) if (*p == ',') p++; hextomem(mem_buf, p, len); - if (cpu_memory_rw_debug(env, mem_buf, addr, len, 1) != 0) + if (cpu_memory_rw_debug(env, addr, mem_buf, len, 1) != 0) put_packet("ENN"); else put_packet("OK"); |