-- FrameDefs.mesa; edited by Sandman on June 30, 1980  4:53 PM
-- Copyright  Xerox Corporation 1979, 1980

DIRECTORY
  ControlDefs USING [GFTIndex, GlobalFrameHandle],
  Mopcodes USING [zKFCB],
  SDDefs USING [sUnNew];

FrameDefs: DEFINITIONS =
  BEGIN OPEN ControlDefs;

  -- Global Frame Table management


  EnumerateGlobalFrames: PROCEDURE [
    proc: PROCEDURE [GlobalFrameHandle] RETURNS [BOOLEAN]]
    RETURNS [GlobalFrameHandle];
  NoGlobalFrameSlots: SIGNAL [CARDINAL];
  EnterGlobalFrame: PROCEDURE [frame: GlobalFrameHandle, nslots: CARDINAL]
    RETURNS [gfi: GFTIndex];
  RemoveGlobalFrame: PROCEDURE [frame: GlobalFrameHandle];

  GlobalFrame: PROCEDURE [link: UNSPECIFIED] RETURNS [GlobalFrameHandle];
  DeletedFrame: PROCEDURE [gfi: GFTIndex] RETURNS [BOOLEAN];
  ValidateGlobalFrame: PROCEDURE [UNSPECIFIED];
  InvalidGlobalFrame: SIGNAL [frame: UNSPECIFIED];
  ValidateFrame: PROCEDURE [UNSPECIFIED];
  InvalidFrame: SIGNAL [frame: UNSPECIFIED];

  LoadConfig: PROCEDURE [name: STRING] RETURNS [PROGRAM];
  NewConfig: PROCEDURE [name: STRING];
  RunConfig: PROCEDURE [name: STRING];
  UnNew: PROCEDURE [frame: GlobalFrameHandle] = MACHINE CODE
    BEGIN Mopcodes.zKFCB, SDDefs.sUnNew END;

  UnNewConfig: PROCEDURE [link: UNSPECIFIED];
  SelfDestruct: PROCEDURE;
  GetCaller: PROCEDURE RETURNS [PROGRAM];
  IsBound: PROCEDURE [UNSPECIFIED] RETURNS [BOOLEAN];

  -- Code Stuff


  SwapOutCode: PROCEDURE [f: GlobalFrameHandle];
  SwapInCode: PROCEDURE [f: GlobalFrameHandle];
  MakeCodeResident: PROCEDURE [f: GlobalFrameHandle];
  LockCode: PROCEDURE [link: UNSPECIFIED];
  UnlockCode: PROCEDURE [link: UNSPECIFIED];

  END...