-- File: DynamicZone.mesa -- Last edited by Levin: 5-Oct-80 17:13:59 DIRECTORY AltoDefs USING [PageCount]; DynamicZone: DEFINITIONS = BEGIN PageCount: TYPE = AltoDefs.PageCount; InitializeZones: PROCEDURE; -- must be called before any other procedures in this interface. FinalizeZones: PROCEDURE; -- caled to clean up zone allocator. Note: it is the client's responsibility -- to destroy any zones previously created with CreateZone. CreateZone: PROCEDURE [initialPages: PageCount ← 1, id: STRING ← NIL] RETURNS [MDSZone]; -- creates a new zone whose allocation behavior is determined by 'initialPages'. -- 'id' is for assistance in debugging. TooManyZones: ERROR; -- raised by CreateZone if the requested zone cannot be created. SystemZone: PROCEDURE RETURNS [MDSZone]; -- returns the shared system zone. DestroyZone: PROCEDURE [zone: MDSZone]; -- unconditionally destroys the zone. It is the client's responsibility to ensure -- that no dangling pointers remain. PruneZone: PROCEDURE [zone: MDSZone]; -- attempts to eliminate excessive space allocated to the zone. END.