YggFilePageMgrPrivateChunk.mesa
Copyright © 1985, 1988 by Xerox Corporation. All rights reserved.
Last edited by:
Kolling on January 31, 1984 2:13:05 pm PST
Hauser, March 26, 1985 6:41:17 pm PST
Bob Hagmann May 3, 1988 2:41:19 pm PDT
DIRECTORY
VM USING[PageCount, PageNumber],
YggEnvironment USING[PageNumber],
YggDIDMap USING[Document];
YggFilePageMgrPrivateChunk: CEDAR DEFINITIONS =
BEGIN
RefChunk: TYPE = REF Chunk;
Chunk: TYPE = RECORD[
chunkType: ChunkType,
defWritePending: BOOLEAN,
state: ChunkState,
useCount: NAT,
doc: YggDIDMap.Document,
startFilePageNumber: YggEnvironment.PageNumber,
startVMPageNumber: VM.PageNumber,
nVMPages: NAT,
prev: RefChunk,
next: RefChunk
These should not be necessary.
rbColor: BOOL,
rbLLink, rbRLink: RefChunk
];
ChunkType: TYPE = {normal, log, treeHeader, lruHeader, ostGeneral};
ClientChunkType: TYPE = ChunkType[normal..log];
ListChunkType: TYPE = ChunkType[normal..log];
ChunkState: TYPE = {undefined, valid, readInProgress, writeInProgress};
ChunkVMPageCount: ARRAY ListChunkType OF VM.PageCount =
[normal: 4, log: 4];
ChunkFilePageCount: ARRAY ListChunkType OF VM.PageCount =
[normal: 4, log: 4];
because not every place is right yet.
CompileTimeCheck1: [VM.wordsPerPage..VM.wordsPerPage] =
YggEnvironment.wordsPerPage;
because File promised an integral number of vm pages and page aligned(latter checked elsewhere).
For information about the significance of the Chunk fields, see FilePageMgrPrivateFileObject.
ChunkAllocator: PROCEDURE [chunkType: ChunkType, permanent: BOOLEAN] RETURNS
[refChunk: RefChunk];
non system-fatal errors: running out of vm is system fatal.
ChunkIsDirty: PROCEDURE[refChunk: RefChunk] RETURNS [dirty: BOOLEAN];
non system-fatal errors: none.
Sweeper: PROCEDURE[chunkType: ChunkType];
non system-fatal errors: none.
misc.:
InternalFilePageMgrLogicError: ERROR;
END.
Edit Log
Initial: Kolling: 22-Feb-82 16:18:32: a private defs file for the File Page Manager which sits between the rest of Alpine and Pilot.
Hauser, March 8, 1985 10:30:04 am PST
Nodified, added copyright.