<> <> <> <> <> DIRECTORY Booting USING[ Switches ], Disk USING[ Channel, PageCount, PageNumber ], File USING[ RC, Volume, VolumeFile, VolumeID ], IO USING[ STREAM ], PhysicalVolume USING[ Physical ], Rope USING[ ROPE ]; IagoOps: CEDAR DEFINITIONS = BEGIN OPEN IO, Rope; --File.--VolumeID: TYPE = MACHINE DEPENDENT RECORD[ a,b,c: CARDINAL, t: LONG CARDINAL ]; Rubout: ERROR; GetID: PROC [in, out: STREAM, default: ROPE, init: ROPE _ NIL, echo: BOOL _ TRUE] RETURNS [id: ROPE, c: CHAR]; CommandList: TYPE = LIST OF CommandInfo; CommandProc: TYPE = PROC [in,out: STREAM]; CommandInfo: TYPE = RECORD [ commandProc: CommandProc, fullName: ROPE _ NIL, okWhenNoDisk: BOOL _ FALSE]; RegisterCommand: PROC [info: CommandInfo]; <> GetCommandList: PROC RETURNS [CommandList]; GetCommand: PROC[in, out: STREAM, diskReadable: BOOL] RETURNS [found: CommandInfo]; GetArg: PROC[in, out: STREAM, prompt, default: ROPE, help: PROC] RETURNS [value: ROPE _ NIL]; Confirm: PROC[in, out: STREAM] RETURNS[BOOL]; ConfirmDestruction: PROC[in, out: STREAM, which: ROPE] RETURNS[BOOL]; GetNumber: PROC [in, out: STREAM, default: INT, max: INT _ LAST[INT], prompt, help: ROPE] RETURNS[size: INT _ 0]; GetSize: PROC[in, out: STREAM, default: INT, max: INT _ LAST[INT]] RETURNS[size: INT _ 0]; GetFile: PROC[ in, out: STREAM, prompt: ROPE _ NIL, extension: ROPE _ NIL, default: ROPE _ NIL, wDir: ROPE _ NIL, check: BOOL _ FALSE, pattern: BOOL _ FALSE] RETURNS[name: ROPE]; GetSwitches: PROC[in, out: STREAM] RETURNS[switches: Booting.Switches]; clientVolName: ROPE; GetLogical: PROC[in, out: STREAM, direction: ROPE _ NIL] RETURNS[v: File.Volume]; GetPhysical: PROC[in, out: STREAM] RETURNS[p: PhysicalVolume.Physical]; GetDrive: PROC[in, out: STREAM] RETURNS[d: Disk.Channel]; FileError: PROC[why: File.RC] RETURNS[ROPE]; ReservePages: PROC[in, out: STREAM, p: PhysicalVolume.Physical]; CheckAltoRegions: PROC[in, out: STREAM] RETURNS[BOOL]; ReserveAltoRegions: PROC[in, out: STREAM]; NextRun: PROC[d: Disk.Channel, origin: Disk.PageNumber] RETURNS[firstPage: Disk.PageNumber, pageCount: Disk.PageCount-- -1 at end of disk --]; NewID: PROC RETURNS[new: File.VolumeID]; PutID: PROC[out: STREAM, id: File.VolumeID]; InitialMicrocodeFileName: PROC RETURNS[ROPE]; RemoteRootFileName: PROC[which: File.VolumeFile[checkpoint..bootFile]] RETURNS[ROPE]; LocalRootFileName: PROC[which: File.VolumeFile] RETURNS[ROPE]; WriteRemoteNames: PROC [volume: ROPE, out: STREAM] RETURNS [success: BOOL]; <RemoteNames.DontDeleteMe. Errors or success are reported through the out stream (if any). volume = NIL => use system volume.>> <<>> ReadRemoteNames: PROC [volume: ROPE] RETURNS [success: BOOL]; <RemoteNames.DontDeleteMe. Errors are ignored, but cause success = FALSE. volume = NIL => use system volume.>> ext: PUBLIC ARRAY File.VolumeFile[checkpoint..bootFile] OF ROPE; END.