! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! ! This package defines the interfaces to the Librarian utility ! routines as documented in the OpenVMS Utility Routines Reference ! Manual. ! ! ! LBR$CLOSE - CLose a library ! ! status = LBR$CLOSE (library_index) ! ! library_index - Index value returned by LBR$INI_CONTROL ! EXTERNAL LONG FUNCTION LBR$CLOSE & ( & LONG BY REF & ) ! ! LBR$DELETE_DATA - Delete a module's data ! ! status = LBR$DELETE_DATA (library_index, txtrfa [,flags]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! txtrfa - RFA of module header for module to delete ! flags - key flags ! EXTERNAL LONG FUNCTION LBR$DELETE_DATA & ( & LONG BY REF, & ANY BY REF, & OPTIONAL LONG BY VALUE & ) ! ! LBR$DELETE_KEY - Delete a key ! ! status = LBR$DELETE_KEY (library_index, key_name [,txtrfa] [,flags]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! key_name - Key to be deleted - for binary keys, passed by ! reference, for string keys, by descriptor ! txtrfa - RFA of module header for key to delete ! flags - key flags ! EXTERNAL LONG FUNCTION LBR$DELETE_KEY & ( & LONG BY REF, & ANY BY REF, & OPTIONAL ANY BY REF, & LONG BY VALUE & ) ! ! LBR$FIND - Lookup a module by its RFA ! ! status = LBR$FIND (library_index, txtrfa) ! ! library_index - Index value returned by LBR$INI_CONTROL ! txtrfa - RFA of module to access ! EXTERNAL LONG FUNCTION LBR$FIND & ( & LONG BY REF, & ANY BY REF & ) ! ! LBR$FLUSH - Recover virtual memory ! ! status = LBR$FLUSH (library_index, block_type) ! ! library_index - Index value returned by LBR$INI_CONTROL ! block_type - Extent of the flush operation EXTERNAL LONG FUNCTION LBR$FLUSH & ( & LONG BY REF, & LONG BY VALUE & ) ! ! LBR$GET_HEADER - Retrieve library header information ! ! status = LBR$GET_HEADER (library_index, retary) ! ! library_index - Index value returned by LBR$INI_CONTROL ! retary - Array of 128 longwords to receive library header ! EXTERNAL LONG FUNCTION LBR$GET_HEADER & ( & LONG BY REF, & ANY BY REF & ) ! ! LBR$GET_HELP - Retrieve help text ! ! status = LBR$GET_HELP (library_index [,line_width] [,routine] ! [,data] [,key_n...]) ! library_index - Index value returned by LBR$INI_CONTROL ! line_width - Width of the help text line ! routine - Routine called to output text line ! data - User data passed to routine ! key_n - Zero or more key strings ! EXTERNAL LONG FUNCTION LBR$GET_HELP & ( & LONG BY REF, & OPTIONAL LONG BY REF, & LONG BY VALUE, & ANY BY REF, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC, & STRING BY DESC & ) ! ! LBR$GET_HISTORY - Retrieve a library history update record ! ! status = LBR$GET_HISTORY (library_index, action_routine) ! ! library_index - Index value returned by LBR$INI_CONTROL ! action_routine - Routine to process history records ! EXTERNAL LONG FUNCTION LBR$GET_HISTORY & ( & LONG BY REF, & LONG BY VALUE & ) ! ! LBR$GET_INDEX - Call routine for selected index keys ! ! status = LBR$GET_INDEX (library_index, index_number, routine_name ! [,match_desc] [,flags]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! index_number - Number of the index to search ! routine_name - User routine to process selections ! match_desc - Key matching string ! flags - Key flags ! EXTERNAL LONG FUNCTION LBR$GET_INDEX & ( & LONG BY REF, & LONG BY REF, & LONG BY VALUE, & OPTIONAL STRING BY DESC, & LONG BY VALUE & ) ! ! LBR$GET_RECORD - Read a data record ! ! status = LBR$GET_RECORD (library_index [,inbufdes] [,outbufdes]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! inbufdes - Buffer to receive record ! outbufdes - Descriptor receiving information about record EXTERNAL LONG FUNCTION LBR$GET_RECORD & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & ANY BY REF & ) ! ! LBR$INI_CONTROL - Initialize a library control structure ! ! status = LBR$INI_CONTROL (library_index, func [,type] [,namblk]) ! ! library_index - Receives index value ! func - Function to be performed ! type - Type of library ! namblk - RMS NAM block for library ! EXTERNAL LONG FUNCTION LBR$INI_CONTROL & ( & LONG BY REF, & LONG BY REF, & OPTIONAL LONG BY REF, & ANY BY REF & ) ! ! LBR$INSERT_KEY - Insert a new key ! ! status = LBR$INSERT_KEY (library_index, key_name, txtrfa [,flags]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! key_name - Name of key to insert (reference for binary key, ! descriptor for text key) ! txtrfa - RFA of module ! flags - key flags ! EXTERNAL LONG FUNCTION LBR$INSERT_KEY & ( & LONG BY REF, & ANY BY REF, & ANY BY REF, & OPTIONAL LONG BY VALUE & ) ! ! LBR$LOOKUP_KEY - Look up a library key ! ! status = LBR$LOOKUP_KEY (library_index, key_name, txtrfa [,flags]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! key_name - Name of key to insert (reference for binary key, ! descriptor for text key) ! txtrfa - Receives RFA of module ! flags - Receives key flags ! EXTERNAL LONG FUNCTION LBR$LOOKUP_KEY & ( & LONG BY REF, & ANY BY REF, & ANY BY REF, & OPTIONAL LONG BY REF & ) ! ! LBR$LOOKUP_TYPE - Look up a type of key with specified RFA in ! library's current index ! ! status = LBR$LOOKUP_TYPE (library_index, key_name, txtrfa, flags) ! ! library_index - Index value returned by LBR$INI_CONTROL ! key_name - Name of key to insert (reference for binary key, ! descriptor for text key) ! txtrfa - RFA of module ! flags - Receives type of key ! EXTERNAL LONG FUNCTION LBR$LOOKUP_TYPE & ( & LONG BY REF, & ANY BY REF, & ANY BY REF, & LONG BY REF & ) ! ! LBR$OPEN - Open or create a library ! ! status = LBR$OPEN (library_index [,fns] [,create_options] [,dns] ! [,rlfna] [,rns] [,rnslen]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! fns - File specification of the library ! create_options - Library characteristics ($LBRDEF, $CREDEF) ! dns - Default file specification ! rlfna - Related file name block ! rns - Receives resultant file specification ! rnslen - Receives length of resultant file specification ! EXTERNAL LONG FUNCTION LBR$OPEN & ( & LONG BY REF, & OPTIONAL STRING BY DESC, & ANY BY REF, & STRING BY DESC, & ANY BY REF, & STRING BY DESC, & LONG BY REF & ) ! ! LBR$OUTPUT_HELP - Output help messages ! ! status = LBR$OUTPUT_HELP (output_routine [,output_width] [,line_desc] ! [,library_name] [,flags] [,input_routine]) ! ! output_routine - Routine called to output text lines ! output_width - Maximum width of output lines ! line_desc - Help request line ! library_name - Name of the help library ! flags - Flags to control operation ! input_routine - Routine used for prompting ! EXTERNAL LONG FUNCTION LBR$OUTPUT_HELP & ( & LONG BY VALUE, & OPTIONAL LONG BY REF, & STRING BY DESC, & STRING BY DESC, & LONG BY REF, & LONG BY VALUE & ) ! ! LBR$PUT_MODULE - Put an ELF object module to the ELF object library. ! ! status = LBR$PUT_MODULE (library_index, addr, size, txtrfa) ! ! library_index - Index value returned by LBR$INI_CONTROL ! addr - address of the ELF object module ! size - Size of the ELF object module ! txtrfa - Receives RFA of module ! EXTERNAL LONG FUNCTION LBR$PUT_MODULE & ( & LONG BY REF, & BASIC$QUADWORD BY REF, & BASIC$QUADWORD BY REF, & ANY BY REF & ) ! ! LBR$PUT_END - Write an end-of-module record ! ! status = LBR$PUT_END (library_index) ! ! library_index - Index value returned by LBR$INI_CONTROL ! EXTERNAL LONG FUNCTION LBR$PUT_END & ( & LONG BY REF & ) ! ! LBR$PUT_HISTORY - Write an update history record ! ! status = LBR$PUT_HISTORY (library_index, record_desc) ! ! library_index - Index value returned by LBR$INI_CONTROL ! record_desc - History record ! EXTERNAL LONG FUNCTION LBR$PUT_HISTORY & ( & LONG BY REF, & STRING BY DESC & ) ! ! LBR$PUT_RECORD - Write a data record ! ! status = LBR$PUT_RECORD (library_index, bufdes, txtrfa [,modsize]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! bufdes - Record to be written ! txtrfa - Receives RFA of module ! modsize - ELF object module size EXTERNAL LONG FUNCTION LBR$PUT_RECORD & ( & LONG BY REF, & STRING BY DESC, & ANY BY REF, & OPTIONAL BASIC$QUADWORD BY REF & ) ! ! LBR$REPLACE_KEY - Replace a library key ! ! status = LBR$REPLACE_KEY (library_index, key_name, oldrfa, newrfa [,flags]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! key_name - Name of key, passed by reference or descriptor ! oldrfa - RFA of old module header ! newrfa - RFA of new module header ! flags - key flags ! EXTERNAL LONG FUNCTION LBR$REPLACE_KEY & ( & LONG BY REF, & ANY BY REF, & ANY BY REF, & ANY BY REF, & OPTIONAL LONG BY VALUE & ) ! ! LBR$RET_RMSSTV - Return VMS RMS status value ! ! status = LBR$RET_RMSSTV () ! EXTERNAL LONG FUNCTION LBR$RET_RMSSTV ! ! LBR$SEARCH - Search an index ! ! status = LBR$SEARCH (library_index, index_number, rfa_to_find, ! routine_name [,flags]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! index_number - Number of index to search ! rfa_to_find - RFA of module to search for ! routine_name - Routine called to process keys ! flags - Key flags EXTERNAL LONG FUNCTION LBR$SEARCH & ( & LONG BY REF, & LONG BY REF, & ANY BY REF, & LONG BY VALUE, & OPTIONAL LONG BY VALUE & ) ! ! LBR$SET_INDEX - Set the current index number ! ! status = LBR$SET_INDEX (library_index, index_number) ! ! library_index - Index value returned by LBR$INI_CONTROL ! index_number - New index number ! EXTERNAL LONG FUNCTION LBR$SET_INDEX & ( & LONG BY REF, & LONG BY REF & ) ! ! LBR$SET_LOCATE - Set record access to locate mode ! ! status = LBR$SET_LOCATE (library_index) ! ! library_index - Index value returned by LBR$INI_CONTROL ! EXTERNAL LONG FUNCTION LBR$SET_LOCATE & ( & LONG BY REF & ) ! ! LBR$SET_MODULE - Read or update a module header ! ! status = LBR$SET_MODULE (library_index, rfa [,bufdesc] ! [,buflen] [,updatedesc]) ! ! library_index - Index value returned by LBR$INI_CONTROL ! rfa - RFA of module header ! bufdesc - Receives module header ! buflen - Receives length of module header ! updatedesc - Additional information to be stored in module header ! EXTERNAL LONG FUNCTION LBR$SET_MODULE & ( & LONG BY REF, & ANY BY REF, & OPTIONAL STRING BY DESC, & LONG BY REF, & STRING BY DESC & ) ! ! LBR$SET_MOVE - Set record access to move mode ! ! status = LBR$SET_MOVE (library_index) ! ! library_index - Index value returned by LBR$INI_CONTROL ! EXTERNAL LONG FUNCTION LBR$SET_MOVE & ( & LONG BY REF & ) ! ! LBR$MAP_MODULE - Copy/map an ELF object module from current library ! to the memory space ! ! statust = LBR$MAP_MODULE (library_index, addr, len, rfa) ! ! library_index - Index value returned by LBR$INI_CONTROL ! addr - Receives address of the module ! len - Receives length of module ! rfa - RFA of module ! EXTERNAL LONG FUNCTION LBR$MAP_MODULE & ( & LONG BY REF, & BASIC$QUADWORD BY REF, & BASIC$QUADWORD BY REF, & ANY BY REF & ) ! ! LBR$UNMAP_MODULE - Remove/release an ELF object module from the memory space ! ! status = LBR$UNMAP_MODULE (library_index, rfa) ! ! library_index - Index value returned by LBR$INI_CONTROL ! rfa - RFA of module ! EXTERNAL LONG FUNCTION LBR$UNMAP_MODULE & ( & LONG BY REF, & ANY BY REF & )