XMesaCmplr21DefsA:
DEFINITIONS = {
maxPagesInVM: CARDINAL = 1024;
PageNumber: TYPE = CARDINAL[0..maxPagesInVM);
PageOffset: TYPE = PageNumber;
PageCount: TYPE = PageNumber;
Interval:
TYPE =
RECORD [
pointer: POINTER,
count: PageCount
];
nullInterval: Interval = [pointer: NIL, count: 0];
Access: TYPE = {readWrite, readOnly};
Life: TYPE = {alive, dead};
Pathname:
TYPE =
MACHINE
DEPENDENT
RECORD [
length: CARD16,
maxlength: CARD16,
text: PACKED ARRAY [0..1024) OF CHAR];
File :
TYPE =
RECORD [
host: CARD32,
path: Pathname];
Window:
TYPE =
RECORD [
file: File,
base: PageNumber,
count: PageCount];
Map: PROCEDURE [ window: Window, usage: Usage ← unknownUsage,
class: Class ← file,
access: Access ← readWrite, life: Life ← alive, mustBeAligned: BOOLEAN ← FALSE]
RETURNS [mapUnit: Interval];
Usage: TYPE = [0..2048);
unknownUsage: Usage = 0;
Class:
TYPE =
MACHINE
DEPENDENT{
unknown(0), code(1), globalFrame(2), localFrame(3), zone(4), file(5), data(6),
spareA(7), spareB(8), resident(31)};
nullFile: File = [host: 0, path: nullPathname];
nullPathname: Pathname = [length: 0, maxlength: 0,