Showing changes from revision #0 to #1:
Added | Removed | Changed
Entry | |
---|---|
R0 | 24 (reason code) |
R1 | Area number |
Exit | |
---|---|
R0 | Preserved |
R1 | Preserved |
R2 | Current logical size of area, in bytes |
R3 | Base logical address of area |
R4 | Area flags |
R5 | Maximum logical size of area, in bytes |
R6 | Current physical size of area, in pages |
R7 | Maximum physical size of area, in pages |
R8 | Pointer to name of area |
The purpose of this call is to return information relating to a dynamic area. Where possible this call should be preferred over the older OS_DynamicArea 2, as it is able to correctly report the physical and logical sizes of Physical Memory Pool dynamic areas.
For doubly-mapped areas, R3 on exit from this call returns the address of the boundary between the first and second copies of the area, whereas OS_ReadDynamicArea returns the start address of the first copy (i.e. the lowest valid address in the area).
For sparse and PMP DAs, the current logical size is calculated from the number of pages that are currently mapped in. Therefore it is not guaranteed to describe the logical extent of the area.
For non-PMP DAs, the physical size values returned in R6 and R7 will be derived from the logical size values.
Unlike OS_DynamicArea 2, this call cannot be used to read the handler address and parameter.