file XMesaCmplr21DefsB.mesa - created by PJames 8/10/89
AR 429
XMesaCmplr21DefsB: DEFINITIONS = {
maxPagesInVM: CARDINAL = 268435456/512;
PageNumber: TYPE = CARDINAL[0..maxPagesInVM);
PageCount: TYPE = PageNumber;
Interval: TYPE = RECORD [
pointer: POINTER,
count: PageCount];
nullInterval: Interval = [pointer: NIL, count: 0];
Access: TYPE = {readWrite, readOnly};
Life: TYPE = {alive, dead};
Window: TYPE = RECORD [
file: INT,
base: PageNumber,
count: PageCount];
Map: PROCEDURE [
window: Window, usage: Usage ← unknownUsage, class: Class ← file,
access: Access ← readWrite, life: Life ← alive,
mustBeAligned: BOOLEANFALSE]
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)};
ScratchMap: PROCEDURE [
count: PageCount, usage: Usage ← unknownUsage,
mustBeAligned: BOOLEANFALSE]
RETURNS [pointer: POINTER] = INLINE {
RETURN[
Map[
window: [file: 3, base: NULL, count: count],
usage: usage, class: data, access: readWrite, life: dead,
mustBeAligned: mustBeAligned]
.mapUnit.pointer]};
}.