Dynamic Areas



DMA-able dynamic areas

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.

This documentation is copyright 3QD Developments Ltd 2013 and may not be reproduced or published in any form without the copyright holders permission. RISC OS is subject to continuous development and improvement as such all information is reproduced by 3QD Developments Ltd in good faith and is believed to be correct at the time of publication E&OE. 3QD Developments Ltd cannot accept any liability for any loss or damage arising from the use of any information provided as part of the RISC OS Documentation.

HTML document version 1.03 3rd November 2015