-- LongBcdOps.Mesa  Edited by Sandman on August 12, 1980  4:14 PM
-- Copyright  Xerox Corporation 1979, 1980

DIRECTORY
  BcdDefs USING [
    BCD, CTIndex, CTRecord, EVIndex, EVRecord, EXPIndex, EXPRecord, FPRecord,
    FTIndex, FTRecord, IMPIndex, IMPRecord, MTIndex, MTRecord, Namee, NameRecord,
    NTIndex, NTRecord, PackedString, SGIndex, SGRecord, SPIndex, SPRecord,
    TMRecord, TYPRecord, VersionStamp];

BcdOps: DEFINITIONS =
  BEGIN OPEN BcdDefs;
  
  BcdBase: TYPE = LONG POINTER TO BcdDefs.BCD;
  
  NTHandle: TYPE = LONG POINTER TO BcdDefs.NTRecord;
  CTHandle: TYPE = LONG POINTER TO BcdDefs.CTRecord;
  MTHandle: TYPE = LONG POINTER TO BcdDefs.MTRecord;
  IMPHandle: TYPE = LONG POINTER TO BcdDefs.IMPRecord;
  EXPHandle: TYPE = LONG POINTER TO BcdDefs.EXPRecord;
  EVHandle: TYPE = LONG POINTER TO BcdDefs.EVRecord;
  SGHandle: TYPE = LONG POINTER TO BcdDefs.SGRecord;
  FTHandle: TYPE = LONG POINTER TO BcdDefs.FTRecord;
  SPHandle: TYPE = LONG POINTER TO BcdDefs.SPRecord;
  FPHandle: TYPE = LONG POINTER TO BcdDefs.FPRecord;
  TYPHandle: TYPE = LONG POINTER TO BcdDefs.TYPRecord;
  TMHandle: TYPE = LONG POINTER TO BcdDefs.TMRecord;
  
  NameString: TYPE = LONG POINTER TO PackedString;
  
  ProcessConfigs: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [CTHandle, CTIndex] RETURNS [BOOLEAN]]
    RETURNS [cth: CTHandle, cti: CTIndex];
  
  ProcessExternals: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [EVHandle, EVIndex] RETURNS [BOOLEAN]]
    RETURNS [evh: EVHandle, evi: EVIndex];
  
  ProcessExports: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [EXPHandle, EXPIndex] RETURNS [BOOLEAN]]
    RETURNS [eth: EXPHandle, eti: EXPIndex];
  
  ProcessFiles: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [FTHandle, FTIndex] RETURNS [BOOLEAN]]
    RETURNS [fth: FTHandle, fti: FTIndex];
  
  ProcessImports: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [IMPHandle, IMPIndex] RETURNS [BOOLEAN]]
    RETURNS [ith: IMPHandle, iti: IMPIndex];
  
  ProcessModules: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [MTHandle, MTIndex] RETURNS [BOOLEAN]]
    RETURNS [mth: MTHandle, mti: MTIndex];
  
  ProcessNames: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [NTHandle, NTIndex] RETURNS [BOOLEAN]]
    RETURNS [nth: NTHandle, nti: NTIndex];
  
  ProcessSegs: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [SGHandle, SGIndex] RETURNS [BOOLEAN]]
    RETURNS [sgh: SGHandle, sgi: SGIndex];
  
  ProcessSpaces: PROCEDURE [
    bcd: BcdBase, proc: PROCEDURE [SPHandle, SPIndex] RETURNS [BOOLEAN]]
    RETURNS [sph: SPHandle, spi: SPIndex];
  
  FindName: PROCEDURE [bcd: BcdBase, owner: Namee] RETURNS [name: NameRecord];
  
  ModuleVersion: PROCEDURE [bcd: BcdBase, mti: MTIndex]
    RETURNS [version: VersionStamp];
  
  END.