-- TexMemDefs.mesa -- last written by Doug Wyatt, December 13, 1979 6:04 PM TexMemDefs: DEFINITIONS = BEGIN MemError: SIGNAL; -- runtime memory checking detected an error ZonePtr: TYPE = PRIVATE POINTER TO RECORD[UNSPECIFIED]; -- allocation from primary memory AllocMem: PROCEDURE[size: CARDINAL] RETURNS[POINTER]; FreeMem: PROCEDURE[p: POINTER, size: CARDINAL]; AllocString: PUBLIC PROCEDURE[len: CARDINAL] RETURNS[STRING]; FreeString: PUBLIC PROCEDURE[s: STRING]; -- dumb allocation from a transient zone CreateZone: PROCEDURE[init,grow: CARDINAL] RETURNS[ZonePtr]; OpenZone: PROCEDURE[ZonePtr]; CloseZone: PROCEDURE[ZonePtr] RETURNS[BOOLEAN]; Alloc: PROCEDURE[zone: ZonePtr, size: CARDINAL] RETURNS[POINTER]; DestroyZone: PROCEDURE[ZonePtr]; -- allocating and freeing segments AllocSeg: PROCEDURE[pages: CARDINAL, resident: BOOLEAN_FALSE] RETURNS[base: POINTER]; FreeSeg: PROCEDURE[base: POINTER]; PagesForWords: PROCEDURE[words: CARDINAL] RETURNS[pages: CARDINAL]; WordsForPages: PROCEDURE[pages: CARDINAL] RETURNS[words: CARDINAL]; PutHighSeg: PROCEDURE[POINTER] RETURNS[LONG POINTER]; GetHighSeg: PROCEDURE[POINTER, LONG POINTER]; TexMem: PROGRAM; END.