DIRECTORY Camelot, Mach; YggCamelotSegment: CEDAR DEFINITIONS ~ BEGIN SegPort: TYPE = RECORD [ segment: Camelot.segmentDescT, port: Mach.portT ]; SegmentList: LIST OF SegPort; SegmentUseType: TYPE = MACHINE DEPENDENT {undefined(0), normalData(101), systemMetaData(707), normalAndSystemMetaData(1066)}; PageUse: TYPE = MACHINE DEPENDENT {undefined(0), didLeader(1077), nextDID(1492)}; PageZero: TYPE = MACHINE DEPENDENT RECORD [ segmentId(0): Camelot.segmentIdT, -- given to us by Camelot, zero means uninitialized segmentUse(1): SegmentUseType, -- normal, normal/system or system use only metadataReplicated(2): BOOL, -- page 0 is always replicated on page 79; if set this is replicated on pages 80 and 159 too allocationMapStartPage(3): CARD32, -- in pages; should be big enough to handle segment expansion allocationMapSize(5): CARD32, -- in pages; should be big enough to handle segment expansion segmentMaximum(7): CARD32, -- in pages; maximum seen so far segmentLogicalPage0(9): CARD32, -- page number that is data page 0 (should be just after the allocation map, if no DID Map/NextDID) DIDMapLogicalPage0(11): CARD32, -- page number that is page 0 (should be just after the allocation map; 0 means no DID Map) NextDIDLogicalPage(13): CARD32 -- page number for where NextDID is stored (0 means no NextDID) ]; DIDMapLeaderPage: TYPE = MACHINE DEPENDENT RECORD [ sealDIDMapLeaderPage(0): PageUse, runSize(1): CARD32, -- in pages; excludes this page; run starts at the next page nextRun(3): CARD32 -- page number of next run; 0 if no more runs ]; NextDIDPage: TYPE = MACHINE DEPENDENT RECORD [ sealDIDMapLeaderPage(0): PageUse, didLow(1): CARD32, didHigh(3): CARD32 ]; END. φYggCamelotSegment.mesa Copyright Σ 1988 by Xerox Corporation. All rights reserved. Bob Hagmann October 31, 1988 11:15:36 am PST Describes the "recoverable storage resident" metadata for a Camelot Segment. Segment and ports lists Page 0 Κϊ˜codešœ™Kšœ<™