-- SubVolume.mesa (last edited by: Luniewski on: February 5, 1981 9:50 AM)
DIRECTORY
DiskChannel USING [Address, CompletionHandle, Handle],
Environment USING [PageNumber],
File USING [PageCount, PageNumber],
FileInternal USING [Operation, ReadOnlyFilePtr],
Volume USING [ID],
PhysicalVolumeFormat USING [PageNumber, SubVolumeDesc],
VolumeInternal USING [PageNumber];
SubVolume: DEFINITIONS =
BEGIN
PageNumber: TYPE = LONG CARDINAL;
PageCount: TYPE = LONG CARDINAL;
Handle: TYPE = LONG POINTER TO Descriptor;
Descriptor: TYPE = RECORD[
lvID: Volume.ID,
lvPage: VolumeInternal.PageNumber,
pvPage: PhysicalVolumeFormat.PageNumber,
nPages: PageCount,
channel: DiskChannel.Handle];
Find: PROC [vID: Volume.ID, page: VolumeInternal.PageNumber] RETURNS [success: BOOLEAN, subVolume: Handle];
GetNext: PROC [inSubVolume: Handle] RETURNS [outSubVolume: Handle];
GetPageAddress: PROC [vID: Volume.ID, page: VolumeInternal.PageNumber] RETURNS [channel: DiskChannel.Handle, address: DiskChannel.Address];
OnLine: PROC [subVolume: PhysicalVolumeFormat.SubVolumeDesc, channel: DiskChannel.Handle];
OffLine: PROC [vID: Volume.ID, channel: DiskChannel.Handle];
StartIO: PROC [io: IOptr];
IOptr: TYPE = POINTER TO IO;
IO: TYPE = RECORD[ -- argument record to StartIO; lifetime = duration of call only
op: FileInternal.Operation,
subVolume: Handle,
subVolumePage: PageNumber,
memPage: Environment.PageNumber,
filePtr: FileInternal.ReadOnlyFilePtr,
filePage: File.PageNumber,
pageCount: File.PageCount,
fixedMemPage: BOOLEANFALSE,
chained: BOOLEANFALSE,
link: DiskChannel.Address ← NULL];
completion: READONLY DiskChannel.CompletionHandle;
END.
LOG
Time: March 1, 1979 10:50 AMBy: RedellAction: Created file from old DIsk.mesa, VolumeCache.mesa, and VolumeInternal.mesa.
Time: March 19, 1979 9:22 AMBy: RedellAction: Split Descriptor into onLine and offLine variants.
Time: July 24, 1979 3:26 PMBy: ForrestAction: Make subvolume record machine dependent. Add Subvolume Field
Time: July 27, 1979 3:37 PMBy: ForrestAction: change subvolume count field to Logical Volume Size Field
Time: August 13, 1979 4:22 PMBy: RedellAction: Added PageAddress stuff for boot chains. Removed useless LOOPHOLEs to DiskChannel types.
Time: September 19, 1979 8:36 AMBy: ForrestAction: Added GetNext; changed Offline to take disk channel.
Time: September 21, 1979 10:36 AMBy: ForrestAction: Added SetSubvolumeMarkerID and GetSubvolumeMarkerID.
Time: September 22, 1979 2:29 PMBy: ForrestAction: Took out the Subvolume marker stuff.
Time: November 26, 1979 3:00 PMBy: GobbelAction: Added count argument to StartIO.
Time: December 13, 1979 12:00 PMBy: RedellAction: Changed StartIO to take arguments in a record, including new fixedMemoryPage.
Time: January 31, 1980 7:54 PMBy: GobbelAction: Changed pageCount field of IO record to be LONG (File.PageCount).
Time: May 20, 1980 2:54 PMBy: LuniewskiAction: PhysicalVolume => PhysicalVolumeFormat.
Time: October 11, 1980 8:46 PMBy: ForrestAction: Change IO’s filePtr field to be pointer to Readonly Descriptor.
Time: February 5, 1981 9:49 AMBy: LuniewskiAction: Change IO’s filePtr field to be FileInternal.ReadOnlyFilePtr.