mirror of https://github.com/xemu-project/xemu.git
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:
parent
8c06fbdf36
commit
75693e1411
20
exec.c
20
exec.c
|
@ -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 {
|
||||||
|
|
Loading…
Reference in New Issue