exec.c: Rename cpu_physical_memory_write_rom_internal()

Rename cpu_physical_memory_write_rom_internal() to
address_space_write_rom_internal(), and make it take
MemTxAttrs and return a MemTxResult. This brings its
API into line with address_space_write().

This is an internal function to exec.c; fixing its API
will allow us to change the global function
cpu_physical_memory_write_rom().

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20181122133507.30950-2-peter.maydell@linaro.org
This commit is contained in:
Peter Maydell 2018-12-14 13:30:48 +00:00
parent 8c06fbdf36
commit 75693e1411
1 changed files with 13 additions and 7 deletions

20
exec.c
View File

@ -3388,8 +3388,12 @@ enum write_rom_type {
FLUSH_CACHE, FLUSH_CACHE,
}; };
static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as, static inline MemTxResult address_space_write_rom_internal(AddressSpace *as,
hwaddr addr, const uint8_t *buf, int len, enum write_rom_type type) hwaddr addr,
MemTxAttrs attrs,
const uint8_t *buf,
int len,
enum write_rom_type type)
{ {
hwaddr l; hwaddr l;
uint8_t *ptr; uint8_t *ptr;
@ -3399,8 +3403,7 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
rcu_read_lock(); rcu_read_lock();
while (len > 0) { while (len > 0) {
l = len; l = len;
mr = address_space_translate(as, addr, &addr1, &l, true, mr = address_space_translate(as, addr, &addr1, &l, true, attrs);
MEMTXATTRS_UNSPECIFIED);
if (!(memory_region_is_ram(mr) || if (!(memory_region_is_ram(mr) ||
memory_region_is_romd(mr))) { memory_region_is_romd(mr))) {
@ -3423,13 +3426,15 @@ static inline void cpu_physical_memory_write_rom_internal(AddressSpace *as,
addr += l; addr += l;
} }
rcu_read_unlock(); rcu_read_unlock();
return MEMTX_OK;
} }
/* used for ROM loading : can write in RAM and ROM */ /* used for ROM loading : can write in RAM and ROM */
void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr, void cpu_physical_memory_write_rom(AddressSpace *as, hwaddr addr,
const uint8_t *buf, int len) const uint8_t *buf, int len)
{ {
cpu_physical_memory_write_rom_internal(as, addr, buf, len, WRITE_DATA); address_space_write_rom_internal(as, addr, MEMTXATTRS_UNSPECIFIED,
buf, len, WRITE_DATA);
} }
void cpu_flush_icache_range(hwaddr start, int len) void cpu_flush_icache_range(hwaddr start, int len)
@ -3444,8 +3449,9 @@ void cpu_flush_icache_range(hwaddr start, int len)
return; return;
} }
cpu_physical_memory_write_rom_internal(&address_space_memory, address_space_write_rom_internal(&address_space_memory,
start, NULL, len, FLUSH_CACHE); start, MEMTXATTRS_UNSPECIFIED,
NULL, len, FLUSH_CACHE);
} }
typedef struct { typedef struct {