Bit(s) Meaning
0 - 3 access privileges to be given to each page in the area (same format as for OS_ReadMemMapEntries/OS_SetMemMapEntries)
4 Set if area is not bufferable by chips œ
5 Set if area is not cacheable by chips œ
6 If set, area is doubly mapped (reserved), otherwise area is singly mapped
7 0 => area may be dragged by the user in Task Manager window (has red bar)
1 => area may not be dragged by the user in Task Manager window (has green bar)
8 0 => area does not require specific physical pages (ie R1 is undefined on entry to the PreGrow and PostGrow handlers)
1 => area may require specific physical pages (ie R1 points at a page block on entry to the PreGrow and PostGrow handlers)
9 1 => area is Shrinkable (3.80+)
10 1 => area is Sparse (3.80+)
11 1 => area is bound to client application (3.80+)
12 - 30 reserved (must be zero)
31 /Virtualise/ Virtual memory is active for dynamic area. If this bit is set when the area is created then virtual memory is activated immediately. Note that no error is produced if it is not possible to start virtual memory for the new dynamic area. Further notes
Dynamic Area Flags, bit 31 - Virtualise
Note that reading this flag bit only gives meaningful results if the
Virtualise module is loaded at the time. This is because the OS is
perfectly happy to maintain and return this bit itself.
The area size may be specified to be larger than the amount of RAM in the
computer, up to a limit of 256MB. However, if -1 is specified for the maximum size
of the area then the maximum size is set to the limit set using Virtualise_Configure (by default the
amount of physical RAM, per normal). The maximum may be specified larger than
the RAM size even if virtual memory is not being started initially. If
Virtualise_Start is later used then the virtual memory will be able to
utilise all the of the allocated address space.
One important point to note is that there is only a limited amount of address
space available in the machine. This can soon get used up if all applications
ask for the maximum possible size, and triggers potentially dangerous problems
with signed pointers in top bit set addresses.
Advice on bits 4 & 5
Setting flags such that r4 bit 4 is 1 and bit 5 is 0 (area is cacheable but not bufferable) is not sensible. Thus on 3.80+ a meaning may be attached, but its use is reserved for future expansion. Thus don't use it on any kernel version.
|
|
|