<> <> <> DIRECTORY Disk USING[ Channel, PageCount, PageNumber ], File USING[ Volume, VolumeID ], PhysicalVolume USING[ Physical, PhysicalRC ], Rope USING[ ROPE ]; FileExtra: CEDAR DEFINITIONS = BEGIN ReservePages: PROC[physical: PhysicalVolume.Physical, start: Disk.PageNumber, size: Disk.PageCount]; <> ReserveNoPages: PROC[physical: PhysicalVolume.Physical]; <> CreatePhysicalVolume: PROC[where: Disk.Channel, name: Rope.ROPE, id: File.VolumeID] RETURNS[PhysicalVolume.Physical]; CreateLogicalVolume: PROC[where: LIST OF PhysicalVolume.Physical, size: INT, name: Rope.ROPE, id: File.VolumeID] RETURNS[File.Volume]; PhysicalPageBad: PROC[physical: PhysicalVolume.Physical, address: Disk.PageNumber] RETURNS[ PhysicalVolume.PhysicalRC ]; <> END.