
    <<SymbolTable.mesa>>
        <<Copyright  1985 by Xerox Corporation.  All rights reserved.>>
        <<Satterthwaite on May 24, 1982 9:13 am>>
        <<Rovner on June 30, 1983 10:21 am>>
        <<Russ Atkinson (RRA) January 31, 1985 1:10:24 pm PST>>

    DIRECTORY
        FileSegment USING [Pages, Span, nullPages, nullSpan, voidPages],
        SymbolPack;

    SymbolTable: DEFINITIONS = {


    <<TYPEs>>
        Handle: TYPE = FileSegment.Pages;
            nullHandle: Handle = FileSegment.nullPages;
            voidHandle: Handle = FileSegment.voidPages;        -- used as flag
            anySpan: FileSegment.Span = FileSegment.nullSpan;    -- wild card for Forget

        Base: TYPE = POINTER TO FRAME[SymbolPack];


    <<ERRORs>>
        Missing: ERROR [handle: SymbolTable.Handle];

        IllegalBase: ERROR [base: SymbolTable.Base];

        Locked: ERROR [handle: SymbolTable.Handle, nLocks: NAT];


    <<PROCs>>
        Acquire: PROC [handle: SymbolTable.Handle] RETURNS [SymbolTable.Base];

        Release: PROC [base: SymbolTable.Base];

        Forget: PROC [handle: SymbolTable.Handle];

        BaseToHandle: PROC [base: SymbolTable.Base] RETURNS [SymbolTable.Handle];

        CacheSize: PROC RETURNS [pages: CARDINAL];

        SetCacheSize: PROC [pages: CARDINAL];

        }.

