DIRECTORY OldAlpineEnvironment USING[AccessList, allOwnerProperties, Conversation, LockFailure, NeededAccess, OperationFailure, OwnerName, OwnerPropertySet, OwnerPropertyValuePair, PageCount, TransID, UniversalFile, UnknownType, VolumeGroupID]; OldAlpineDebug: --CEDAR, that is, it would be if Lupine could handle safe interfaces. -- DEFINITIONS = BEGIN AccessList: TYPE = OldAlpineEnvironment.AccessList; -- crock city, for lupine. ReadOwnerFileHeader: PROCEDURE[conversation: OldAlpineEnvironment.Conversation, transID: OldAlpineEnvironment.TransID, volumeGroupID: OldAlpineEnvironment.VolumeGroupID] RETURNS[version: NAT, recordedVolGroupID: OldAlpineEnvironment.VolumeGroupID, totalQuota, quotaLeft: OldAlpineEnvironment.PageCount, numberOfOwners, numberOfOwnerSlotsInUse, maxNumberOfOwnersAllowed: NAT]; ReadNextOwnerRecord: PROCEDURE[conversation: OldAlpineEnvironment.Conversation, transID: OldAlpineEnvironment.TransID, volumeGroupID: OldAlpineEnvironment.VolumeGroupID, contRecNum: INT _ 0, desiredProperties: OldAlpineEnvironment.OwnerPropertySet _ OldAlpineEnvironment.allOwnerProperties] RETURNS[entryEmpty, entryValid: BOOLEAN, owner: OldAlpineEnvironment.OwnerName, properties: LIST OF OldAlpineEnvironment.OwnerPropertyValuePair, nextContRecNum: INT]; ChangeSpaceForOwner: PROCEDURE [conversation: OldAlpineEnvironment.Conversation, transID: OldAlpineEnvironment.TransID, volumeGroupID: OldAlpineEnvironment.VolumeGroupID, owner: OldAlpineEnvironment.OwnerName, nPages: OldAlpineEnvironment.PageCount]; ReadDBUniversalFile: PROCEDURE[volumeGroupID: OldAlpineEnvironment.VolumeGroupID] RETURNS[dBID: OldAlpineEnvironment.UniversalFile]; ReportAccessCacheStats: PROCEDURE RETURNS [nCacheEntries: NAT, statsCacheHit, statsGrapevineAuthorized, statsGrapevineNotAuthorized, statsRegServersDown, statsIndivGrapeNotAuthorized: INT]; ReportAccessVolatileStats: PROCEDURE RETURNS [nRegs, nInits, nUnRegs, nReorganizes, nEnumAlls, nAllocReqsWin, nAllocReqsLose, nDeallocReqs, nRemoveOwner, nEnumFindWin, nEnumFindLose, nSetEnums, nActions, nPhaseOnes, nPhaseTwos, nAborts: INT]; CrashSystem: PROCEDURE [conversation: OldAlpineEnvironment.Conversation, transID: OldAlpineEnvironment.TransID]; AccessFailed: ERROR[missingAccess: OldAlpineEnvironment.NeededAccess]; LockFailed: ERROR[why: OldAlpineEnvironment.LockFailure]; OperationFailed: ERROR[why: OldAlpineEnvironment.OperationFailure]; StaticallyInvalid: ERROR; Unknown: ERROR[what: OldAlpineEnvironment.UnknownType]; END. °OldAlpineDebug.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Last edited by Kolling on May 27, 1983 4:40 pm Taft on April 9, 1983 2:37 pm Hauser, March 7, 1985 2:08:38 pm PST Carl Hauser, January 7, 1987 10:02:53 am PST The operations in this interface are primarily for debugging and performance measurement. Procedures ! AccessFailed[alpineWheel], LockFailed[timeout], OperationFailed[transAborted], Unknown[transID, volumeGroupID]. This is permitted only if the caller is an asserted AlpineWheel. This procedure gets a write lock on the owner data base file. Note that ReadOwnerFileHeader and GetNextRecord called in the same transaction will be consistent provided the transaction doesn't alter the owner database file itself. ! AccessFailed[alpineWheel], LockFailed[timeout], StaticallyInvalid (badRecordNumber), Unknown[transID, volumeGroupID]. This is permitted only if the caller is an asserted AlpineWheel. This procedure gets a write lock on the owner data base file. Enumerates the current entries in the owner data base, including those no longer or never valid. contRecNum = 0 starts a new enumeration, and nextContRecNum = 0 is returned when the enumeration is exhausted. We use the pair entryEmpty, entryValid instead of an enumerated type to avoid putting a definition in OldAlpineEnvironment. (entryEmpty, entryValid) = (TRUE, undef) means the record has never been written into. (entryEmpty, entryValid) = (FALSE, TRUE) means that the entry is currently valid. (entryEmpty, entryValid) = (FALSE, FALSE) means that the entry has been deleted. Iff entryEmpty = FALSE, then the return values owner and properties are valid. ! AccessFailed[alpineWheel], LockFailed[timeout], OperationFailed[quotaExceeded], StaticallyInvalid (badLengthName), Unknown[owner, transID, volumeGroupID]. ! Unknown[volumeGroupID]. ! AccessFailed[alpineWheel], Unknown[transID]. Errors Hauser, March 7, 1985 2:08:16 pm PST Added copyright. Κ– "cedar" style˜šœ™Icodešœ Οmœ1™<—šœ™Jšœ™Jšœ™K™$K™,—J˜JšœY™YunitšΟk ˜ šœ˜KšžœΠ˜Υ——šΟnœΟcHœž œ˜fKšž˜K˜Kšœ žœ% ˜O—J˜J˜šœ ™ š Ÿœž œŒžœ žœ΄žœ˜χJšœq™qJšœ©™©—šŸœž œ:žœ]žœjžœžœ5žœžœ>žœ˜ΙJšœw™wJš œμžœTžœžœHžœžœ;žœ8™›—šŸœž œά˜ϊJšœœ™œ—šŸœž œ4žœ+˜„Jšœ™—Lš Ÿœž œžœžœ{žœ˜ΎLšŸœž œžœΑžœ˜σšŸ œž œ\˜rJšœ.™.——J˜J˜šœ™Lšœžœ3˜FLšœ žœ(˜9Lšœžœ-˜CLšœžœ˜Lšœ žœ*˜8J˜Jšžœ˜—J˜™$K™—K™—…— ΐ‰