-- Copyright (C) 1983  by Xerox Corporation. All rights reserved. 
-- BootServer.Mesa, HGM,  1-Mar-83  2:11:22

DIRECTORY
  BootServerBasics USING [BootFileNumber, BootFileType, MachineType];

BootServer: DEFINITIONS =
  BEGIN

  BootFileNumber: TYPE = BootServerBasics.BootFileNumber;
  BootFileType: TYPE = BootServerBasics.BootFileType;
  MachineType: TYPE = BootServerBasics.MachineType;

  CreateServer: PROCEDURE;
  AddBootFileToList: PROCEDURE [
    fileName: LONG STRING, bootFileNumber: BootFileNumber, fileType: BootFileType,
    machineType: MachineType, pup: BOOLEAN ← FALSE];
  ActivateServer: PROCEDURE;
  DeactivateServer: PROCEDURE;
  ForgetBootFileList: PROCEDURE;
  DeleteServer: PROCEDURE;

  GetStatistics: PROCEDURE RETURNS [Counters];

  Counters: TYPE = RECORD [
    bootFilesRequested: LONG CARDINAL,
    bootFilesSent: LONG CARDINAL,
    bootFilesSentSlowly: LONG CARDINAL,
    microcodeBootFilesRequested: LONG CARDINAL,
    microcodeBootFilesSent: LONG CARDINAL,
    newBootFilesRetrieved: LONG CARDINAL];


  -- Xerox BFNs will have 0 in the first word, and 125xxx in the second word
  StringToBFN: PROCEDURE [LONG STRING] RETURNS [BootFileNumber];
  AppendBFN: PUBLIC PROCEDURE [LONG STRING, BootFileNumber];

  -- Pup BFNs will have 125026B in the second word
  CardinalToPupBFN: PROCEDURE [CARDINAL] RETURNS [BootServerBasics.BootFileNumber];
  PupBFNToCardinal: PROCEDURE [BootServerBasics.BootFileNumber] RETURNS [CARDINAL];

  END.