-- File: BootServerDefs.Mesa, Last Edit: HGM February 4, 1981 10:52 PM DIRECTORY InlineDefs USING [BcplLongNumber], System USING [GreenwichMeanTime, gmtEpoch], Window USING [Handle], File USING [Capability], Space USING [Handle], StatsDefs USING [StatCounterIndex], BufferDefs USING [PupBuffer], PupTypes USING [PupType, PupAddress], MiscServerDefs USING [ lockBooterRequest, lockBooterReply, unlockBooterRequest, unlockBooterReply, bootStatsRequest, bootStatsReply, microcodeRequest, microcodeReply]; BootServerDefs: DEFINITIONS = BEGIN PupBootServerOn: PROCEDURE; PupBootServerOff: PROCEDURE; StartProbingForBootFiles: PROCEDURE; StartLongRangeProbingForBootFiles: PROCEDURE; EnumerateBootTable: PROCEDURE [PROCEDURE [BootFile]]; BootFile: TYPE = POINTER TO BootFileObject; BootFileObject: TYPE = RECORD [ next: BootFile, code: WORD, create: System.GreenwichMeanTime, file: File.Capability, fileName: STRING, ms: LONG CARDINAL, -- total time spend booting count: LONG CARDINAL, pages: CARDINAL, bytes: LONG CARDINAL, space: Space.Handle, -- nullHandle if inactive tries: [0..20), unknown, inTransit: BOOLEAN]; pagesPerSwapUnit: CARDINAL = 15; BootFileHeader: TYPE = RECORD [ -- disk boot loader is first page other: ARRAY [0..3) OF WORD, timeStamp: InlineDefs.BcplLongNumber]; timeNotKnown: System.GreenwichMeanTime = System.gmtEpoch; kissOfDeath: PupTypes.PupType = LOOPHOLE[247B]; lockBooterRequest: PupTypes.PupType = MiscServerDefs.lockBooterRequest; lockBooterReply: PupTypes.PupType = MiscServerDefs.lockBooterReply; unlockBooterRequest: PupTypes.PupType = MiscServerDefs.unlockBooterRequest; unlockBooterReply: PupTypes.PupType = MiscServerDefs.unlockBooterReply; bootStatsRequest: PupTypes.PupType = MiscServerDefs.bootStatsRequest; bootStatsReply: PupTypes.PupType = MiscServerDefs.bootStatsReply; microcodeRequest: PupTypes.PupType = MiscServerDefs.microcodeRequest; microcodeReply: PupTypes.PupType = MiscServerDefs.microcodeReply; microcodeVersionNumber: CARDINAL = 1; BootStatsEntry: TYPE = RECORD [ version: WORD, directories: InlineDefs.BcplLongNumber, fastSends: InlineDefs.BcplLongNumber, slowSends: InlineDefs.BcplLongNumber, filesRecv: InlineDefs.BcplLongNumber]; bootVersion: WORD = 2; statLife: StatsDefs.StatCounterIndex; statBootNew: StatsDefs.StatCounterIndex; statBootDir, statFile, statFileSent, statFileSentSlow: StatsDefs.StatCounterIndex; statFileTroubles, statFileNeverStarted, statBusyDisk: StatsDefs.StatCounterIndex; statBusyBooting, statMicrocodeBooted, statUnknown: StatsDefs.StatCounterIndex; -- Internal things lock: MONITORLOCK; running, pleaseStop, booting, slowBooting, probing, sloshing, visible: BOOLEAN; SendBootDir: PROCEDURE [BufferDefs.PupBuffer]; -- NIL to Broadcast GetPointerToBootTable: PROCEDURE RETURNS [POINTER TO BootFile]; PupBootServer: PROCEDURE [BufferDefs.PupBuffer]; BreatherOn: PROCEDURE; BreatherOff: PROCEDURE; LookAtBootDir: PROCEDURE [BufferDefs.PupBuffer]; BootServerStats: PROCEDURE [BufferDefs.PupBuffer]; -- Pilot things pagesInVM, maxPagesInVM: CARDINAL; KillSpace, SetupSpace: PROCEDURE [BootFile]; WhatHappened: TYPE = {fast, slow, micro, diskBusy, neverStarted, troubles}; SlowBooter, FastBooter, MicrocodeBooter: PROCEDURE [ BootFile, PupTypes.PupAddress] RETURNS [WhatHappened]; UpdatePicture: PROCEDURE; msg, form: Window.Handle; slowBooteeHost, slosheeHost: STRING; slowBootFileName, slosheeFileName: STRING; END.