-- file: ZoneAllocDefs.Mesa
-- edited by McCreight, January 7, 1982 10:33 AM
-- edited by gene on March 6, 1981 5:14 PM
-- Copyright Xerox Corporation 1979, 1980, 1981, 1982
ZoneAllocDefs: DEFINITIONS =
BEGIN
uz: UNCOUNTED ZONE;
mdsz: MDSZone;
GetAnXMZone: PROCEDURE [
pagesPerExtension: CARDINAL ← 10, -- added segments are of this size
largeSize: CARDINAL ← 1024, -- > largeSize is allocated as a segment
checkSegments, checkHeap: BOOLEAN ← FALSE
]
RETURNS [UNCOUNTED ZONE];
DestroyAnXMZone: PROCEDURE [z: UNCOUNTED ZONE]
RETURNS [UNCOUNTED ZONE];
XMZoneWordsInUse: PROCEDURE[z: UNCOUNTED ZONE] RETURNS[LONG INTEGER];
GetTheMDSZone: PROCEDURE RETURNS [MDSZone];
GetXMAllocatorProcs: PROCEDURE
RETURNS [
palloc: PROC [z: UNCOUNTED ZONE, l: CARDINAL] RETURNS [lp: LONG POINTER],
pfree: PROC [z: UNCOUNTED ZONE, lp: LONG POINTER]];
-- Procedures to aid debugging
ZoneSegments: PROCEDURE[z: UNCOUNTED ZONE
] RETURNS[small, large: LONG INTEGER];
InXMZone: PROCEDURE[z: UNCOUNTED ZONE,
lp: LONG POINTER] RETURNS[BOOLEAN];
MustBeInXMZone: PROCEDURE[z: UNCOUNTED ZONE,
lp: LONG POINTER] = INLINE
{IF NOT InXMZone[z, lp] THEN
SIGNAL MalformedXMZone};
MalformedXMZone: SIGNAL;
END.