.lo 3,2 .lm 0.rm 72 .fl bold.fl break.fl capitalize.fl hyphenate.fl index.xl.fl period .nhd .c;^*DISK__QUOTA - Perform Disk Quota Control Functions\* .b .c;by ^&Rodrick A. Eldridge\& ^* .hl1 Introduction \* .b The DISK__QUOTA routine will perform disk quota control functions that operate on individual entries in the disk quota file on the specified device. .tp 7 ^* .hl1 Using DISK__QUOTA \* .b See section ^&^*1_.6_.7_.4 Disk Quotas\*\& in the ^&^*VAX_/VMS I_/O User_'s Reference Manual_: Part I\*\&, pages 1-36 through 1-40, for detailed information on performing disk quota functions. ^* .hl2 Format \* The following shows the format for calling the DISK__QUOTA program: .b .lt DISK_QUOTA work-area,device-name,buffer .el .b .tp 5 ^* .hl2 Arguments \* .lm 9 .i -9 ^&work-area\& .b The work area is a record structure that contains the following fields. The ^&work-area\& argument is the address of this record structure. For each different device specified, you must have a separate work area. .b .lm 18 .i -9 ^&io-chan\& .b I_/O channel that is assigned to the device to which the disk quota file is directed. The ^&io-chan\& argument is a word value containing the number of the I_/O channel and this argument must be zero on the initial call to this routine. .b .tp 5 .i -9 ^&func\& .b Disk quota function that determines what action to perform to the disk quota file. The ^&func\& argument is a word value containing this function. .b After all calls have been made to the DISK__QUOTA routine for the specified device, set the ^&func\& argument to zero and call this routine one last time to deassign the channel to the device and close the disk quota file. .b Use one of the following values for this function: .b .lt 0 deassign channel fib$c_add_quota add entry fib$c_exa_quota examine entry fib$c_mod_quota modify entry fib$c_rem_quota remove entry .el .b .tp 5 .i -9 ^&cntrl\& .b Disk quota control function that determines the subfunction to be performed. The ^&cntrl\& argument is a longword value that contains this control function. .b Use one or more of the following values for this control function. To use more than one, ^&^*or\*\& them together. .b .lt 0 no control function fib$m_all_mem match all uic members fib$m_all_grp match all uic groups fib$m_mod_perm change the permanent quota fib$m_mod_over change the overdraft quota fib$m_mod_use change the usage data .el .b .lm 9 .tp 5 .i -9 ^&device-name\& .b The device name of where the disk quota file is located on which to perform the disk quota function. The ^&device-name\& argument is the address of a descriptor pointing to this device name. .b .tp 5 .i -9 ^&buffer\& .b Disk quota data block. The ^&buffer\& argument is the address of this quota data block. This block has the same format as a record in the quota file. .b The following diagram shows the format of this block: .b .lt 31 0 |-----------------------------| | Flags Longword | (DQF$L_FLAGS) |-----------------------------| | User Identification Code | (DQF$L_UIC) |-----------------------------| | Current Usage | (DQF$L_USAGE) |-----------------------------| | Permanent Quota | (DQF$L_PERMQUOTA) |-----------------------------| | Overdraft Limit | (DQF$L_OVERDRAFT) |-----------------------------| | | |-- ---| | (reserved for future use) | |-- ---| | | |-----------------------------| .el .lm 0 ^* .hl2 Linking \* .b To use the DISK__QUOTA routine, link your program to the TOOLS.OLB library in ISU__COMMON:[LIB]. .b For example: .b .lt LINK your_program+ISU_COMMON:[LIB]TOOLS/LIBR .el .b .tp 7 ^* .hl1 Condition Values Returned \* The following condition values may be returned by the DISK__QUOTA routine: .b .lm 9 .i -9 ^*SS$__NORMAL\* .b Routine successfully completed. .b .tp 3 .i -9 ^*SS$__INSFARG\* .b The argument list contained fewer than the three required arguments. .b .tp 3 .i -9 ^*SS$__DUPDSKQUOTA\* .b Another quota entry for the specified UIC already exists. .b .tp 3 .i -9 ^*SS$__NODISKQUOTA\* .b No disk quota entry exists for the specified UIC. .b .tp 3 .i -9 ^*SS$__BADQFILE\* .b The quota file has an invalid format. .b .tp 3 .i -9 ^*SS$__NOQFILE\* .b The quota file does not exist. .b .tp 3 .i -9 Any condition values returned by ^*SYS$ASSIGN\*. .b .tp 3 .i -9 Any condition values returned by ^*SYS$DASSGN\*. .b .tp 3 .i -9 Any condition values returned by ^*SYS$QIO\*. .b See secton ^&^*A.1 ACP-QIO Interface Driver\*\& in the ^&^*VAX_/VMS I_/O User_'s Reference Manual_: Part I\*\&, page A-1 through A-2, for a complete list of possible ^*SYS$QIO\* status returns. .lm 0