On 23 March 2015 at 12:24, Peter Maydell <[email protected]> wrote:
> (This is part of the work I'm doing for transaction attributes.)
OK, here's try 2, based on feedback on the first proposal:
* address_space_rw &c remain with their current names, but
take an extra MemTxAttrs argument and return MemTxResult
rather than bool. (The latter conveniently doesn't require changes to
callsites because conversion to bool gives the same true-on-error
semantics as before.)
[maybe readbuf/writebuf would be clearer than read/write,
but it didn't seem sufficiently obvious a win to make the change]
* the ld/st_*phys functions are renamed as:
ldl_be_phys -> address_space_ldl_be &c
and all take MemTxAttrs, *MemTxResult
* rather than MEMTXATTRS_UNSPECIFIED, use TXATTRS_NONE, so the
extra arguments (TXATTRS_NONE, NULL) aren't too unwieldy
* prototypes in memory.h
* no default-to-no-attrs/etc versions of ld/st*_ phys
(if in specific devices/buses it's the best thing we should
have bus-specific dma accessors, as we do for pci)
* mechanically convert all uses of cpu_physical_memory_* to
address_space_*(&address_space_memory, ...)
[This leaves the "where do we call the unassigned-access
hooks" problem for a different patchset.]
Is there anything in there people strongly dislike, or
should I start writing coccinelle patches for this?
-- PMM