USERLIB Documentation The following routines can be accessed by linking your program with CSD$LIBRARY:Userlib/lib 1 LIB$CVT_TIME LIB$CVT_TIME - Convert ASCII String to Binary Time This routine is not included due to DEC copyright restrictions. - 1 - This page intentionally left blank. - 2 - 2 LIB_ASSEMBLE_LNMS LIB_ASSEMBLE_LNMS - Return All Logical Names in a Logical Name Table in a String Array Author: Jonathan Welch Creation Date: 8-Jun-1987 13:31 Functional description: Converts a stream of counted strings into an array of string descriptors. Calling sequence: Sts = Lib_Assemble_LNMs(Table, Logs, Cnt) Formal arguments: Table VMS Usage : char_string type : character string access : read only mechanism : by descriptor Name of logical name table to return all logical names from. Allowed tables currently are LNM$PROCESS_TABLE and LNM$PROCESS_DIRECTORY. Logs VMS Usage : char_string type : longword (unsigned) access : write only mechanism : by reference, array reference Array of strings to receive the logical names from the requested table. Cnt VMS Usage : longword_unsigned type : longword (unsigned) access : write only mechanism : by reference Count of logical names written into Logs(). Implicit Inputs: none Implicit Outputs: none Completion status: SS$_INSFARG Insufficient arguments were passed to Lib_Return_LNMs. SS$_IVLOGTAB An invalid logical name table was specified in the call to Lib_Return_LNMs. SS$_NORMAL Procedure completed successfully. SS$_OVRMAXARG Too many arguments were passed to Lib_Return_LNMs. - 3 - Any return status from STR$UPCASE. Side effects: none - 4 - 3 LIB_CMPQ LIB_CMPQ - Compare Two Quadwords Author: John W. Manly Creation Date: Fall, 1986 Functional description: Compares 2 quadwords Calling sequence: result.wl.v := LIB_CMPQ( oper1.rq.r, oper2.rq.r) Formal arguments: oper1 VMS Usage : quadword_unsigned type : quadword (unsigned) access : read only mechanism : by reference Address of a quadword. oper2 VMS Usage : quadword_unsigned type : quadword (unsigned) access : read only mechanism : by reference Address of another quadword to compare to the first. Implicit inputs: none Implicit outputs: none Routine value: -1 if OPER1 < OPER2 0 if OPER1 = OPER2 1 if OPER1 > OPER2 Side effects: none - 5 - 4 LIB_COPY_FILE LIB_COPY_FILE - Copies a file Author: Jonathan Welch Functional Description: Copies one file to another. Currently works for sequential files only. Calling Sequence: Sts = Lib_Copy_File(Infile, Outfile) Formal Arguments: Infile VMS Usage : char_string type : character string access : read only mechanism : by descriptor The name of the input file to be copied. Outfile VMS Usage : char_string type : character string access : read only mechanism : by descriptor The name of the output file to create. Implicit inputs: none Implicit outputs: none Completion Status: SS$_NORMAL Function completed successfully. Any RMS value returned by the following RMS functions: $CONNECT $CREATE $GET $OPEN $PUT - 6 - 5 LIB_FID_TO_FILENAME LIB_FID_TO_FILENAME - Converts a File ID to its Filename Author: Jonathan Welch Creation Date: 27-Jul-1987 12:20 Functional Description: The filename associated with a File Id (FID) is determined and returned to the caller. Calling sequence: Sts = Lib_Fid_To_Filename(Device, Fid, Filename, Iosb) Formal Arguments: Device VMS Usage : char_string type : character string access : read only mechanism : by descriptor Name of the device the file resides on. Fid VMS Usage : word type : word(unsigned) access : read only mechanism : by reference, array reference The File ID (FID) to generate a filename for. Filename VMS USage : char_string type : character_string access : write only mechanism : by descriptor The filename associated with the supplied FID. Iosb VMS Usage : io_status_block type : quadword(unsigned) access : write only mechanism : by reference I/O status block to receive the final completion status of the I/O operation. The iosb is the address of the quadword I/O status block. Implicit Inputs: none Implicit Outputs: none Completion status: Any possible values from the following: SYS$ASSIGN - 7 - SYS$DASSGN SYS$QIOW Side effects: none - 8 - 6 LIB_FILE_LNMTABLE LIB_FILE_LNMTABLE - Loads Logical Names From a File into a Logical Name Table Author: Jonathan Welch Creation Date: 30-Jun-1987 11:45 Functional Description: The logical names and their equivalent values in the specified file are read and inserted in the specified logical name table. Their access mode and attributes are restored, too. Note: When re-creating the logical names the saved access mode of the logical name will be maximized with the access mode of the user. The structure of the file is: Lognam [Equivalence_strings] where Equivalence_strings = Access mode (byte), Attributes (longword), Equivalence (char_string) Note: Logical names which are table entries will be in the file without any equivalence strings. Currently these entries should be ignored when re-loading the file into a table. Calling Sequence: Sts = Lib_File_LNMTable(Filename, Tablename, Stv) Formal arguments: Filename VMS Usage : char_string type : character string access : read only mechanism : by descriptor Specifies the name of the file the logical names in the specified logical name table are to be read from. Tablename VMS Usage : char_string type : character string access : read only mechanism : by descriptor The name of the logical name table to insert the logical names into. Logical names which are logical name table headers will be read from the file and ignored. Stv VMS Usage : longword(unsigned) type : unsigned longword - 9 - access : write only mechanism : by reference If a call to a RMS service returns an error Stv will contain the secondary status value RMS$L_STV. Implicit Inputs: none Implicit Outputs: none Completion status: SS$_NORMAL - Routine completed successfully. Any values returned by the following routines: LIB$EXTZB SYS$OPEN SYS$CONNECT SYS$GET SYS$CRELNM Condition value signaled: SS$_ROPRAND A reserved operand fault is signaled if a size greated than 32 is specified in the LIB$INSV call. - 10 - 7 LIB_GET_FILE_INFO LIB_GET_FILE_INFO - Returns Information about Files Author: Jonathan Welch Creation Date: September, 1986 Functional description: For each file that matches Filespec the following call is made: CALL User_Action_Routine(Sts, Iosb [,Fab, Fib, Nam, Attributes]) Sts VMS Usage : longword_unsigned type : longword (unsigned) access : read only mechanism : by reference IF POSITIVE: Return value from either the QIOW or ASSIGN system service request generated in the SUCCESS routine. IF Iosb(1) = 0 It is from the ASSIGN call (and you will probably be getting an error from QIOW if the ASSIGN failed) ELSE it is from the QIOW call. IF NEGATIVE: The negative of the return value in the FAB$L_STS field Iosb(1) = FAB$L_STV Note: If the value is negative the rest of the parameters in the call to User_Action_Routine will not be present so DO NOT try to access them. If you do you will get an access violation. Iosb VMS Usage : io_status_block type : quadword (unsigned) access : read only mechanism : by reference A two longword array The first longword is used for secondary status return values. Fab VMS Usage : fab type : unspecified access : read only mechanism : by reference The File Access Block for the file currently being processed. Fib VMS Usage : fib type : unspecified access : read only mechanism : by reference The File Information Block for the file currently being processed. - 11 - Nam VMS Usage : nam type : unspecified access : read only mechanism : by reference The NAMe Block for the file currently being processed. Attributes VMS Usage : user_arg type : unspecified access : read only mechanism : by reference ATR$C_xxxxxx requests. Only the fields up through ATR$C_JOURNAL (but not ATR$C_ENDLBLAST) are filled in. See the section ACP-QIO Interface in the I/O User's Reference Manual pp.1-17:1-24 Note: (1) The subfields for the Status Block (SBK) and record attributes (FAT) are included as part of the ATR block. (2) SBK$L_FILESIZE is not present. Instead use SBK$W_FILESIZH and SBK$W_FILESIZL. The user is free to process the above parameters in whatever way he/she finds most useful. Calling sequence: Sts = Lib_Get_File_Info(Filespec, Defaultname, User_Action_Routine, Err) Formal Arguments: Filespec VMS Usage : char_string type : character string access : read only mechanism : by descriptor A [wildcarded] filespec. Default_Name VMS Usage : char_string type : character string access : read only mechanism : by descriptor Default filespec pieces to scan for. User_Action_Routine VMS Usage : procedure type : procedure entry mask access : function call (before return) mechanism : by reference, procedure reference User supplied action routine to be called for each file processed found by LIB$FILE_SCAN - 12 - Err VMS Usage : vector_longword_unsigned type : longword (unsigned) access : read only mecnanism : by reference Err(1) - The return status from the SYS$DASSGN call Err(2) - The return status from the LIB$FILE_SCAN_END call Implicit Inputs: none Implicit Outputs: none Completion status: A function completion code from the LIB$FILE_SCAN routine. - 13 - 8 LIB_LNMTABLE_FILE LIB_LNMTABLE_FILE - Saves the Logical Names in a Logical Name Table to a File Author: Jonathan Welch Creation Date: 29-Jun-1987 13:35 Functional Description: The logical names in the specified table are saved to the specified file. Their access mode and attributes are saved to the file, too. The structure of the file is: Lognam [Equivalence_strings] where Equivalence_strings = Access mode (byte), Attributes (longword), Equivalence (char_string) Note: Logical names which are table entries will be in the file without any equivalence strings. Currently these entries should be ignored when re-loading the file into a table. Calling Sequence: Sts = Lib_LNMTable_File(Filename, Tablename, Stv) Formal arguments: Filename VMS Usage : char_string type : character string access : read only mechanism : by descriptor Specifies the name of the file the logical names in the specified logical name table are to be written into. Tablename VMS Usage : char_string type : character string access : read only mechanism : by descriptor The name of the logical name table to save to the specified file. Logical names which are table headers will be saved to the file but will have to equivalence strings following them. Stv VMS Usage : longword(unsigned) type : unsigned longword access : write only mechanism : by reference - 14 - If a call to a RMS service returns an error Stv will contain the secondary status value RMS$L_STV. Implicit Inputs: none Implicit Outputs: none Completion status: SS$_NORMAL - Routine completed successfully. Any values returned by the following routines: Lib_Assemble_LNMs STR$TRIM SYS$CREATE SYS$CONNECT SYS$PUT SYS$TRNLNM Side effects: STR$TRIM may also signal errors. - 15 - 9 LIB_MATCH_DIR_SPEC LIB_MATCH_DIR_SPEC - Compare two Directory Specifications for a Match Editors: 28-AUG-1987 Joe Bryan Creation. Abstract: Compares two directory specifications to determine if they match. A pattern specification that may contain wildcards is used to check a candidate specification that cannot have wildcards. The function assumes that both directory specifications are valid VMS directory specifications. Calling Sequence: Sts = Lib_Match_Dir_Spec(Cand_str, Pattern_str) Return: Boolean longword: pattern_str allows cand_str as a valid match. Arguments: cand_str VMS usage: char_string type: character string access: read only mechanism: by descriptor String compared against the pattern string. The cand_str must be a valid VMS directory specification and cannot contain any wildcard operators. pattern_str VMS usage: char_string type: character string access: read only mechanism: by descriptor String used to define what is valid as a match. The pattern_str must be a valid VMS directory specification and may contain wildcard operators. Side effects: None. Implicit arguments: None. - 16 - 10 LIB_MATCH_FILENAME LIB_MATCH_FILENAME - Determines if a Candidate Filename Matches a Pattern Filename. Author: Jonathan Welch Creation Date: 1-Sep-1987 10:10 Functional Description: Lib_Match_Filename is used to compare a pattern filename that includes wildcard characters with a candidate filespec. The comparison is made on the directory, name, type, and version fields of the filename. Calling Sequence: Sts = Lib_Match_Filename(Cand-filename, Pattern-filename) Formal Arguments: Cand filename VMS Usage : char_string type : character string access : read only mechanism : by descriptor The filename to which the pattern filename is compared. The cand-filename argument is the address of a descriptor pointing to the candidate filename. Note: The candidate filename must exist in order for this routine to work. Pattern filename VMS Usage : char_string type : character string access : read only mechanism : by descriptor String containing a filename with optional wildcard characters. The Pattern filename argument is the address of a descriptor pointing to the pattern filename. The wildcards in the pattern filename may be any valid RMS sequence of wildcard characters (i.e. *, %, and ...). Implicit Inputs: Cand filename must exist. Implicit Outputs: none Completion status: SS$_NORMAL - The cand filename has a match within the pattern filename. Any values returned by the following routines: - 17 - Lib_Get_File_Info STR$UPCASE SYS$FILESCAN SYS$PARSE SYS$SEARCH The following routines may signal errors: STR$MATCH_WILD STR$UPCASE Side Effects: none - 18 - 11 LIB_MOVTC LIB_MOVTC - Move Translated Characters Author: Jonathan Welch Functional description: The source string is translated and replaces the destination stirng. Translation is accomplished by using each byte of the source string as an index into a 256-byte table whose zeroth entry address is specified by the table address operand. The byte selected replaces the byte of the destination string. if the destination string is longer than the source string, the highest addressed bytes of the destination string are replaced by the fill operand. If the destination string is shorter than the source string, the highest addressed bytes of the source string are not translated and moved. The operation of the instruction is such that overlap of the source and destination strings does not affect the result. If the destination string overlaps the translation table, the destination string is unpredictable. Calling sequence: Sts = Lib_Movtc(Srclen, Srcaddr, Fill, Tbladdr, Dstlen, Dstaddr) Formal arguments: Srclen VMS Usage : unsigned_word type : word (unsigned) access : read only mechanism : by value Length of source string to be translated Srcaddr VMS Usage : address type : longword (unsigned) access : read only mechanism : by value Address of the first byte in the source string. Fill VMS Usage : byte_unsigned type : byte (unsigned) access : read only mechanism : by value Value of the fill character. Tbladdr VMS Usage : address type : longword (unsigned) access : read only mechanism : by value Address of the first byte in the translation table. - 19 - Dstlen VMS Usage : word_unsigned type : word (unsigned) access : read only mechanism : by value Length of the destination string translated characters are to be moved into. Dstaddr VMS Usage : address type : longword (unsigned) access : read only mechanism : by value Address of the first byte in the destination string. Implicit Inputs: none Implicit Outputs: none Routine Value: R0 = number of translated bytes remaining in source string; R0 is nonzero only if source string is longer than destination string. - 20 - 12 LIB_PEEK LIB_PEEK - Returns the Value of a Byte in Memory Author: Jonathan Welch Functional Description: Returns the value of the byte at the specified memory location. Calling Sequence: Value = Lib_Peek(Address) Formal Arguments: Address VMS Usage : address type : longword (unsigned) access : read only mechanism : by reference Address of memory location to examine. Implicit Inputs: none Implicit Outputs: none Routine Value: Value of the byte at the specified memory location. - 21 - 13 LIB_PEEK_L LIB_PEEK_L - Returns the Value of a Longword in Memory Author: Jonathan Welch Functional Description: Returns the value of the longword at the specified memory location. Calling Sequence: Value = Lib_Peek(Address) Formal Arguments: Address VMS Usage : address type : longword (unsigned) access : read only mechanism : by reference Address of memory location to examine. Implicit Inputs: none Implicit Outputs: none Routine Value: Value of the longword at the specified memory location. - 22 - 14 LIB_POKE LIB_POKE - Writes a Byte Into Memory Author: John W. Manly Functional Description: Puts the specified value at the specified location in memory. Calling Sequence: CALL Lib_Poke(address, value) Formal arguments: Address VMS Usage : address type : longword (unsigned) access : read only mechanism : by reference Value VMS Usage : byte_unsigned type : byte (unsigned) access : read only mechanism : by reference Implicit Inputs: none Implicit Outputs: none Routine Value: SS$_NORMAL - 23 - 15 LIB_TRACE LIB_TRACE - Callable traceback routine Author: Michael Porter Creation date: 7/23/85 Modified By: Joe Bryan 17-AUG-1987 -- changed HANDLER function to be local instead of global. Abstract: This module contains a routine that directly maps and calls the traceback facility. Normally, this facility is not callable, it is mapped and called by the system when an exception does not get handled. The primary use of this routine is to generate tracebacks from within a program, saving the trace in a file, without generating an exception. This is useful for tracing program usage. A general use of this routine is to allow users to make comments in the program. Later these comments can be reviewed, and the location of the user in the program is known symbolically. In order to use this routine effectively, the image must not be linked with /NOTRACEBACK. This means that this routine is of limited use for programs that are installed. Needless to say, this module is highly dependant on undocumented interfaces to VMS. Hopefully, at some time in the future TRACEBACK will be a callable facility. You will have to define the symbol lib__trace in your favorite message library, or change the code to use something else. Environment: User-Mode, Non-AST Re-Entrant Functional Description: This routine is used to generate a traceback that will be written to the file specified using the RAB RAB$W_ISI values. The traceback is generated by actually calling the traceback facility, an error is not signalled, so there will be no confusion with other exception handlers. This routine can be called from an exception handler. If it called from an exception handler and the exception is not handled, two tracebacks will be generated. The system generated traceback will occur on SYS$OUTPUT and SYS$ERROR, the traceback from this routine will go to the file specified or default to SYS$OUTPUT and SYS$ERROR. Calling Sequence: ret_status = lib_trace( [,error_isi.rw.v, output_isi.rl.v] [frame.rl.v] [,signal.ra.r] ) Formal Parameters: - 24 - error_isi -- RAB RAB$W_ISI value of the file you want the output to appear in. output_isi If output_isi and error_isi are the same, the output will only occur once. If neither is specified, SYS$OUTPUT and SYS$ERROR will be used. you must specify both or neither frame -- # of frames from end of call stack to skip This argument is used if this routine is called from a general location, and the frames for the general location are not wanted in the traceback. Do not include internal frames in this routine in the count signal -- Signal array used in traceback message. The default is a signal named lib__trace. Implicit Inputs: sect_addr -- Pointer to location where TRACE was mapped image -- String descriptor giving the name of the image to map Implicit Outputs: sect_addr -- Pointer to location where TRACE was mapped Register Usage: R2 -- Top FP (top of stack, usually SYS$IMGSTA) R3 -- Top AP (AP pointing to args at image startup) R4 -- Fault FP (FP of frame pseudo fault occured in) R5 -- PC at Pseudo fault (The saved PC in the frame after the faulting frame) R6 -- Signal name Completion Status: SS$_NORMAL Normal, successful completion Side Effects: The TRACE image will be mapped. If the system also generates trace messages, TRACE will be mapped twice, but this will not cause a problem since it is relocatable. - 25 - 16 STR_MATCH_R_DX STR_MATCH_R_DX - Search for a Substring in a String Author: Jonathan Welch Creation Date: 8-Jun-1987 14:15 Functional description: The source string specified by the source descriptor address operand is searched for a substring which matches the object string specified by the object length and object address operands. Calling sequence: Sts = Str_Match_R_Dx(Objlen, Objaddr, Srcstr) Formal arguments: Objlen VMS Usage : word_unsigned type : word (unsigned) access : read only mechanism : by reference Length in bytes of the substring to search for. Objaddr VMS Usage : longword (unsigned) type : address access : read only mechanism : by reference Address of the first byte of the string to search for. Srcstr VMS Usage : char_string type : character string access : read only mechanism : by descriptor String which is to be searched for a substring match. Implicit Inputs: none Implicit Outputs: none Routine value: 0 if a match occurred otherwise the number of bytes in the object string - 26 - 17 RMS_PARSE RMS_PARSE - Provides a Simple Interface to the RMS $PARSE Service. Author: Joe Bryan Creation Date: 30-Sep-1987 Functional description: The RMS $PARSE service is called with the file-name and default-name fields as specified. The field argument is used to specify which components of the parsed file specification are to be returned in the file-spec argument. The type argument is used to set the NAM$B_NOP field in the NAM block. Calling sequence: Sts = RMS_PARSE(Filespec ,Filename ,[Default-name] ,[Field] ,[Type]) Formal arguments: While all five arguments must be supplied, arguments 3, 4 and 5 may be zero or blank. Filespec VMS Usage : char_string type : character string access : write only mechanism : by descriptor, fixed length String that will receive the segment(s) of the parsed file specification requested by the field argument. This argument must be specified. Filename VMS usage : char_string type : character string, fixed length access : read only mechanism : by descriptor Primary components of file specification. Any components not specified will be filed in buy the default-name string and process environment default. This argument must be specified. Default-name VMS usage : VMS file specification type : character string, fixed length access : read only mechanism : by descriptor Default components of file specification. Any components not specified by either the filename or default-name strings will be filled in by the default file specification defined for the user's process (using the DCL command SET DEFAULT ). If the default-name string is blank or this argument is zero, only the process default will be used. Field VMS Usage : unsigned_byte - 27 - type : byte (unsigned) access : read only mechanism : by reference Bit mask that specifies the components of the parsed file specification that are to be returned in the filespec string. These codes may be or'ed together to return more than one component of the specification. If no bits are set or this argument is zero, the complete file specification will be returned. The field codes are identical to the FSCN$M_ codes defined in the $FSCNDEF modules. The numeric values are listed below: File spec Bit field Decimal Symbolic Field Offset Value Mask name -------------------------------------------------------- Node 0 1 FSCN$M_NODE Device 1 2 FSCN$M_DEVICE Root 2 4 FSCN$M_ROOT Directory 3 8 FSCN$M_DIRECTORY Name 4 16 FSCN$M_NAME Type 5 32 FSCN$M_TYPE Version 6 64 FSCN$M_VERSION Type VMS Usage : unsigned_byte type : byte (unsigned) access : read only mechanism : by reference Bit mask that specifies the type of parse to perform. This argument is used to set the NAM$B_NOP field in the NAM block. If this argument is zero, or no bits are set, the standard defaults will be used. These bit masks are defined in the $NAMDEF modules. The numeric values are listed below: Parse Bit field Decimal Symbolic Type Offset Value Mask name -------------------------------------------------------------- Perform syntax check only 3 8 NAM$M_SYNCHK Don't conceal device, directory logical 4 16 NAM$M_NOCONCEAL Implicit arguments: none Side effects: none - 28 - Completion status: RMS $PARSE service completion status. If RMS$_ESS is returned, the filespec output string was truncated. Function characteristics: AST re-entrant, shareable. - 29 - 18 SYS_BTEST SYS_BTEST - Tests a Bit in Long Data Structures Author: Jonathan Welch Functional description: The bit specified by the position and base operands is tested and its state is returned. Calling sequence: State = Sys_Btest(Bitposition, Base) Formal arguments: Bitposition VMS Usage : longword_unsigned type : longword (unsigned) access : read only mechanism : by value An offset from the base operand specifying which bit to test. Base VMS Usage : address type : longword (unsigned) access : read only mechanism : by reference Base address to offset "Bitposition" bits from. Implicit Inputs: none Implicit Outputs: none Routine value: 0 if the specified bit is off. 1 if the specified bit is on. - 30 - 19 SYS_CRMPSC SYS_CRMPSC - Creates and Maps a Section Author: Jonathan Welch Functional description: This routine provides a simplified interface to SYS$CRMPSC. Calling Sequence: Sts = Sys_Crmpsc(Filename, Flage, Section_Name, Size, Out) Formal Arguments: Filename VMS Usage : char_string type : character string access : read only mechanism : by descriptor Filename the global section is to be mapped to. Flags VMS Usage : longword_unsigned type : longword (unsigned) access : read only mechanism : by reference Flag mask sepcifying the type of section to be created or mapped to, as well as its characteristics. The flags argument is a longword bit vector wherein each bit corresponds to a flag. The $SECDEF macro defines a symbolic name for each flag. The flags argument is constructed by performing a logical OR operation on the symbol names for all desired flags. Section_Name VMS Usage : char_string type : character string access : read only mechanism : by descriptor Name of the global section. The Section_Name is the address of a character string descriptor pointing to this name string. Section 11.6.6.1 in the System Services manual describes the format of this name string. For group global section, VAX/VMS interprets the UIC group as part of the global section name; thus, the names of global sections are unique to UIC groups. Size VMS Usage : longword_unsigned type : longword (unsigned) access : read only mechanism : by reference Size of the file to create if the file specified by the - 31 - Filename argument does not exist. Out VMS Usage : address_range type : longword (unsigned) access : write only mechanism : by reference, array reference Starting and ending process virtual addresses into which the section was actually mapped by $CRMPSC. The Out argument is the address of a two-longword array containing, in order, the starting and ending process virtual addresses. Implicit inputs: none Implicit outputs: none Completion status: Any possible return values from: SYS$CREATE SYS$CRMPSC - 32 - 20 SYS_REPORT_MESSAGE SYS_REPORT_MESSAGE - Displays the Message Text Associated With a VMS Error Code Author: Jonathan Welch Functional Description: Gets the text associated with Code and prints it out. Calling Sequence: Sts = Sys_Report_Message(Code) Formal arguments: Code VMS Usage : longword_unsigned type : longword (unsigned) access : read only mechanism : by reference A VMS error code. Implicit Inputs: none Implicit Outputs: none Routine Value: SS$_NORMAL Routine completed successfully Any value returned by SYS$GETMSG - 33 - 21 SYS_SUBMIT SYS_SUBMIT - Submits a File to a Queue Author: Jonathan Welch Functional Description: Submits a file to a queue. Provides a simplified interface to $SNDJBC. Calling Sequence: Sts = Sys_Submit(Filename, Queue, Modifiers) Formal arguments: Filename VMS Usage : char_string type : character string access : read only mechanism : by descriptor Name of a file to be submitted to a queue. Queue VMS Usage : char_string type : character string access : read only mechanism : by descriptor Name of a queue to submit a file to. Modifiers VMS Usage : longword_unsigned type : longword (unsigned) access : read only mechanism : by reference, array reference Longword array where the first longword is a count of how many boolean longword modifiers follow. For example: +--------------------+ | 2 | +--------------------+ | SJC$_NO_LOG_DELETE | +--------------------+ | SJC$_NOTIFY | +--------------------+ Implicit Inputs: none Implicit Outputs: none - 34 - Completion status: Any possible return value from SYS$SNDJBCW - 35 - 22 SYS_TRNLOG SYS_TRNLOG - Returns the Final Translation of a Logical Name Author: Jonathan Welch Functional Description: Recursively translates the specified logical name in the specified logical name table and returns the final translation. Calling Sequence: Sts = Sys_Trnlog(Table, Logical, Trans) Formal Arguments: Table VMS Usage : char_string type : character string access : read only mechanism : by descriptor Name of a logical name table to search. Logical VMS Usage : char_string type : character string access : read only mechanism : by descriptor A logical name to recursively translate. Trans VMS Usage : char_string type : character string access : write only mechanism : by descriptor Variable to receive the final translation of the specified logical name. Implicit Inputs: none Implicit Outputs: none Completion status: SS$_NORMAL Routine completed successfully. Any possible return value from SYS$TRNLNM. - 36 -