diff options
Diffstat (limited to 'docs/source/techspecs/device_memory_interface.rst')
-rw-r--r-- | docs/source/techspecs/device_memory_interface.rst | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/docs/source/techspecs/device_memory_interface.rst b/docs/source/techspecs/device_memory_interface.rst index 2eae46f3906..1f8e2b1c37b 100644 --- a/docs/source/techspecs/device_memory_interface.rst +++ b/docs/source/techspecs/device_memory_interface.rst @@ -68,7 +68,7 @@ describing its configuration. Some examples to look up when needed: The ``has_configured_map`` method allows to test whether an ``address_map`` has been associated with a given space in the -``memory_space_config`` method . That allows optional memory spaces to +``memory_space_config`` method. That allows optional memory spaces to be implemented, such as ``AS_OPCODES`` in certain CPU cores. @@ -152,14 +152,17 @@ Indicates whether a given space actually exists. .. code-block:: C++ - bool translate(int spacenum, int intention, offs_t &address); + bool translate(int spacenum, int intention, offs_t &address, address_space *&target_space); Does a logical to physical address translation through the device's MMU. spacenum gives the space number, intention for the type of the -future access (``TRANSLATE_(READ\|WRITE\|FETCH)(\|_USER\|_DEBUG)``) -and address is an in/out parameter holding the address to translate on -entry and the translated version on return. Should return ``true`` if -the translation went correctly, or ``false`` if the address is unmapped. +future access (``TR_(READ\|WRITE\|FETCH)``), address is an in/out +parameter holding the address to translate on entry and the translated +version on return, and finally target_space is the actual space the +access would end up in, which may be in a different device. Should +return ``true`` if the translation went correctly, or ``false`` if the +address is unmapped. The call must not change the state of the +device. Note that for some historical reason, the device itself must override the virtual method ``memory_translate`` with the same signature. |