! ******************************************************************************************************************************** ! Created: 30-AUG-2007 11:29:40 by OpenVMS SDL IA64-2 ! Source: 30-AUG-2007 11:29:40 GEM$:[GEMGROUP.SHEILAM.FORSYSDEF.IVMS-V83]LBR$ROUTINES.SDI;1 ! ******************************************************************************************************************************** !*** MODULE LBR$ROUTINES IDENT X-4 *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ! ! 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 ! INTEGER*4 LBR$CLOSE EXTERNAL LBR$CLOSE ! ! 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 ! INTEGER*4 LBR$DELETE_DATA EXTERNAL LBR$DELETE_DATA ! ! 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 ! INTEGER*4 LBR$DELETE_KEY EXTERNAL LBR$DELETE_KEY ! ! 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 ! INTEGER*4 LBR$FIND EXTERNAL LBR$FIND ! ! 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 INTEGER*4 LBR$FLUSH EXTERNAL LBR$FLUSH ! ! 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 ! INTEGER*4 LBR$GET_HEADER EXTERNAL LBR$GET_HEADER ! ! 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 ! INTEGER*4 LBR$GET_HELP EXTERNAL LBR$GET_HELP ! ! 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 ! INTEGER*4 LBR$GET_HISTORY EXTERNAL LBR$GET_HISTORY ! ! 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 ! INTEGER*4 LBR$GET_INDEX EXTERNAL LBR$GET_INDEX ! ! 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 INTEGER*4 LBR$GET_RECORD EXTERNAL LBR$GET_RECORD ! ! 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 ! INTEGER*4 LBR$INI_CONTROL EXTERNAL LBR$INI_CONTROL ! ! 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 ! INTEGER*4 LBR$INSERT_KEY EXTERNAL LBR$INSERT_KEY ! ! 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 ! INTEGER*4 LBR$LOOKUP_KEY EXTERNAL LBR$LOOKUP_KEY ! ! 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 ! INTEGER*4 LBR$LOOKUP_TYPE EXTERNAL LBR$LOOKUP_TYPE ! ! 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 ! INTEGER*4 LBR$OPEN EXTERNAL LBR$OPEN ! ! 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 ! INTEGER*4 LBR$OUTPUT_HELP EXTERNAL LBR$OUTPUT_HELP ! ! 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 ! INTEGER*4 LBR$PUT_MODULE EXTERNAL LBR$PUT_MODULE ! ! LBR$PUT_END - Write an end-of-module record ! ! status = LBR$PUT_END (library_index) ! ! library_index - Index value returned by LBR$INI_CONTROL ! INTEGER*4 LBR$PUT_END EXTERNAL LBR$PUT_END ! ! 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 ! INTEGER*4 LBR$PUT_HISTORY EXTERNAL LBR$PUT_HISTORY ! ! 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 INTEGER*4 LBR$PUT_RECORD EXTERNAL LBR$PUT_RECORD ! ! 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 ! INTEGER*4 LBR$REPLACE_KEY EXTERNAL LBR$REPLACE_KEY ! ! LBR$RET_RMSSTV - Return VMS RMS status value ! ! status = LBR$RET_RMSSTV () ! INTEGER*4 LBR$RET_RMSSTV EXTERNAL 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 INTEGER*4 LBR$SEARCH EXTERNAL LBR$SEARCH ! ! 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 ! INTEGER*4 LBR$SET_INDEX EXTERNAL LBR$SET_INDEX ! ! LBR$SET_LOCATE - Set record access to locate mode ! ! status = LBR$SET_LOCATE (library_index) ! ! library_index - Index value returned by LBR$INI_CONTROL ! INTEGER*4 LBR$SET_LOCATE EXTERNAL LBR$SET_LOCATE ! ! 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 ! INTEGER*4 LBR$SET_MODULE EXTERNAL LBR$SET_MODULE ! ! LBR$SET_MOVE - Set record access to move mode ! ! status = LBR$SET_MOVE (library_index) ! ! library_index - Index value returned by LBR$INI_CONTROL ! INTEGER*4 LBR$SET_MOVE EXTERNAL LBR$SET_MOVE ! ! 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 ! INTEGER*4 LBR$MAP_MODULE EXTERNAL LBR$MAP_MODULE ! ! 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 ! INTEGER*4 LBR$UNMAP_MODULE EXTERNAL LBR$UNMAP_MODULE !DEC$ END OPTIONS