-- FileInternal.mesa (last edited by: Luniewski on: February 5, 1981 9:47 AM)
DIRECTORY
File: FROM "File" USING [delete, grow, ID, PageCount, PageNumber, Permissions, read, shrink, Type, write],
Volume: FROM "Volume" USING [ID],
VolumeInternal: FROM "VolumeInternal" USING [Location, PageNumber];
FileInternal: DEFINITIONS =
BEGIN
maxPermissions: File.Permissions = File.read+File.write+File.grow+File.shrink+File.delete;
AllocationStatus: TYPE = {free, busy};
FilePtr: TYPE = LONG POINTER TO Descriptor;
ReadOnlyFilePtr: TYPE = LONG POINTER TO READONLY Descriptor;
LocalFilePtr: TYPE = LONG POINTER TO local Descriptor;
RemoteFilePtr: TYPE = LONG POINTER TO remote Descriptor;
Descriptor: TYPE = RECORD[
fileID: File.ID,
volumeID: Volume.ID,
body: SELECT location: VolumeInternal.Location FROM
remote => NULL,
local => [
immutable: BOOLEAN,
temporary: BOOLEAN,
size: File.PageCount,
type: File.Type],
ENDCASE];
PageGroup: TYPE = RECORD[
filePage: File.PageNumber,
volumePage: VolumeInternal.PageNumber,
nextFilePage: File.PageNumber];
Operation: TYPE = {read, write, readLabel, writeLabel, verifyLabel, readLabelAndData, writeLabelsAndData};
END.
LOG
Time: May 13, 1978 2:49 PMBy: RedellAction: Created file
Time: June 23, 1978 3:18 PMBy: RedellAction: Broke off volume-related items into VolumeInternal
Time: March 7, 1979 4:20 PMBy: RedellAction: Moved definition of filer operations in from old FilePageTransferInternal.
Time: July 21, 1979 4:15 PMBy: RedellAction: Moved definition of Label out to FilePageLabel.
Time: May 14, 1980 2:58 PMBy: LuniewskiAction: Made FilePtr’s LONG POINTER’s. Added LocalFilePtr and RemoteFilePtr.
Time: February 5, 1981 9:47 AMBy: LuniewskiAction: Added ReadOnlyFilePtr.