4.4.10 Address translation

The memory_translateAddress() function is used to translate an address in one memory space into an address in another memory space. A common example is to convert a virtual address into a physical address.

A client can get a list of useful and supported translations by calling memory_getUsefulAddressTranslations(). It does not necessarily return all supported translations, but all returned translations are guaranteed to be supported by memory_translateAddress().

Implementing memory_getUsefulAddressTranslations() is optional, even when memory_translateAddress() is implemented.

Address translation is usually only supported for specific pairs of memory spaces and only in specific directions. If the requested translation is not supported, E_unsupported_translation is returned. A translation might fail even if it is supported, for example because a certain address is not mapped in the output memory space. In this case, the returned address array is empty.

Clients can derive a short and consistent description for each supported translation by using the names of the memory spaces, for example "memspace_name_in -> memspace_name_out".

Non-ConfidentialPDF file icon PDF version101196_0100_00_en
Copyright © 2018 Arm Limited or its affiliates. All rights reserved.