<> <> <> <> <> <> <> DIRECTORY BcdDefs USING[SGIndex, VersionStamp, NullVersion, BcdBase], PrincOps USING[GlobalFrameHandle], Rope USING[ROPE], SafeStorage USING[Type], RTSymbolDefs USING[SymbolTableHandle, SymbolTableBase, SymbolModuleIndex, SymbolIndex]; RTSymbols: DEFINITIONS = BEGIN OPEN BcdDefs, PrincOps, Rope, RTSymbolDefs, SafeStorage; <> <<>> <> <<>> AcquireSTB: PROC [sth: SymbolTableHandle] RETURNS [SymbolTableBase]; <> ReleaseSTB: PROC [stb: SymbolTableBase]; <<... releases a SymbolTableHandle.>> <> OuterFromSTH: PROC [sth: SymbolTableHandle, inner: PROC [stb: SymbolTableBase] ]; <> <> < ReleaseSTB[stb] ];>> <> AcquireSTBFromGFH: PROC [gfh: GlobalFrameHandle] RETURNS [SymbolTableBase]; <<... returns a SymbolTableBase for a given global frame. As usual, the SymbolTableBase must be returned via ReleaseSTB.>> OuterFromGFH: PROC [gfh: GlobalFrameHandle, inner: PROC [stb: SymbolTableBase] ]; <> <> < ReleaseSTB[stb] ];>> <> <<>> AcquireSTBFromMDI: PROC [stb: SymbolTableBase, mdi: SymbolModuleIndex] RETURNS [SymbolTableBase]; <<... returns a SymbolTableBase for a given SymbolModuleIndex. As usual, the SymbolTableBase must be returned via ReleaseSTB.>> OuterFromMDI: PROC [stb: SymbolTableBase, mdi: SymbolModuleIndex, inner: PROC [base: SymbolTableBase]]; <> <> < ReleaseSTB[stbN] ];>> <> <<>> AcquireSTBFromSGI: PROC [bcd: BcdBase, sgi: SGIndex] RETURNS [SymbolTableBase]; <<... returns a SymbolTableBase for a given bcd and segment. As usual, the SymbolTableBase must be returned via ReleaseSTB.>> <<>> OuterFromSGI: PROC [bcd: BcdBase, sgi: SGIndex, inner: PROC [base: SymbolTableBase]]; <> <> < ReleaseSTB[stb] ];>> <> <> <<>> NewSymbolHandle: PROC [fileName: ROPE, base: CARDINAL, pages: CARDINAL, version: VersionStamp _ NullVersion] RETURNS [SymbolTableHandle]; <> GetSTHForModule: PROC [stamp: VersionStamp, fileName: ROPE, moduleName: ROPE] RETURNS [SymbolTableHandle]; <<... acquires the STH given a version stamp and optional file names. If stamp = NullVersion, then the file and module names are not optional, and any version will be accepted. If stamp # NullVersion, then only that version will be accepted. The file and module names are optional if the module is found in the already present symbols, or if the version map(s) yield a result.>> BaseToHandle: PROC [stb: SymbolTableBase] RETURNS [SymbolTableHandle]; <<... returns the SymbolTableHandle that denotes the given SymbolTableBase.>> STPages: PROC [sth: SymbolTableHandle] RETURNS [CARDINAL]; <<... returns the number of pages in the specified symbol table>> <> GetTypeSymbols: PROC [type: Type] RETURNS [stb: SymbolTableBase, sei: SymbolIndex]; GetOriginalTypeSymbols: PROC [type: Type] RETURNS [stb: SymbolTableBase, sei: SymbolIndex]; END.