<<>> <> <> 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: 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)}; ScratchMap: PROCEDURE [ count: PageCount, usage: Usage _ unknownUsage, mustBeAligned: BOOLEAN _ FALSE] 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]}; }.