Text preview for : SymbolCache.mesa_Sep78.pdf part of xerox SymbolCache.mesa Sep78 xerox mesa 4.0_1978 listing Mesa_4_System SymbolCache.mesa_Sep78.pdf



Back to : SymbolCache.mesa_Sep78.pd | Home

SymbolCache.mesa 2-Sep-78 18:05:56 Page 1



-- file SymbolCache.mesa
-- last edited by Sandman, May 12, 1978 4:46 PM
DIRECTORY
AllocDefs: FROM "allocdefs" USING [
AddSwapStratugy, CantSwap, RemoveSwapStrategy, SwappingProcedure,
SwapStrategy],
AltoDefs: FROM "altodefs" USING [PageSize],
SegmentDefs: FROM "segmentdefs" USING [
FileSegmentAddress, FileSegmentHandle, InsufficientVM, InvalidFP, SwapIn,
SwapOut, Unlock],
SymbolTable: FROM "symboltable" USING [
bb, cacheInfo, etxb, extb, fgTable, hashVec, ht, link, ltb, mdb, notifier,
NullNotifier, seb, sourceFile, ssb, stHandle, tb],
SymbolTableDefs: FROM "symboltabledefs" USING [
Symbo Hab 1 eBase, Symbo Hab 1 eHand 1 e],
SymDefs: FROM "symdefs" USING [fgHeader, HTIndex, HTRecord, STHeader],
SystemDefs: FROM "systemdefs" USING [AllocateHeapNode],
TableDefs: FROM "tabledefs" USING [TableBase];
DEFINITIONS FROM SymbolTableDefs;
SymbolCache: PROGRAM
IMPORTS AlloeDefs, initial: SymbolTable, SegmentDefs, SystemDefs
EXPORTS SymbolTableDefs SHARES SymbolTableDefs B
BEGIN
OPEN SegmentDefs;
-- public interface
NoSymbolTable: PUBLIC SIGNAL [FileSegmentHandle] = CODE;
TableForSegment: PUBLIC PROCEDURE [seg: FileSegmentHandle] RETURNS [SymbolTableHandle] =
BEGIN
IF seg = NIL THEN ERROR NoSymbolTable[seg];
RETURN [SymbolTableHandle[seg]]
END;
SegmentForTable: PUBLIC PROCEDURE [table: SymbolTableHandle] RETURNS [FileSegmentHandle] =
BEGIN
RETURN [table. segment]
END;

IllegalSymbolBase: PUBLIC SIGNAL [base: SymbolTableBase] = CODE;
AcquireSymbolTable: PUBLIC PROCEDURE [handle: SymbolTableHandle]
RETURNS [base: SymbolTableBase]