-- AccessControlMain.mesa -- Last edited by -- Kolling on May 27, 1983 4:28 pm DIRECTORY AccessControlPrivate USING[PntrDataRec], AccessControlTransMap USING[Handle], AlpineEnvironment USING[FileID, OwnerName, OwnerPropertySet, OwnerPropertyValuePair, PageCount, UniversalFile, VolumeGroupID, VolumeID]; AccessControlMain: CEDAR DEFINITIONS = BEGIN CommonChangeOwnerAndHeader: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, caller: Caller, transHandle: AccessControlTransMap.Handle, ownerName: AlpineEnvironment.OwnerName, overCommitQuotasIfNeeded: BOOLEAN, ownerProperties: LIST OF AlpineEnvironment.OwnerPropertyValuePair, newQuota: AlpineEnvironment.PageCount] RETURNS [spaceLeftOnVolumeGroup: AlpineEnvironment.PageCount]; -- non system-fatal errors: ACF.LockConflict, AC.OperationFailed[duplicateOwner, ownerDatabaseFull, ownerRecordFull, ownerRecordInUse, spaceInUseByThisOwner, totalQuotaExceeded], AC.StaticallyInvalid(badLengthName), AC.Unknown[owner, transID, volumeGroupID]. Caller: TYPE = {add, writeProps, remove}; CommonChangeOwner: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, ownerName: AlpineEnvironment.OwnerName, ownerProperties: LIST OF AlpineEnvironment.OwnerPropertyValuePair]; -- non system-fatal errors: ACF.LockConflict, AC.OperationFailed[ownerRecordFull], AC.StaticallyInvalid(badLengthName), AC.Unknown[owner, transID, volumeGroupID]. ReadAllOwnerProperties: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, ownerName: AlpineEnvironment.OwnerName, desiredOwnerProperties: AlpineEnvironment.OwnerPropertySet] RETURNS [ownerProperties: LIST OF AlpineEnvironment.OwnerPropertyValuePair]; -- non system-fatal errors: ACF.LockConflict, AC.StaticallyInvalid(badLengthName), AC.Unknown[owner, transID, volumeGroupID]. GetOwnerRecordForReadAndUnlock: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, ownerName: AlpineEnvironment.OwnerName, pntrDataRec: AccessControlPrivate.PntrDataRec]; -- non system-fatal errors: ACF.LockConflict, AC.StaticallyInvalid(badLengthName), AC.Unknown[owner, transID, volumeGroupID]. ChangeSpaceViaOwnerName: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, ownerName: AlpineEnvironment.OwnerName, nPages: AlpineEnvironment.PageCount] RETURNS [okay: BOOLEAN]; -- non system-fatal errors: ACF.LockConflict, AC.StaticallyInvalid(badLengthName), AC.Unknown[owner, transID, volumeGroupID]. CreateAndInitOwnerFile: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, ownerFileVolID: AlpineEnvironment.VolumeID, totalQuota, volumeGroupSize: AlpineEnvironment.PageCount, overCommitQuotaDuringInitializeIfNeeded: BOOLEAN, maxNumberOfOwnersAllowed: NAT, nOwnerCacheEntries: NAT] RETURNS[ownerFileID: AlpineEnvironment.FileID]; -- non system-fatal errors: AC.StaticallyInvalid(ownerCacheEntriesOutOfRange, maxOwnerEntriesTooSmall, volGroupQuotaLTSpaceForOwnerFile), AC.OperationFailed[insufficientSpace], AC.Unknown[fileID, transID, volumeID, volumeGroupID]. RegisterVolGroup: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, ownerFileUniversalFile: AlpineEnvironment.UniversalFile, nOwnerCacheEntries: NAT] RETURNS[newOwnerFileID: AlpineEnvironment.FileID]; -- non system-fatal errors: ACF.LockConflict, AC.OperationFailed[duplicateVolumeGroup, AC.Unknown[fileID, transID, volumeID]. UnRegisterVolGroup: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle]; -- non system-fatal errors: ACF.LockConflict, AC.Unknown[transID, volumeGroupID]. ReorgOwnerFile: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, maxNumberOfOwnersAllowed: NAT]; -- non system-fatal errors: ACF.LockConflict, AC.OperationFailed[insufficientSpace, ownerDatabaseFull], AC.Unknown[transID, volumeGroupID]. EnumAllOwners: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, prevOwnerName: AlpineEnvironment.OwnerName, desiredOwnerProperties: AlpineEnvironment.OwnerPropertySet] RETURNS [ownerName: AlpineEnvironment.OwnerName, ownerProperties: LIST OF AlpineEnvironment.OwnerPropertyValuePair]; -- non system-fatal errors: ACF.LockConflict, AC.StaticallyInvalid(badLengthName), AC.Unknown[owner, transID, volumeGroupID]. EnumAllDataEntriesInOwnerFile: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, contRecNum: INT, desiredOwnerProperties: AlpineEnvironment.OwnerPropertySet] RETURNS [entryEmpty, entryValid: BOOLEAN, ownerName: AlpineEnvironment.OwnerName, ownerProperties: LIST OF AlpineEnvironment.OwnerPropertyValuePair, nextContRecNum: INT]; -- non system-fatal errors: ACF.LockConflict, AC.StaticallyInvalid(badRecordNumber), AC.Unknown[transID, volumeGroupID]. ReadOwnerFileHead: PROCEDURE[volGroupID: AlpineEnvironment.VolumeGroupID, transHandle: AccessControlTransMap.Handle, opWeight: OpWeight] RETURNS [version: NAT, recordedVolGroupID: AlpineEnvironment.VolumeGroupID, totalQuota, quotaLeft, volumeGroupSize: AlpineEnvironment.PageCount, numberOfOwners, numberOfOwnerSlotsInUse, maxNumberOfOwnersAllowed: NAT]; -- non system-fatal errors: ACF.LockConflict, AC.Unknown[transID, volumeGroupID]. PhaseOneSpaceOwnerChanges: PROCEDURE[transHandle: AccessControlTransMap.Handle]; -- non system-fatal errors: AFC.LockConflict, AC.Unknown[transID]. OpWeight: TYPE = {light, heavy}; END. Edit Log Initial: Kolling: January 12, 1983 2:51 pm: defs file private to AccessControl; procedures exported by the monster monitor module. Êå˜JšØœÏcUœÏk œ&žœ4žœ+žœ€ÐblœžœžœÏnœž œ­žœžœžœSžœ;œæœ œžœ  œž œ”žœžœ.œ†œ œž œ¿žœžœžœ.œaœ œž œ± œ a œž œ¨žœžœœaœ œž œëžœžœžœžœ+œ¯œœ œž œ¨žœžœ.œ:œœœ  œž œ]œ$œœ œž œtžœœ^œœ œž œÃžœ<žœžœ/œPœœ œž œgžœ>žœžœ<žœžœ;žœœKœ œ œž œnžœ žœÁžœœÐckœœœ œž œ,žœœ&œ œžœžœŸœ˜Ø.—…—ZE