-- AlpineControl.mesa
-- Starting Alpine.
-- Last edited by
--   MBrown on January 31, 1984 8:34:42 pm PST
--   Kolling on January 31, 1983 5:32 pm


  DIRECTORY
    AlpineEnvironment,
    Rope;

AlpineControl: DEFINITIONS =
  BEGIN
  FileID: TYPE = AlpineEnvironment.FileID;
  VolumeID: TYPE = AlpineEnvironment.VolumeID;
  FileStore: TYPE = AlpineEnvironment.FileStore;
  PageCount: TYPE = AlpineEnvironment.PageCount;
  ROPE: TYPE = Rope.ROPE;

  Initialize: PROC [
    filePageMgrNormalChunks: NAT,
    filePageMgrLogChunks: NAT,
    filePageMgrLeaderChunks: NAT,
    coordinatorMapHashArraySlots: NAT, -- prefers a power of two
    transactionMapHashArraySlots: NAT, -- prefers a power of two
    fileMapHashArraySlots: NAT, -- prefers a prime
    openFileMapHashArraySlots: NAT, -- prefers a power of two
    lockHashArraySlots: NAT,
    fileMapFinalizationQueueLength: NAT,
    nAccessCacheEntries: NAT,
    alpineWheels: ROPE -- e.g. "AlpineImplementors↑.pa"
    ];
    -- Must be called before calling Start.  If called several times, all calls but the first
    --are no-ops.

  Start: PROC [
    fileStore: FileStore,
      -- "Local.alpine" means use system volume, otherwise look for named volume
    typeOfRestart: TypeOfRestart,
      -- $warmStart means read log, $coldStart means erase log,
      -- $createServer means erase everything
    nLogPages, nOwners: INT
      -- used only if typeOfRestart = $createServer
    ];
  
  TypeOfRestart: TYPE = {warmStart, coldStart, createServer};

  IsStarted: PROC [] RETURNS [BOOL];

  ExportInterfaces: PROC [];
    -- Exports public interfaces for remote use.

  END.

CHANGE LOG

Changed by MBrown on April 1, 1983 1:25 pm
-- Added some parms to Initialize.

Changed by MBrown on January 31, 1984 8:33:18 pm PST
-- Cedar 5.0.  Eliminated AlpineStarterImpl.