Guardian Procedure Calls Reference Manual

buffersize is less than the minimum.21
The address of ctlwds or buffer is out of bounds.22
Checksum error on ctlwds. The ctlwds parameter has been altered between calls to LOCKINFO or was
not initialized before the first call.
41
Information for one locked resource was returned, but the supplied buffer was too small to hold all available
lock accessors information (the number of holders/waiters that could be returned is always found in
LIB.NUMLABS). More locks may exist, so continue calling LOCKINFO (with ctlwds unchanged).
45
Other file-system errors may be returned; these are documented in the Guardian Procedure Errors
and Messages Manual.
Structure Definitions for buffer
The lock information returned by one call to LOCKINFO is mapped in the user-supplied buffer using
the LIB and LABINFO structures.
The LIB structure describes one locked resource, and contains the byte offset from the beginning
of the buffer to the first LABINFO structure. LIB also contains the number of holder/waiter entries
(LABINFO occurrences) that are returned.
The LIB structure is defined for TAL as:
STRUCT LIB ( * );
BEGIN
STRING
TYPE, ! File lock=0, record lock=1
LOCKLEN; ! Byte length of locked key (0 if
! not a key-sequenced file.)
INT
MISC, ! Miscellaneous flags
FILENAME[ 0:7 ], ! Subvol/filename of locked file
NUMLABS; ! Number of LABINFO entries
! returned
INT(32)
LABOFFSET; ! Byte offset from buffer start to
! first LABINFO
STRING
KEYVALUE[ 0:255 ]; ! Locked key value (if LOCKLEN > 0)
INT(32)
RECADDR=KEYVALUE; ! Locked record ID
! (if LOCKLEN=0)
! RECADDR field is a redefinition of the KEYVALUE field
INT
RESERVED_1[0:4]; ! Reserved for future use
END;
Definitions for the MISC word of the LIB structure (the remaining bits are reserved for future use):
DEFINE
GENERIC^LOCK=MISC.<0>#; ! If set, record lock is a
! generic key lock
The number of LABINFO entries that can be returned to the caller of LOCKINFO depends on the
size of the LIB buffer (specified in the parameter buffersize).
The LABINFO structure describes one lock "holder" or "waiter" of/for the locked resource described
by the above LIB structure. There are LIB.NUMLABS occurrences of the LABINFO structure.
LOCKINFO Procedure (Superseded by FILE_GETLOCKINFO_ Procedure) 773