-- CodePackProcs.mesa
-- last edited by JGS on 17-Sep-82 13:51:36
-- last edited by Satterthwaite, December 29, 1982 3:54 pm
DIRECTORY
BcdDefs: TYPE USING [MTIndex],
HashTypes: TYPE USING [HTIndex],
PackageSymbols: TYPE USING [OPIndex],
SourceBcd: TYPE USING [CTreeIndex],
String: TYPE USING [SubString],
Table: TYPE USING [Base, Index, Limit];
CodePackProcs: DEFINITIONS={
TreeIndex: TYPE~Table.Index; -- Tree.Index (avoids circular definition)
-- Describes the procedures from a module that are included in a code pack
ModuleIndex: TYPE~Table.Base RELATIVE POINTER[0..Table.Limit) TO ModuleRecord;
nullModuleIndex: ModuleIndex~ModuleIndex.LAST;
ModuleRecord: TYPE;
-- Determination of procedures in each code pack
Determine: PROC [configTreeRoot: SourceBcd.CTreeIndex];
Destroy: PROC;
-- Inquiry
EnumerateSegments: PROC [userProc: PROC [segNode: TreeIndex] RETURNS [stop: BOOL]];
SubStringForSegmentNode: PROC [ss: String.SubString, segNode: TreeIndex];
EnumerateCodePacks: PROC [
segNode: TreeIndex,
userProc: PROC [cpNode: TreeIndex] RETURNS [stop: BOOL]];
SubStringForCodePackNode: PROC [ss: String.SubString, cpNode: TreeIndex];
HtiForCodePackNode: PROC [cpNode: TreeIndex] RETURNS [hti: HashTypes.HTIndex];
IsDiscardCodePack: PROC [cpNode: TreeIndex] RETURNS [yes: BOOL];
EnumerateModules: PROC [ -- each module's symbol table is loaded
cpNode: TreeIndex, -- (via ModuleSymbols.Load) before userProc
userProc: PROC [ -- is called (and unloaded afterwards)
mti: BcdDefs.MTIndex, module: ModuleIndex] RETURNS [stop: BOOL]];
-- return TRUE if any procedures are specified by a ModuleRecord
AnyProcs: PROC [module: ModuleIndex] RETURNS [reply: BOOL];
EnumerateProcs: PROC [
module: ModuleIndex,
userProc: PROC [opi: PackageSymbols.OPIndex] RETURNS [stop: BOOL]];
SubStringForOPIndex: PROC [ss: String.SubString, opi: PackageSymbols.OPIndex];
}.