void *RISCOS_AccessPhysicalAddress(unsigned int flags, void *phys, void **oldp)
| Entry | |
|---|---|
| flags | Bit 2 => make memory bufferable |
| Other bits must be zero | |
| phys | Physical address to access |
| oldp | Pointer to location to store old state (or NULL) |
| Privileged mode | |
| MMU on | |
| FIQs on | |
| Re-entrant |
| Exit | |
|---|---|
| - | Returns logical address corresponding to phys |
Arranges for the physical address phys to be mapped in to logical memory. In fact, the whole megabyte containing “phys” is mapped in (ie if phys = &12345678, then &12300000 to &123FFFFF become available). The memory is supervisor access only, non-cacheable, non-bufferable by default, and will remain available until the next call to RISCOS_Release/AccessPhysicalAddress (although interrupt routines or subroutines may temporarily map in something else).
When finished, the user should call RISCOS_ReleasePhysicalAddress.