-- CedarSnapshotPrivate.mesa -- last edited by Levin: November 12, 1982 9:48 am DIRECTORY Boot USING [Location], CedarSnapshot USING [CheckpointProc, RollbackProc], File USING [Capability, ID, nullID, PageCount, PageNumber], Space USING [PageCount], Volume USING [ID]; CedarSnapshotPrivate: DEFINITIONS = BEGIN -- Performance Parameters -- initialSnapshotSize: File.PageCount = 500; initialVMScriptPages: Space.PageCount = 3; initialClientScriptPages: Space.PageCount = 1; initialLinkScriptPages: Space.PageCount = 4; maxReasonableSwapUnit: Space.PageCount = 128; -- Procedure Registry EnumerateCheckpointProcs: PROC [PROC [CedarSnapshot.CheckpointProc]]; EnumerateRollbackProcs: PROC [PROC [CedarSnapshot.RollbackProc]]; -- Feedback Phase: TYPE = [0..37B]; Direction: TYPE = {checkpoint, rollback}; InitializeFeedback: PROC; FinalizeFeedback: PROC; SetPhase: PROC [phase: Phase, direction: Direction]; Twiddle: PROC; -- File Management FilePoint: TYPE = RECORD [fID: File.ID, firstPage: File.PageNumber]; nullFilePoint: FilePoint = [fID: File.nullID, firstPage: 0]; SnapshotFile: TYPE = LONG POINTER TO SnapshotFileDescriptor; SnapshotFileDescriptor: TYPE = RECORD [ volume: Volume.ID, cap: File.Capability, firstFree: File.PageNumber]; PointAction: TYPE = {keep, clear}; InitializeSnapshotFile: PROC [volume: Volume.ID] RETURNS [SnapshotFile]; FinalizeSnapshotFile: PROC [snapshot: SnapshotFile, action: PointAction]; EnsureSnapshotFileSize: PROC [snapshot: SnapshotFile, size: File.PageCount]; PrepareForOutload: PROC [snapshot: SnapshotFile] RETURNS [disk Boot.Location]; InstallSnapshotFile: PROC [snapshot: SnapshotFile, location: disk Boot.Location]; GetSnapshotPoint: PROC [volume: Volume.ID, action: PointAction] RETURNS [filePoint: FilePoint, valid: BOOL]; ValidateSnapshot: PROC [volume: Volume.ID] RETURNS [BOOL]; -- should be in CedarSnapshot.mesa -- Synchronization CorkHandle: TYPE = LONG POINTER TO CorkObject; CorkObject: TYPE; CorkRestOfWorld: PROC RETURNS [CorkHandle]; UncorkRestOfWorld: PROC [CorkHandle]; snapshotLock: MONITORLOCK; -- in CedarSnapshotRollback END.