-- file SymbolTable.Mesa
-- last modified by Satterthwaite on August 29, 1978 11:33 AM

DIRECTORY
SegmentDefs: FROM "segmentdefs" USING [FileSegmentHandle],
SymbolPack: FROM "symbolpack";

SymbolTable: DEFINITIONS =
BEGIN
OPEN SegmentDefs;

Handle: TYPE = PRIVATE RECORD [segment: FileSegmentHandle];
NullHandle: SymbolTable.Handle = [NIL];

Base: TYPE = POINTER TO FRAME[SymbolPack];

Missing: ERROR [seg: FileSegmentHandle];

TableForSegment: PROCEDURE [seg: FileSegmentHandle] RETURNS [SymbolTable.Handle];
SegmentForTable: PROCEDURE [table: SymbolTable.Handle] RETURNS [FileSegmentHandle];

Acquire: PROCEDURE [handle: SymbolTable.Handle] RETURNS [SymbolTable.Base];
Release: PROCEDURE [base: SymbolTable.Base];

CacheSize: PROCEDURE RETURNS [pages: CARDINAL];
SetCacheSize: PROCEDURE [pages: CARDINAL];

SuspendCache, RestartCache: PROCEDURE;

IllegalBase: ERROR [base: SymbolTable.Base];

END.