-- Copyright (C) 1981, 1984, 1985 by Xerox Corporation. All rights reserved.
-- FileDefs.mesa
-- HGM: 16-Sep-85 21:58:57
-- Levin: 27-Feb-81 11:35:30
DIRECTORY
VMDefs USING [
defaultTime, FileTime, OpenOptions, PageNumber, Position, Problem];
FileDefs: DEFINITIONS =
BEGIN
-- This interface defines the common properties for file systems used at
-- the VM level.
-- Types --
Operations: TYPE = LONG POINTER TO OperationsRecord;
OperationsRecord: TYPE = RECORD [
login: PROC [
server, userName, password, secondaryName, secondaryPassword: LONG STRING ← NIL]
RETURNS [FSInstance],
logout: PROC [FSInstance],
checkpoint: PROC [FSInstance],
abort: PROC [FSInstance],
open: PROC [
instance: FSInstance, name: LONG STRING, options: OpenOptions ← oldReadOnly]
RETURNS [FileHandle],
close: PROC [FileHandle],
abandon: PROC [FileHandle],
destroy: PROC [FileHandle],
getLength: PROC [FileHandle] RETURNS [Position],
setLength: PROC [FileHandle, Position],
extend: PROC [FileHandle, Position, Buffer],
truncate: PROC [FileHandle, Position],
startRead: PROC [FileHandle, PageNumber, Buffer, Completer, CompleterArg],
startWrite: PROC [FileHandle, PageNumber, Buffer, Completer, CompleterArg],
getTimes: PROC [FileHandle] RETURNS [read, write, create: FileTime],
setCreation: PROC [FileHandle, FileTime]];
FSInstance: TYPE = LONG POINTER TO FSObject;
FSObject: TYPE;
FileHandle: TYPE = LONG POINTER TO FileObject;
FileObject: TYPE;
OpenOptions: TYPE = VMDefs.OpenOptions;
Buffer: TYPE = LONG POINTER;
Position: TYPE = VMDefs.Position;
PageNumber: TYPE = VMDefs.PageNumber;
Completer: TYPE = PROCEDURE [arg: CompleterArg, outcome: Problem];
CompleterArg: TYPE = LONG POINTER;
Problem: TYPE = VMDefs.Problem;
Comparison: TYPE = MACHINE DEPENDENT{less, equal, greater};
FileTime: TYPE = VMDefs.FileTime;
defaultTime: FileTime = VMDefs.defaultTime;
-- Miscellaneous --
bytesPerPage: CARDINAL = 512;
-- Procedures and Signals --
ComparePositions: PROCEDURE [pos1, pos2: Position] RETURNS [Comparison];
IncrementPosition: PROCEDURE [pos: Position, bytes: CARDINAL]
RETURNS [Position];
-- ALocalto File System --
InitializeLocal: PROCEDURE RETURNS [Operations];
-- called from VM initialization to perform once-only initialization of the
-- local file system.
FinalizeLocal: PROCEDURE;
-- called from VM finalization to shut down the local file system.
-- IFS File System --
InitializeIFS: PROCEDURE RETURNS [Operations];
-- called from VM initialization to perform once-only initialization of the
-- IFS file system.
FinalizeIFS: PROCEDURE;
-- called from VM finalization to shut down the IFS file system.
END.