diff options
author | Philippe Mathieu-Daudé <philmd@redhat.com> | 2022-01-15 21:37:23 +0100 |
---|---|---|
committer | Laurent Vivier <laurent@vivier.eu> | 2022-01-20 09:09:37 +0100 |
commit | 75f01c68b5c630a9a6b21b93febf3a871a9111ba (patch) | |
tree | 37f7a429e17bd1ce867e1a375613657f85cb6cde /include/exec | |
parent | 5e0214cdeee17de949f2565f4429c15173179ae3 (diff) | |
download | qemu-75f01c68b5c630a9a6b21b93febf3a871a9111ba.zip qemu-75f01c68b5c630a9a6b21b93febf3a871a9111ba.tar.gz qemu-75f01c68b5c630a9a6b21b93febf3a871a9111ba.tar.bz2 |
exec/memory: Extract address_space_set() from dma_memory_set()
dma_memory_set() does a DMA barrier, set the address space with
a constant value. The constant value filling code is not specific
to DMA and can be used for AddressSpace. Extract it as a new
helper: address_space_set().
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
[lv: rebase]
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Peter Xu <peterx@redhat.com>
Message-Id: <20220115203725.3834712-2-laurent@vivier.eu>
Diffstat (limited to 'include/exec')
-rw-r--r-- | include/exec/memory.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/exec/memory.h b/include/exec/memory.h index 63be794..4d5997e 100644 --- a/include/exec/memory.h +++ b/include/exec/memory.h @@ -2908,6 +2908,22 @@ address_space_write_cached(MemoryRegionCache *cache, hwaddr addr, } } +/** + * address_space_set: Fill address space with a constant byte. + * + * Return a MemTxResult indicating whether the operation succeeded + * or failed (eg unassigned memory, device rejected the transaction, + * IOMMU fault). + * + * @as: #AddressSpace to be accessed + * @addr: address within that address space + * @c: constant byte to fill the memory + * @len: the number of bytes to fill with the constant byte + * @attrs: memory transaction attributes + */ +MemTxResult address_space_set(AddressSpace *as, hwaddr addr, + uint8_t c, hwaddr len, MemTxAttrs attrs); + #ifdef NEED_CPU_H /* enum device_endian to MemOp. */ static inline MemOp devend_memop(enum device_endian end) |