YggLogRep.mesa
Copyright © 1985, 1987 by Xerox Corporation. All rights reserved.
Defines storage format of disk log.
Last edited by
MBrown on January 30, 1984 10:04:27 am PST
Hauser, March 8, 1985 10:58:42 am PST
Carl Hauser, October 4, 1985 1:36:20 pm PDT
Bob Hagmann June 16, 1989 3:45:10 pm PDT
DIRECTORY
Camelot,
Rope,
YggEnvironment,
YggInternal,
YggLog;
YggLogRep: DEFINITIONS =
BEGIN
RecordID: TYPE = YggLog.RecordID;
RecordType: TYPE = YggLog.RecordType;
PageVersion: TYPE = [0..1];
Header: TYPE = MACHINE DEPENDENT RECORD [
valid: BOOL,
version: PageVersion,
hasContinuation: BOOL,
isContinuation: BOOL,
unused1: [0..7777B] ← 0,
nWords: CARD16
includes SIZE[Header] words for the header itself -> in machine dependent words
];
A Header record with nWords=0 and arbitrary other values is used to terminate a page.
RecordTypeHeader: TYPE = MACHINE DEPENDENT RECORD [
pad: [0..1] ← 0,
type: RecordType,
pad2: CARD16 ← 0 ];
NoopRecord: TYPE = MACHINE DEPENDENT RECORD [
pad: [0..1] ← 0,
type: RecordType ← noop,
pad2: CARD16 ← 0,
fillPage: ARRAY [0..fillCount) OF WORDALL[0] ];
fillCount: CARDINAL = 512-SIZE[Header]-SIZE[RecordTypeHeader];
CheckpointCompleteRecord: TYPE = MACHINE DEPENDENT RECORD [
pad: [0..1] ← 0,
type: RecordType ← checkpointComplete,
pad2: CARD16 ← 0,
thisRecordID: RecordID ← TRASH,
startAnalysisRecordID: RecordID,
keepRecordID: RecordID,
checkPointEphocNumber: CARD32 ← 0,
blockArrayOfWords: ARRAY[0..32) OF CARD32 ← ALL[0]
];
TransactionHeader: TYPE = MACHINE DEPENDENT RECORD [
pad: [0..1] ← 0,
type: RecordType,
pad2: CARD16 ← 0,
transID: YggEnvironment.TransID,
optr: Camelot.optrT ];
RestartRecord: TYPE = MACHINE DEPENDENT RECORD [
wordNumberForCheckpointCompleteRecord: YggEnvironment.WordNumber,
recordIDForCheckpointCompleteRecord: RecordID ];
written in restart file, not in log
END.
CHANGE LOG
Created by MBrown on May 24, 1982 10:16 pm
Hauser, March 8, 1985 10:58:27 am PST
Nodified, added copyright.
Carl Hauser, October 4, 1985 1:36:07 pm PDT
Change "Log" to "AlpineLog"