Introduction and Overview
The following reason codes are passed in R0 to SWI OS_DynamicArea :
| Reason | Operation |
|---|---|
| 0 | Create (PRM 5a-53) |
| 1 | Remove (PRM 5a-56) |
| 2 | Read information (PRM 5a-57) |
| 3 | Enumerate (PRM 5a-58) |
| 4 | Renumber (PRM 5a-59) |
| 5 | Return available space (Shrinkable dynamic areas) |
| 6 | Read change information (for internal use only) |
| 7 | Enumerate with information (for internal use only) |
| 8 | Limit maximum area size (Clamps) |
| 9 | Claim region of sparse area (Sparse Dynamic Areas) |
| 10 | Release region of sparse area (Sparse Dynamic Areas) |
| 11 | Lock area (Lockable Dynamic Areas) |
| 12 | Unlock area (Lockable Dynamic Areas) |
| 13 | Resize locked area (Lockable Dynamic Areas) |
| 14 | Describe heap area (Dynamic areas with automatic heap extension) |
| 15 | Claim space in heap area (Dynamic areas with automatic heap extension) |
| 16 | Release block in heap area (Dynamic areas with automatic heap extension) |
| 17 | Resize block in heap area (Dynamic areas with automatic heap extension) |
| 18 | Read size of block in heap area (Dynamic areas with automatic heap extension) |
| 19 | Change 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-3 | Access permissions (PRM 5a-54, PRM 1-384) | |
| 4 | Area is not bufferable (PRM 5a-54) | |
| 5 | Area is not cacheable (PRM 5a-54) | |
| 6 | Area is doubly mapped (PRM 5a-54) | |
| 7 | Area is not user resizable (PRM 5a-54) | |
| 8 | Area requires specific pages of memory (PRM 5a-54) | |
| 9 | Area is shrinkable (Shrinkable dynamic areas) | |
| 10 | Area is sparse (Sparse Dynamic Areas) | |
| 11 | Area is application bound (reserved for future expansion) | |
| 12 | Area is in DMAable memory (DMA-able dynamic areas) | |
| 13 | Area is locked (Lockable Dynamic Areas) | |
| 14 | Area is a heap area (Dynamic areas with automatic heap extension) | |
| 15 | Area requires specific physical pages (Physical Mapping of Dynamic Areas) | |
| 16 | Area handles aborts (Abort-Trapping dynamic areas) | |
| 17 | Area is in a domain (Domain-based dynamic areas) | |
| 18 | Area is not user visible (Non-User-Visible Dynamic Areas) | |
| 19 | Area supplies a fixed list of pages (Fixed page dynamic areas) | |
| 20-31 | Reserved for future expansion | |
Dynamic area handler reason codes
The dynamic area handler has the following reason codes :
| Reason | Handler operation |
|---|---|
| 0 | PreGrow (PRM 5a-42, Physical Mapping of Dynamic Areas) |
| 1 | PostGrow (PRM 5a-43) |
| 2 | PreShrink (PRM 5a-44) |
| 3 | PostShrink (PRM 5a-44) |
| 4 | TestShrink (Shrinkable dynamic areas) |
| 5 | Abort (Abort-Trapping dynamic areas) |