exec: Let flatview API take void pointer arguments

Only flatview_[read/write]_continue use a byte pointer to increment
an offset. For the users, we are only dealing with a blob buffer.
Use a void pointer argument. This will let us simplify the
address_space API in the next commit.

Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
Philippe Mathieu-Daudé 2020-02-19 19:52:44 +01:00
parent 208046768d
commit a152be43dc
2 changed files with 9 additions and 7 deletions

14
exec.c
View File

@ -2780,9 +2780,9 @@ void cpu_check_watchpoint(CPUState *cpu, vaddr addr, vaddr len,
} }
static MemTxResult flatview_read(FlatView *fv, hwaddr addr, static MemTxResult flatview_read(FlatView *fv, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf, hwaddr len); MemTxAttrs attrs, void *buf, hwaddr len);
static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs, static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs,
const uint8_t *buf, hwaddr len); const void *buf, hwaddr len);
static bool flatview_access_valid(FlatView *fv, hwaddr addr, hwaddr len, static bool flatview_access_valid(FlatView *fv, hwaddr addr, hwaddr len,
bool is_write, MemTxAttrs attrs); bool is_write, MemTxAttrs attrs);
@ -3147,7 +3147,7 @@ static bool prepare_mmio_access(MemoryRegion *mr)
/* Called within RCU critical section. */ /* Called within RCU critical section. */
static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr, static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
MemTxAttrs attrs, MemTxAttrs attrs,
const uint8_t *buf, const void *ptr,
hwaddr len, hwaddr addr1, hwaddr len, hwaddr addr1,
hwaddr l, MemoryRegion *mr) hwaddr l, MemoryRegion *mr)
{ {
@ -3155,6 +3155,7 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
uint64_t val; uint64_t val;
MemTxResult result = MEMTX_OK; MemTxResult result = MEMTX_OK;
bool release_lock = false; bool release_lock = false;
const uint8_t *buf = ptr;
for (;;) { for (;;) {
if (!memory_access_is_direct(mr, true)) { if (!memory_access_is_direct(mr, true)) {
@ -3194,7 +3195,7 @@ static MemTxResult flatview_write_continue(FlatView *fv, hwaddr addr,
/* Called from RCU critical section. */ /* Called from RCU critical section. */
static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs, static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs,
const uint8_t *buf, hwaddr len) const void *buf, hwaddr len)
{ {
hwaddr l; hwaddr l;
hwaddr addr1; hwaddr addr1;
@ -3211,7 +3212,7 @@ static MemTxResult flatview_write(FlatView *fv, hwaddr addr, MemTxAttrs attrs,
/* Called within RCU critical section. */ /* Called within RCU critical section. */
MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr, MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf, MemTxAttrs attrs, void *ptr,
hwaddr len, hwaddr addr1, hwaddr l, hwaddr len, hwaddr addr1, hwaddr l,
MemoryRegion *mr) MemoryRegion *mr)
{ {
@ -3219,6 +3220,7 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
uint64_t val; uint64_t val;
MemTxResult result = MEMTX_OK; MemTxResult result = MEMTX_OK;
bool release_lock = false; bool release_lock = false;
uint8_t *buf = ptr;
for (;;) { for (;;) {
if (!memory_access_is_direct(mr, false)) { if (!memory_access_is_direct(mr, false)) {
@ -3256,7 +3258,7 @@ MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
/* Called from RCU critical section. */ /* Called from RCU critical section. */
static MemTxResult flatview_read(FlatView *fv, hwaddr addr, static MemTxResult flatview_read(FlatView *fv, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf, hwaddr len) MemTxAttrs attrs, void *buf, hwaddr len)
{ {
hwaddr l; hwaddr l;
hwaddr addr1; hwaddr addr1;

View File

@ -2336,7 +2336,7 @@ void address_space_unmap(AddressSpace *as, void *buffer, hwaddr len,
MemTxResult address_space_read_full(AddressSpace *as, hwaddr addr, MemTxResult address_space_read_full(AddressSpace *as, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf, hwaddr len); MemTxAttrs attrs, uint8_t *buf, hwaddr len);
MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr, MemTxResult flatview_read_continue(FlatView *fv, hwaddr addr,
MemTxAttrs attrs, uint8_t *buf, MemTxAttrs attrs, void *buf,
hwaddr len, hwaddr addr1, hwaddr l, hwaddr len, hwaddr addr1, hwaddr l,
MemoryRegion *mr); MemoryRegion *mr);
void *qemu_map_ram_ptr(RAMBlock *ram_block, ram_addr_t addr); void *qemu_map_ram_ptr(RAMBlock *ram_block, ram_addr_t addr);