-- PilotLoadStateOps.mesa
-- Last Modified by McJones,  April 23, 1980  5:04 PM 
-- Last Modified by Paul Rovner,  May 6, 1982 12:19 pm 
DIRECTORY
  BcdOps: FROM "BcdOps" USING [BcdBase],
  PilotLoadStateFormat: FROM "PilotLoadStateFormat" USING [
    ConfigIndex, ModuleInfo, NullConfig],
  PrincOps: FROM "PrincOps" USING [GFTIndex];
PilotLoadStateOps: DEFINITIONS =
  BEGIN OPEN PrincOps, PilotLoadStateFormat;
  ConfigIndex: TYPE = PilotLoadStateFormat.ConfigIndex;
    NullConfig: ConfigIndex = PilotLoadStateFormat.NullConfig;
  MapConfigToReal: PROC[cgfi: GFTIndex, config: ConfigIndex]
    RETURNS [rgfi: GFTIndex];
  MapRealToConfig: PROC[rgfi: GFTIndex]
    RETURNS [cgfi: GFTIndex, config: ConfigIndex];
  EnterModule: PROC[rgfi: GFTIndex, module: ModuleInfo];
  GetModule: PROC[rgfi: GFTIndex] RETURNS [module: ModuleInfo];
  Map: TYPE = DESCRIPTOR FOR ARRAY OF GFTIndex;
  GetMap: PROC[config: ConfigIndex] RETURNS [map: Map];
  ReleaseMap: PROC[map: Map];
  InputLoadState: PROC RETURNS [nbcds: ConfigIndex];
  ReleaseLoadState: PROC;
  UpdateLoadState: PROC[config: ConfigIndex, bcd: BcdOps.BcdBase];
  RemoveConfig: PROC[map: Map, config: ConfigIndex];
  LoadStateInvalid: ERROR;
  LoadStateFull: ERROR;
  AcquireBcd: PROC[config: ConfigIndex] RETURNS [bcd: BcdOps.BcdBase];
  ReleaseBcd: PROC[bcd: BcdOps.BcdBase];
  BcdUnresolved: PROC[bcd: ConfigIndex] RETURNS [BOOLEAN];
  BcdExports: PROC[bcd: ConfigIndex] RETURNS [BOOLEAN];
  BcdExportsTypes: PROC[bcd: ConfigIndex] RETURNS [BOOLEAN];
  EnumerationDirection: TYPE = {recentfirst, recentlast};
  EnumerateModules: PROC[
    proc: PROC[rgfi: GFTIndex, module: ModuleInfo] RETURNS [BOOLEAN]]
    RETURNS [GFTIndex];
  EnumerateBcds: PROC[dir: EnumerationDirection,
    proc: PROC[ConfigIndex] RETURNS [BOOLEAN]]
    RETURNS [config: ConfigIndex];
  SetLoadState: PROC[newState: LONG POINTER];
END.