Introduction and Overview
With RISC OS 4.04 a new bit was added to the OS_DynamicArea creation flags to allow areas to be forced into memory which may be used for DMA operations. This allows systems which have fast memory closer to the processor, such as the Kinetic CPU upgrade, to allocate memory from the base system memory which can be used for DMA operations.
When bit 12 of the area flags is set during the creation of the dynamic area this forces all page allocations to be taken from memory which may be used for DMA operations. Prior to RISC OS 4.42 (Kernel version 8.77), this was achieved by replacing the dynamic area handler function, and as a result such areas could not be shrinkable or abortable. With Kernel version 8.77 and later the allocation of pages is performed internally within the PreGrow handler and the supplied dynamic area handler will be called for all other reason codes. This allows such areas to now be Abortable and to provide a TestShrink handler to allow the areas to be reduced when free memory is low.