The LBR$SET_MODULE routine reads, and optionally updates, the module header associated with a given record's file address (RFA). Format LBR$SET_MODULE library_index ,rfa [,bufdesc] [,buflen] [,updatedesc]
1 – Returns
OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value Longword condition value. Most utility routines return a condition value in R0. Condition values that this routine can return are listed under Condition Values Returned.
2 – Arguments
library_index OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference Library control index returned by the LBR$INI_CONTROL routine. The library_index argument is the address of the longword that contains the index. rfa OpenVMS usage:vector_longword_unsigned type: longword (unsigned) access: read only mechanism: by reference Record's file address (RFA) associated with the module header. The rfa argument is the address of a 2-longword array containing the RFA returned by LBR$PUT_RECORD or LBR$LOOKUP_KEY. bufdesc OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Buffer that receives the module header. The bufdesc argument is the address of a string descriptor pointing to the buffer that receives the module header. The buffer must be the size specified by the symbol MHD$B_USRDAT plus the value of the CRE$L_UHDMAX create option. The MHD$ and CRE$ symbols are defined in the modules $MHDDEF and $CREDEF, which are stored in SYS$LIBRARY:STARLET.MLB. buflen OpenVMS usage:longword_signed type: longword (signed) access: write only mechanism: by reference Length of the module header. The buflen argument is the address of a longword receiving the length of the returned module header. updatedesc OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Additional information to be stored with the module header. The updatedesc argument is the address of a string descriptor pointing to additional data that the Librarian stores with the module header. If you include this argument, the Librarian updates the module header with the additional information.
3 – Description
If you specify bufdesc, the LBR routine returns the module header into the buffer. If you specify buflen, the routine also returns the buffer's length. If you specify updatedesc, the routine updates the header information. You define the maximum length of the update information (by specifying a value for CRE$L_UHDMAX) when you create the library. The Librarian zero-fills the information if it is less than the maximum length or truncates it if it exceeds the maximum length.
4 – Condition Values Returned
LBR$_HDRTRUNC Buffer supplied to hold the module header was too small. LBR$_ILLCTL Specified library control index not valid. LBR$_ILLOP Error. The updatedesc argument was supplied and the library was a Version 1.0 library or the library was opened only for read access. LBR$_INVRFA Specified RFA does not point to a valid module header. LBR$_LIBNOTOPN Specified library not open.