Dynamic areas

Introduction and Overview

The following reason codes are passed in R0 to SWI OS_DynamicArea :

ReasonOperation
0Create (PRM 5a-53)
1Remove (PRM 5a-56)
2Read information (PRM 5a-57)
3Enumerate (PRM 5a-58)
4Renumber (PRM 5a-59)
5Return available space (Shrinkable dynamic areas)
6Read change information (for internal use only)
7Enumerate with information (for internal use only)
8Limit maximum area size (Clamps)
9Claim region of sparse area (Sparse Dynamic Areas)
10Release region of sparse area (Sparse Dynamic Areas)
11Lock area (Lockable Dynamic Areas)
12Unlock area (Lockable Dynamic Areas)
13Resize locked area (Lockable Dynamic Areas)
14Describe heap area (Dynamic areas with automatic heap extension)
15Claim space in heap area (Dynamic areas with automatic heap extension)
16Release block in heap area (Dynamic areas with automatic heap extension)
17Resize block in heap area (Dynamic areas with automatic heap extension)
18Read size of block in heap area (Dynamic areas with automatic heap extension)
19Change domain state of area (Domain-based dynamic areas)

Technical Details

Creation flags

For OS_DynamicArea 0, the following flags are used :

Bit(s)Meaning
0-3Access permissions (PRM 5a-54, PRM 1-384)
4Area is not bufferable (PRM 5a-54)
5Area is not cacheable (PRM 5a-54)
6Area is doubly mapped (PRM 5a-54)
7Area is not user resizable (PRM 5a-54)
8Area requires specific pages of memory (PRM 5a-54)
9Area is shrinkable (Shrinkable dynamic areas)
10Area is sparse (Sparse Dynamic Areas)
11Area is application bound (reserved for future expansion)
12Area is in DMAable memory (DMA-able dynamic areas)
13Area is locked (Lockable Dynamic Areas)
14Area is a heap area (Dynamic areas with automatic heap extension)
15Area requires specific physical pages (Physical Mapping of Dynamic Areas)
16Area handles aborts (Abort-Trapping dynamic areas)
17Area is in a domain (Domain-based dynamic areas)
18Area is not user visible (Non-User-Visible Dynamic Areas)
19Area supplies a fixed list of pages (Fixed page dynamic areas)
20-31Reserved for future expansion

Dynamic area handler reason codes

The dynamic area handler has the following reason codes :

ReasonHandler operation
0PreGrow (PRM 5a-42, Physical Mapping of Dynamic Areas)
1PostGrow (PRM 5a-43)
2PreShrink (PRM 5a-44)
3PostShrink (PRM 5a-44)
4TestShrink (Shrinkable dynamic areas)
5Abort (Abort-Trapping dynamic areas)