Cedar: Iago: internal interface
IagoOps.mesa
Andrew Birrell December 7, 1983 10:42 am
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
Rubout: ERROR;
GetID: PROC [in, out: IO.STREAM, default: Rope.ROPE, init: Rope.ROPENIL, echo: BOOLTRUE] RETURNS [id: Rope.ROPE, c: CHAR];
Command: TYPE = {
attach,
bootLogical,
checkDrive,
copy,
createLogical,
createPhysical,
createUserWorld,
createVM,
delete,
describeDrives,
describeLV,
describeMachine,
describePV,
eraseLogical,
flushCache,
format,
installBoot,
installCredentials,
installGerm,
installInitial,
installMicrocode,
listCache,
listFileInfo,
listNames,
login,
quit,
rename,
rollbackLogical,
scavenge,
setKeep,
setPhysicalBoot,
setPhysicalGerm,
setPhysicalMicrocode,
setWDir };
GetCommand: PROC[in, out: IO.STREAM, diskReadable: BOOL] RETURNS[found: IagoOps.Command];
GetArg: PROC[in, out: IO.STREAM, prompt, default: Rope.ROPE, help: PROC] RETURNS[value: Rope.ROPENIL];
Confirm: PROC[in, out: IO.STREAM] RETURNS[BOOL];
ConfirmDestruction: PROC[in, out: IO.STREAM, which: Rope.ROPE] RETURNS[BOOL];
GetNumber: PROC[in, out: IO.STREAM, default: INT, max: INTLAST[INT], prompt, help: Rope.ROPE] RETURNS[size: INT ← 0];
GetSize: PROC[in, out: IO.STREAM, default: INT, max: INTLAST[INT]] RETURNS[size: INT ← 0];
GetFile: PROC[
in, out: IO.STREAM,
prompt: Rope.ROPENIL,
extension: Rope.ROPENIL,
default: Rope.ROPENIL,
wDir: Rope.ROPENIL,
check: BOOLFALSE,
pattern: BOOLFALSE]
RETURNS[name: Rope.ROPE];
GetSwitches: PROC[in, out: IO.STREAM] RETURNS[switches: Booting.Switches];
clientVolName: Rope.ROPE;
GetLogical: PROC[in, out: IO.STREAM, direction: Rope.ROPENIL] RETURNS[v: File.Volume];
GetPhysical: PROC[in, out: IO.STREAM] RETURNS[p: PhysicalVolume.Physical];
GetDrive: PROC[in, out: IO.STREAM] RETURNS[d: Disk.Channel];
FileError: PROC[why: File.RC] RETURNS[Rope.ROPE];
ReservePages: PROC[in, out: IO.STREAM, p: PhysicalVolume.Physical];
CheckAltoRegions: PROC[in, out: IO.STREAM] RETURNS[BOOL];
ReserveAltoRegions: PROC[in, out: IO.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: IO.STREAM, id: File.VolumeID];
InitialMicrocodeFileName: PROC RETURNS[Rope.ROPE];
RemoteRootFileName: PROC[which: File.VolumeFile[checkpoint..bootFile]] RETURNS[Rope.ROPE];
LocalRootFileName: PROC[which: File.VolumeFile] RETURNS[Rope.ROPE];
ext: PUBLIC ARRAY File.VolumeFile[checkpoint..bootFile] OF Rope.ROPE;
END.