-- 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.