Entry | |
---|---|
R0 | 65 |
R1 | Logical address |
Exit | |
---|---|
R0,R1 | Physical address |
R2 | Size/alignment of mapping |
This call allows software to perform logical to physical address translation. Unlike other calls such as OS_Memory 0, this call works on all types of memory / page table entry (regular 4KB RAM pages, 1MB I/O mappings, etc.)
Addresses need not be page aligned. The returned address will include the appropriate sub-page offset such that it is addressing the same byte as the input address.
If there is no mapping for the provided address, a “bad address” error (error no. &FC) will be returned. However, R2 will still be updated to contain the size/alignment of the mapping, to allow code which walks over an address range to skip ahead to the next page.
This call was introduced in RISC OS 5.29.