2 LIB$
3 LIB$ADAWI The Add Aligned Word with Interlock routine allows the user to perform an interlocked add operation using an aligned word. Format LIB$ADAWI add ,sum ,sign 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments add OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by reference The addend operand to be added to the value of sum. The add argument is the address of a signed word that contains the addend operand. sum OpenVMS usage:word_signed type: word integer (signed) access: modify mechanism: by reference The word to which add is added. The sum argument is the address of a signed word integer containing this value. The add operand is added to the sum operand, and the value of the sum argument is replaced by the result of this addition. The sum argument must be word-aligned; in other words, its address must be a multiple of 2. sign OpenVMS usage:word_signed type: word integer (signed) access: write only mechanism: by reference Sign of the sum argument. The sign argument is the address of a signed word integer that is assigned the value -1, 0, or 1, depending on whether the new value of sum is negative, 0, or positive. 3 LIB$ADDX The Add Two Multiple-Precision Binary Numbers routine adds two signed two's complement integers of arbitrary length. Format LIB$ADDX addend-array ,augend-array ,resultant-array [,array-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments addend-array OpenVMS usage:vector_longword_signed type: unspecified access: read only mechanism: by reference, array reference First multiple-precision, signed two's complement integer that LIB$ADDX adds to the second two's complement integer. The addend- array argument is the address of the array containing the two's complement number to be added. augend-array OpenVMS usage:vector_longword_signed type: unspecified access: read only mechanism: by reference, array reference Second multiple-precision, signed two's complement integer that LIB$ADDX adds to the first two's complement integer. The augend- array argument is the address of the array containing the two's complement number. resultant-array OpenVMS usage:vector_longword_signed type: unspecified access: write only mechanism: by reference, array reference Multiple-precision, signed two's complement integer result of the addition. The resultant-array argument is the address of the array into which LIB$ADDX writes the result of the addition. array-length OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Length in longwords of the arrays to be operated on; each array is of length array-length. The array-length argument is the address of a signed longword integer containing the length. The array-length argument must not be negative. This is an optional argument. If omitted, the default is 2. 3 LIB$ADD_TIMES The Add Two Quadword Times routine adds two internal format times. Format LIB$ADD_TIMES time1 ,time2 ,resultant-time 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments time1 OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference First time that LIB$ADD_TIMES adds to the second time. The time1 argument is the address of an unsigned quadword containing the first time to be added. The time1 argument may be either a delta time or an absolute time; however, at least one of the arguments, time1 or time2, must be a delta time. time2 OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference Second time that LIB$ADD_TIMES adds to the first time. The time2 argument is the address of an unsigned quadword containing the second time to be added. The time2 argument may be either a delta time or an absolute time; however, at least one of the arguments, time1 or time2, must be a delta time. resultant-time OpenVMS usage:date_time type: quadword (unsigned) access: write only mechanism: by reference The result of adding time1 and time2. The resultant-time argument is the address of an unsigned quadword containing the result. If both time1 and time2 are delta times, then resultant-time is a delta time. Otherwise, resultant-time is an absolute time. 3 LIB$ANALYZE_SDESC The Analyze String Descriptors routine extracts the length and the address at which the data starts for a variety of 32-bit string descriptor classes. Format LIB$ANALYZE_SDESC input-descriptor ,data-length ,data-address 4 Corresponding_JSB_Entry_Point LIB$ANALYZE_SDESC_R2 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments input-descriptor OpenVMS usage:descriptor type: quadword (unsigned) access: read only mechanism: by reference Input descriptor from which LIB$ANALYZE_SDESC extracts the length of the data and the address at which the data starts. The input- descriptor argument is the address of a descriptor pointing to the input data. data-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the data; LIB$ANALYZE_SDESC extracts this length value from the input descriptor. The data-length argument is the address of an unsigned word integer into which LIB$ANALYZE_SDESC writes the length. data-address OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Starting address of the data; LIB$ANALYZE_SDESC extracts this address from the input descriptor. The data-address argument is the address of an unsigned longword into which LIB$ANALYZE_SDESC writes the starting address of the data. 3 LIB$ANALYZE_SDESC_64 (Alpha only.) The Analyze String Descriptor routine extracts the length and the address at which the data starts for a variety of 32-bit and 64-bit string descriptor classes. Format LIB$ANALYZE_SDESC_64 input-descriptor ,data-length ,data-address [,descriptor-type] 4 Corresponding_JSB_Entry_Point Refer to the LIB$ANALYZE_SDESC routine for information about the JSB entry point, LIB$ANALYZE_SDESC_R2. This JSB entry point returns 64-bit results on Alpha systems. 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments input-descriptor OpenVMS usage:descriptor type: longword (unsigned) or quadword (unsigned) access: read only mechanism: by reference Input descriptor from which LIB$ANALYZE_SDESC_64 extracts the length of the data and the address at which the data starts. The input-descriptor argument is the address of a descriptor pointing to the input data. The input descriptor can be a longword (unsigned) or a quadword (unsigned). data-length OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: write only mechanism: by reference Length of the data; LIB$ANALYZE_SDESC_64 extracts this length value from the input descriptor. The data-length argument is the address of an unsigned quadword integer into which LIB$ANALYZE_ SDESC_64 writes the length. data-address OpenVMS usage:address type: quadword (unsigned) access: write only mechanism: by reference Starting address of the data; LIB$ANALYZE_SDESC_64 extracts this address from the input descriptor. The data-address argument is the address of an unsigned quadword into which LIB$ANALYZE_SDESC_ 64 writes the starting address of the data. descriptor-type OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference Flag value indicating the type of input descriptor. The descriptor-type argument contains the address of an unsigned longword integer to which LIB$ANALYZE_SDESC_64 writes a 0 for a 32-bit input descriptor or a 1 for a 64-bit descriptor. This argument is optional. 3 LIB$ASN_WTH_MBX The Assign Channel with Mailbox routine assigns a channel to a specified device and associates a mailbox with the device. It returns both the device channel and the mailbox channel. Format LIB$ASN_WTH_MBX device-name [,maximum-message-size] [,buffer-quota] ,device-channel ,mailbox-channel 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments device-name OpenVMS usage:device_name type: character string access: read only mechanism: by descriptor Device name that LIB$ASN_WTH_MBX passes to the $ASSIGN service. The device-name argument is the address of a descriptor pointing to the device name. maximum-message-size OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Maximum message size that can be sent to the mailbox; LIB$ASN_ WTH_MBX passes this argument to the $CREMBX service. The maximum- message-size argument is the address of a signed longword integer containing this maximum message size. buffer-quota OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Number of system dynamic memory bytes that can be used to buffer messages sent to the mailbox; LIB$ASN_WTH_MBX passes this argument to the $CREMBX service. The buffer-quota argument is the address of a signed longword integer containing this buffer quota. device-channel OpenVMS usage:word_unsigned type: word integer (unsigned) access: write only mechanism: by reference Device channel that LIB$ASN_WTH_MBX receives from the $ASSIGN service. The device-channel argument is the address of an unsigned word integer into which $ASSIGN writes the device channel. mailbox-channel OpenVMS usage:channel type: word integer (unsigned) access: write only mechanism: by reference Mailbox channel that LIB$ASN_WTH_MBX receives from the $CREMBX service. The mailbox-channel argument is the address of an unsigned word integer into which $CREMBX writes the mailbox channel. 3 LIB$AST_IN_PROG The AST in Progress routine indicates whether an AST is currently in progress. Format LIB$AST_IN_PROG 4 Returns OpenVMS usage:boolean type: boolean access: write only mechanism: by value Truth value that indicates whether an AST is currently in progress (value = 1) or not (value = 0). 4 Arguments None. 3 LIB$ATTACH The Attach Terminal to Process routine requests the calling process's command language interpreter (CLI) to detach the terminal of the calling process and to reattach it to a different process. Format LIB$ATTACH process-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument process-id OpenVMS usage:process_id type: longword integer (unsigned) access: read only mechanism: by reference Identification of the process to which LIB$ATTACH requests the calling process to attach its terminal. The process-id argument is the address of an unsigned longword integer containing the process identification. The specified process must be currently detached (by means of a SPAWN or ATTACH command or by a call to LIB$SPAWN or LIB$ATTACH) and must be part of the caller's job. 3 LIB$BBCCI The Test and Clear Bit with Interlock routine tests and clears a selected bit under memory interlock. LIB$BBCCI makes the VAX BBCCI instruction available as a callable routine. Format LIB$BBCCI position ,bit-zero-address 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value State of the bit before it was cleared by LIB$BBCCI: 1 if the bit was previously set, and 0 if the bit was previously clear. 4 Arguments position OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Bit position, relative to bit-zero-address, of the bit that LIB$BBCCI tests and clears. The position argument is the address of a signed longword integer containing the bit position. A position of zero denotes the low-order bit of the byte base. The bit position is equal to the offset of the bit chosen from the base position. This offset may span the entire range of a signed longword integer; negative offsets access bits in lower addressed bytes. bit-zero-address OpenVMS usage:unspecified type: address access: modify mechanism: by reference Address of the byte containing bit 0 of the field that LIB$BBCCI references. The bit-zero-address argument is the location of the base position. The bit that LIB$BBCCI tests and clears is position bits offset from the low bit of bit-zero-address. 3 LIB$BBSSI The Test and Set Bit with Interlock routine tests and sets a selected bit under memory interlock. LIB$BBSSI makes the VAX BBSSI instruction available as a callable routine. Format LIB$BBSSI position ,bit-zero-address 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The state of the bit before it was set by LIB$BBSSI: 1 if it was previously set, and 0 if it was previously clear. 4 Arguments position OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Bit position, relative to bit-zero-address, of the bit that LIB$BBSSI tests and sets. The position argument is the address of a signed longword integer containing the bit position. A position of zero denotes the low-order bit of the byte base. The bit position is equal to the offset of the bit chosen from the base position. This offset may span the entire range of a signed longword integer; negative offsets access bits in lower addressed bytes. bit-zero-address OpenVMS usage:unspecified type: address access: modify mechanism: by reference Address of the byte containing bit 0 of the field that LIB$BBSSI references. The bit-zero-address argument is the location of the base position. The bit that LIB$BBSSI tests and sets is position bits offset from the low bit of bit-zero-address. 3 LIB$BUILD_NODESPEC The Build a Node-Name Specification routine builds a node-name specification from the primary node name. The output node-name specification can be used for other node-name parsing operations. Format LIB$BUILD_NODESPEC primary-nodename, nodespec [,acs] [,secondary-nodename] [,nodespec-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments primary-nodename OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Primary node name. The primary-nodename argument contains the address of a descriptor pointing to this node-name string. The primary node name should not contain unnecessary quotation marks (that is, quotation marks (" ") that are not part of a simple name within the node name). The error LIB$_INVARG is returned if primary-nodename points to a null string. The error LIB$_INVSTRDES is returned if primary- nodename is an invalid descriptor. nodespec OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Node-name specification. The nodespec argument contains the address of a descriptor pointing to this output node-name specification string. LIB$BUILD_NODESPEC writes the output node- name specification into the buffer pointed to by the nodespec descriptor. The error LIB$_INVSTRDES is returned if nodespec is an invalid descriptor. The length field of the nodespec descriptor is not updated unless nodespec is a dynamic descriptor with a length less than the resultant node-name specification. Refer to the OpenVMS RTL String Manipulation (STR$) Manual for dynamic string descriptor usage. The nodespec argument contains an unusable result when LIB$BUILD_ NODESPEC returns in error. acs OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Access control string. The acs argument contains the address of a descriptor pointing to this access control string. The access control string must be a quoted string. The error LIB$_INVSTRDES is returned if acs is an invalid descriptor. secondary-nodename OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Secondary node name. The secondary-nodename argument contains the address of a descriptor pointing to this secondary node-name string. The error LIB$_INVSTRDES is returned if secondary-nodename is an invalid descriptor. nodespec-length OpenVMS usage:unsigned_word type: word (unsigned) access: write only mechanism: by reference Length of the output node-name specification. The nodespec-length argument is the address of an unsigned word that contains this length in bytes. The nodespec-length argument contains an unusable result when LIB$BUILD_NODESPEC returns in error. 3 LIB$CALLG The Call Routine with General Argument List routine calls a routine with an argument list specified as an array of longwords, the first of which is a count of the remaining longwords. LIB$CALLG is a callable version of the VAX CALLG instruction. Format LIB$CALLG argument-list ,user-procedure 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value Return value, if any, of the called routine, unchanged by LIB$CALLG. 4 Arguments argument-list OpenVMS usage:arg_list type: unspecified access: read only mechanism: by reference, array reference Argument list to be passed to user-procedure. The argument- list argument is the address of an array of longwords that is the argument list. The first longword contains the count of the remaining longwords, to a maximum of 255. user-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value Routine that LIB$CALLG calls with the specified argument list. 3 LIB$CALLG_64 (Alpha only.) The Call Routine with General Argument List routine calls a routine with an argument list specified as an array of quadwords, the first of which is a count of the remaining quadwords. Format LIB$CALLG_64 argument-list ,user-procedure 4 Returns OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: write only mechanism: by value Return value, if any, of the called routine, unchanged by LIB$CALLG_64. 4 Arguments argument-list OpenVMS usage:arg_list type: unspecified access: read only mechanism: by reference, array reference Argument list to be passed to user-procedure. The argument- list argument is the address of an array of quadwords that is the argument list. The first quadword contains the count of the remaining quadwords, to a maximum of 255. user-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value Routine that LIB$CALLG_64 calls with the specified argument list. 3 LIB$CHAR The Transform Byte to First Character of String routine transforms a single 8-bit ASCII character to an ASCII string consisting of a single character followed by trailing spaces, if needed, to fill out the string. The range of the input byte is 0 through 255. Format LIB$CHAR one-character-string ,ascii-code 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments one-character-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor ASCII character string consisting of a single character followed by trailing spaces, if needed, that LIB$CHAR creates when it transforms the ASCII character code. The one-character-string argument is the address of a descriptor pointing to the character string that LIB$CHAR writes. ascii-code OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference Single 8-bit ASCII character code that LIB$CHAR transforms to an ASCII string. The ascii-code argument is the address of an unsigned byte containing the ASCII character code. 3 LIB$COMPARE_NODENAME The Compare Two Node Names routine compares two node names to see if they resolve to the same full name. Format LIB$COMPARE_NODENAME nodename1 ,nodename2 ,comparison-result 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments nodename1 OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor First node name to be compared. The nodename1 argument contains the address of a descriptor pointing to this node-name string. The error LIB$_INVARG is returned if nodename1 contains an invalid node name, points to a null string, or contains more than 1024 characters. The error LIB$_INVSTRDES is returned if nodename1 is an invalid descriptor. nodename2 OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Second node name to be compared. The nodename2 argument contains the address of a descriptor pointing to this node-name string. The error LIB$_INVARG is returned if nodename2 contains an invalid node name, points to a null string, or contains more than 1024 characters. The error LIB$_INVSTRDES is returned if nodename2 is an invalid descriptor. comparison-result OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference Result of the comparison. The comparison-result argument is the address of an unsigned longword that contains the comparison result. If the two node names are equal, 0 is returned. If they are not equal, 1 is returned. Comparison-result contains an unusable result when LIB$COMPARE_ NODENAME returns in error. 3 LIB$COMPRESS_NODENAME The Compress a Node Name to Its Short Form Equivalence routine compresses a node name to an unambiguous short form usable within the naming environment where the compression is performed. Format LIB$COMPRESS_NODENAME nodename ,compressed-nodename [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments nodename OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Node name to be compressed. The nodename argument contains the address of a descriptor pointing to this node-name string. The error LIB$_INVARG is returned if nodename contains an invalid node name, points to a null string, or contains more than 1024 characters. The error LIB$_INVSTRDES is returned if the nodename descriptor is invalid. compressed-nodename OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Compressed node name. The compressed-nodename argument contains the address of a descriptor pointing to the compressed node-name string. LIB$COMPRESS_NODENAME writes the compressed node name into the buffer pointed to by compressed-nodename. The error LIB$_INVSTRDES is returned if compressed-nodename is an invalid descriptor. The length field of the compressed-nodename descriptor is not updated unless compressed-nodename is a dynamic descriptor with a length less than the resulting compressed node name. Refer to the OpenVMS RTL String Manipulation (STR$) Manual for dynamic string descriptor usage. The compressed-nodename argument contains an unusable result when LIB$COMPRESS_NODENAME returns in error. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the compressed node name. The resultant-length argument is the address of an unsigned word that contains this length in bytes. The resultant-length argument contains an unusable result when LIB$COMPRESS_NODENAME returns in error. 3 LIB$CONVERT_DATE_STRING The Convert Date String to Quadword routine converts an absolute date string into an OpenVMS internal format date-time quadword. That is, given an input date/time string of a specified format, LIB$CONVERT_DATE_STRING converts this string to an OpenVMS internal format time. Format LIB$CONVERT_DATE_STRING date-string ,date-time [,user-context] [,flags] [,defaults] [,defaulted-fields] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments date-string OpenVMS usage:time_name type: character-coded text string access: read only mechanism: by descriptor Date string that specifies the absolute time to be converted to an internal system time. The date-string argument is the address of a descriptor pointing to this date string. This string must have a format corresponding to the currently defined input format, or it must be one of the relative day strings YESTERDAY, TODAY, or TOMORROW, or their equivalents in the currently selected language. date-time OpenVMS usage:date_time type: quadword (unsigned) access: write only mechanism: by reference Receives the converted time. The date-time argument is the address of an unsigned quadword that contains this OpenVMS internal format converted time. user-context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context variable that receives the translation context from a call to LIB$INIT_DATE_TIME_CONTEXT and then retains the translation context over multiple calls to LIB$CONVERT_DATE_STRING. The user-context argument is the address of an unsigned longword that contains this context. The user program should not write directly to this variable once it is initialized. The user-context parameter is optional. However, if a context cell is not passed, the routine LIB$CONVERT_DATE_STRING may abort if two threads of execution attempt to manipulate the context area concurrently. Therefore, when calling this routine in situations where reentrancy might occur, such as from AST level, Digital recommends that users specify a different context cell for each calling thread. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Specifies which date or time fields of the date-string argument might be omitted so that default values are applied. The flags argument is the address of a longword bit mask that contains these flags. A set bit indicates that the field may be omitted. The bit definitions for the mask correspond to the fields in a $NUMTIM "timbuf" structure as follows: Field Bit Number Mask Year 0 1 Month 1 2 Day of month 2 4 Hours 3 8 Minutes 4 16 Seconds 5 32 Fractional 6 64 seconds Bits 7 through 31 must be zero and are reserved for use by Digital. If this parameter is omitted, a default value of 120 (78H) is used, indicating that the time fields may be defaulted but the date fields may not. defaults OpenVMS usage:vector_word_unsigned type: word (unsigned) access: read only mechanism: by reference, array reference Supplies the defaults to be used for omitted fields. The defaults argument is the address of an array of unsigned words containing these default values. This array corresponds to a 7-word $NUMTIM "timbuf" structure. If the defaults argument is omitted, the following defaults are applied: o For the date group, the default is the current date. o For the time group, the default is 00:00:00.00. defaulted-fields OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by reference Indicates which date or time fields have been defaulted. The defaulted-fields argument is the address of a longword bit mask that specifies these fields. The bit definitions are identical to those of the flags bit mask. A set bit indicates that the field was defaulted. Bits 7 through 31, which are reserved for use by Digital, are zeroed. 3 LIB$CRC The Calculate a Cyclic Redundancy Check routine calculates the cyclic redundancy check (CRC) for a data stream. Format LIB$CRC crc-table ,initial-crc ,stream 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The computed cyclic redundancy check. 4 Arguments crc-table OpenVMS usage:vector_longword_signed type: longword integer (signed) access: read only mechanism: by reference, array reference The 16-longword cyclic redundancy check table created by a call to LIB$CRC_TABLE. The crc-table argument is the address of a signed longword integer containing this table. Because this table is created by LIB$CRC_TABLE and then used as input in LIB$CRC, your program must call LIB$CRC_TABLE before it calls LIB$CRC. initial-crc OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Initial cyclic redundancy check. The initial-crc argument is the address of a signed longword integer containing the initial cyclic redundancy check. stream OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Data stream for which LIB$CRC is calculating the CRC. The stream argument is the address of a descriptor pointing to the data stream. 3 LIB$CRC_TABLE The Construct a Cyclic Redundancy Check Table routine constructs a 16-longword table that uses a cyclic redundancy check polynomial specification as a bit mask. Format LIB$CRC_TABLE polynomial-coefficient ,crc-table 4 Returns None. 4 Arguments polynomial-coefficient OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference A bit mask indicating which polynomial coefficients are to be generated by LIB$CRC_TABLE. The polynomial-coefficient argument is the address of an unsigned longword integer containing this bit mask. crc-table OpenVMS usage:vector_longword_signed type: longword integer (signed) access: write only mechanism: by reference, array reference The 16-longword table that LIB$CRC_TABLE produces. The crc-table argument is the address of a signed longword integer containing the table. 3 LIB$CREATE_DIR The Create a Directory routine creates a directory or subdirectory. Format LIB$CREATE_DIR device-directory-spec [,owner-UIC] [,protection-enable] [,protection-value] [,maximum-versions] [,relative-volume-number] [,initial-allocation] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments device-directory-spec OpenVMS usage:device_name type: character string access: read only mechanism: by descriptor Directory specification of the directory or subdirectory that LIB$CREATE_DIR will create. The device-directory-spec argument is the address of a descriptor pointing to this directory specification. The format of the device-directory-spec string conforms to standard OpenVMS Record Management Services (RMS) format. This specification must contain a directory or subdirectory specification. It may contain a disk specification. SMD$:[THIS.IS.IT] is an example of a standard RMS file specification, where SMD$ is the disk specification and [THIS.IS.IT] is the subdirectory specification. This specification cannot contain a node name, file name, file type, file version, or wildcard characters. The maximum size of this string is 255 characters. owner-UIC OpenVMS usage:uic type: longword (unsigned) access: read only mechanism: by reference User identification code (UIC) identifying the owner of the created directory or subdirectory. The owner-UIC argument is the address of an unsigned longword that contains the UIC. If owner- UIC is zero, the owner UIC is that of the parent directory. The specified value for owner-UIC is interpreted as a 32-bit octal number, with two 16-bit fields: bits 00-15 - Member number bits 16-31 - Group number This is an optional argument. The default is the UIC of the current process except when the directory is in UIC format. For a directory in UIC format, for example [123,321], the UIC of the created directory is used. protection-enable OpenVMS usage:mask_word type: word (unsigned) access: read only mechanism: by reference Mask specifying the bits of protection-value to be set. The protection-enable argument is the address of an unsigned word containing this protection mask. The following diagram shows the structure of a protection mask. Access is allowed for bits set to 0. World Group Owner System +_______________+_______________+_______________+_______________+ | D | W | E | R | D | W | E | R | D | W | E | R | D | W | E | R | _________________________________________________________________ 15 0 Bits set in the protection-enable mask cause corresponding bits of protection-value to be set. Bits not set in the protection- enable mask cause corresponding bits of protection-value to take the value of the corresponding bit in the parent directory's file protection. Bits in the parent directory's file protection that indicate delete access do not cause corresponding bits of protection-value to be set, however. Following is an example of how the protection-value protection mask is defined: Hexadecimal Mask Name Number Value Protection %XDBFF S:None, O:None, G:E, W:W enable Parent %X13FF S:RWED, O:RWED, G:RW, W:R directory Protection %X37FF S:RWE, O:RWE, G:RWE, W:RW value The protection-enable argument is optional. It should be used only when you want to change protection values from the parent directory's default file protection. The default for protection-enable is a mask of all zero bits, which results in the propagation of the parent directory's file protection. If the protection-enable mask contains zeros, protection-value is ignored. protection-value OpenVMS usage:file_protection type: word (unsigned) access: read only mechanism: by reference System/Owner/Group/World protection value of the directory you are creating. The protection-value argument is the address of an unsigned word that contains this protection mask. The bits of protection-value are set or cleared in the method described in the definition of protection-enable above. The protection-value argument is optional. The default is a word of all zero bits, which specifies full access for all access categories. Typically, protection-value is not omitted unless protection-enable is also omitted. If protection-enable is omitted, protection-value is ignored. maximum-versions OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Maximum number of versions allowed for files created in the newly created directories. The maximum-versions argument is the address of an unsigned word containing the value of the maximum number of versions. The maximum-versions argument is optional. The default is the parent directory's default version limit. If maximum-versions is zero, the maximum number of versions is not limited. relative-volume-number OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Relative volume number within a volume set on which the directory or subdirectory is created. The relative-volume-number argument is the address of an unsigned word containing the relative volume number. The relative-volume-number argument is optional. The default is arbitrary placement within the volume set. initial-allocation OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference Initial number of blocks to be allocated to the directory. This argument is useful for creating large directories, for example MAIL.DIR;1. It can improve performance by avoiding the need for later dynamic expansion of the directory. The initial-allocation argument applies only to Files-11 Level 2 volumes; it is ignored for other volumes. This argument is the address of an unsigned longword that contains the initial number of blocks to be allocated to the directory. The initial-allocation argument is optional. The default allocation is 1 block. 3 LIB$CREATE_USER_VM_ZONE The Create User-Defined Storage Zone routine creates a new user- defined storage zone in the 32-bit virtual address space. Format LIB$CREATE_USER_VM_ZONE zone-id [,user-argument] [,user-allocation-procedure] [,user-deallocation-procedure] [,user-reset-procedure] [,user-delete-procedure] [,zone-name] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments zone-id OpenVMS usage:identifier type: longword (unsigned) access: write only mechanism: by reference Zone identifier. The zone-id argument is the address of a longword that receives the identifier of the newly created zone. user-argument OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by reference User argument. The user-argument argument is the address of an unsigned longword containing the user argument. LIB$CREATE_USER_ VM_ZONE copies the value of user-argument and supplies the value to all user procedures invoked. user-allocation-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User allocation routine. user-deallocation-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User deallocation routine. user-reset-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User routine invoked each time LIB$RESET_VM_ZONE is called for the zone. user-delete-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User routine invoked when LIB$DELETE_VM_ZONE is called for the zone. zone-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name to be associated with the zone being created. The optional zone-name argument is the address of a descriptor pointing to the zone name. If zone-name is not specified, the zone will not have an associated name. 3 LIB$CREATE_USER_VM_ZONE_64 (Alpha only.) The Create User-Defined Storage Zone routine creates a new user-defined storage zone in the 64-bit virtual address space. Format LIB$CREATE_USER_VM_ZONE_64 zone-id [,user-argument] [,user-allocation-procedure] [,user-deallocation-procedure] [,user-reset-procedure] [,user-delete-procedure] [,zone-name] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments zone-id OpenVMS usage:identifier type: quadword (unsigned) access: write only mechanism: by reference Zone identifier. The zone-id argument is the address of a quadword that receives the identifier of the newly created zone. user-argument OpenVMS usage:user_arg type: quadword (unsigned) access: read only mechanism: by reference User argument. The user-argument argument is the address of an unsigned quadword containing the user argument. LIB$CREATE_USER_ VM_ZONE_64 copies the value of user-argument and supplies the value to all user procedures invoked. user-allocation-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User allocation routine. user-deallocation-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User deallocation routine. user-reset-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User routine invoked each time LIB$RESET_VM_ZONE_64 is called for the zone. user-delete-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User routine invoked when LIB$DELETE_VM_ZONE_64 is called for the zone. zone-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name to be associated with the zone being created. The optional zone-name argument is the address of a descriptor pointing to the zone name. If zone-name is not specified, the zone will not have an associated name. 3 LIB$CREATE_VM_ZONE The Create a New Zone routine creates a new storage zone in the 32-bit virtual address space, according to specified arguments. Format LIB$CREATE_VM_ZONE zone-id [,algorithm] [,algorithm-argument] [,flags] [,extend-size] [,initial-size] [,block-size] [,alignment] [,page-limit] [,smallest-block-size] [,zone-name] [,get-page] [,free-page] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments zone-id OpenVMS usage:identifier type: longword (unsigned) access: write only mechanism: by reference Zone identifier. The zone-id argument is the address of a longword that is set to the zone identifier of the newly created zone. algorithm OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Algorithm. The algorithm argument is the address of a longword integer that contains a value representing one of the LIB$VM algorithms. Use one of the predefined symbols to specify this value. Symbol Value Algorithm LIB$K_VM_FIRST_FIT 1 First fit LIB$K_VM_QUICK_FIT 2 Quick fit, lookaside list LIB$K_VM_FREQ_SIZES 3 Frequent sizes, lookaside list LIB$K_VM_FIXED 4 Fixed-size blocks If algorithm is not specified, a default of 1 (first fit) is used. algorithm-argument OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Algorithm argument. The algorithm-argument argument is the address of a longword integer that contains a value specific to the particular allocation algorithm as shown in the following table. Algorithm Value First fit Not used, may be omitted. Quick fit The number of lookaside lists used. The number of lists must be between 1 and 128. Frequent The number of lookaside lists used. The number of sizes lists must be between 1 and 16. Fixed size The fixed request size (in bytes) for each get blocks or free request. The request size must be greater than 0. The algorithm-argument argument must be specified if you are using the quick-fit, frequent-sizes or fixed-size-blocks algorithms. However, this argument is optional, but ignored, if you are using the first-fit algorithm. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Flags. The flags argument is the address of a longword integer that contains flag bits that control various options, as follows: Bit Value Description 0 LIB$M_VM_BOUNDARY_ Boundary tags for faster freeing. TAGS Adds a minimum of 8 bytes to each block. 1 LIB$M_VM_GET_FILL0 LIB$GET_VM; fill with bytes of 0. 2 LIB$M_VM_GET_FILL1 LIB$GET_VM; fill with bytes of FF (hexadecimal). 3 LIB$M_VM_FREE_FILL0 LIB$FREE_VM; fill with bytes of 0. 4 LIB$M_VM_FREE_FILL1 LIB$FREE_VM; fill with bytes of FF (hexadecimal). 5 LIB$M_VM_EXTEND_ Adds extents to existing areas if AREA possible. 6 LIB$M_VM_NO_EXTEND Prevents zone from being extended beyond its initial size. If you specify this flag, you must also specify an initial-size. The extend- size argument is not used. 7 LIB$M_VM_TAIL_LARGE Adds areas larger than extend-size areas to the end of the area list. Allocations that are larger than extend-size can result in new areas. These areas are added to the end of the area list. (This provides better memory reuse when allocating small and very large blocks from the same zone.) Bits 8 through 31 are reserved and must be 0. This is an optional argument. If flags is omitted, the default of 0 (no fill and no boundary tags) is used. extend-size OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Zone extend size. The extend-size argument is the address of a longword integer that contains the number of (512-byte) pages on VAX systems or pagelets on Alpha systems to be added to the zone each time it is extended. The value of extend-size must be greater than or equal to 1. This is an optional argument. If extend-size is not specified, a default of 16 pages on VAX systems or pagelets on Alpha systems is used. NOTE The extend-size argument does not limit the number of blocks that can be allocated from the zone. The actual extension size is the greater of extend-size and the number of pages on VAX systems or pagelets on Alpha systems needed to satisfy the LIB$GET_VM call that caused the extension. initial-size OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Initial size for the zone. The initial-size argument is the address of a longword integer that contains the number of (512- byte) pages on VAX systems or pagelets on Alpha systems to be allocated for the zone as the zone is created. This is an optional argument. If you specify a value for initial- size, the value must be greater than or equal to 0; otherwise, LIB$_INVARG is returned. If initial-size is not specified or is specified as 0, no pages on VAX systems or pagelets on Alpha systems are allocated when the zone is created. The first call to LIB$GET_VM for the zone allocates extend-size pages on VAX systems or pagelets on Alpha systems. block-size OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Block size of the zone. The block-size argument is the address of a longword integer specifying the allocation quantum (in bytes) for the zone. All blocks allocated are rounded up to a multiple of block-size. The value of block-size must be a power of 2 between 8 and 512. This is an optional argument. If block-size is not specified, a default of 8 is used. alignment OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Block alignment. The alignment argument is the address of a longword integer that specifies the required address alignment (in bytes) for each block allocated. The value of alignment must be a power of 2 between 4 and 512. This is an optional argument. If alignment is not specified, a default of 8 (quadword alignment) is used. page-limit OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Maximum page limit. The page-limit argument is the address of a longword integer that specifies the maximum number of (512-byte) pages on VAX systems or pagelets on Alpha systems that can be allocated for the zone. The value of page-limit must be greater than or equal to 0. Note that part of the zone is used for header information. This is an optional argument. If page-limit is not specified or is specified as 0, the only limit is the total process virtual address space limit imposed by OpenVMS. If page-limit is specified, then initial-size must also be specified. smallest-block-size OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Smallest block size. The smallest-block-size argument is the address of a longword integer that specifies the smallest block size (in bytes) that has a lookaside list for the quick fit algorithm. If smallest-block-size is not specified, the default of block- size is used. That is, lookaside lists are provided for the first n multiples of block-size. zone-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name to be associated with the zone being created. The optional zone-name argument is the address of a descriptor pointing to the zone name. If zone-name is not specified, the zone will not have an associated name. get-page OpenVMS usage:procedure type: procedure value access: read only mechanism: by value Routine that allocates memory. The number and type of the arguments to this routine must match those of the LIB$GET_VM_ PAGE routine. If get-page is not specified or is specified as 0, the LIB$GET_VM_PAGE routine is used to allocate memory. free-page OpenVMS usage:procedure type: procedure value access: read only mechanism: by value Routine that deallocates memory. The number and type of the arguments to this routine must match those of the LIB$FREE_ VM_PAGE routine. If free-page is not specified or if free- page is specified as 0, the LIB$FREE_VM_PAGE routine is used to deallocate memory. 3 LIB$CREATE_VM_ZONE_64 (Alpha only.) The Create a New Zone routine creates a new storage zone in the 64-bit virtual address space, according to specified arguments. Format LIB$CREATE_VM_ZONE_64 zone-id [,algorithm] [,algorithm-argument] [,flags] [,extend-size] [,initial-size] [,block-size] [,alignment] [,page-limit] [,smallest-block-size] [,zone-name] [,get-page] [,free-page] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments zone-id OpenVMS usage:identifier type: quadword (unsigned) access: write only mechanism: by reference Zone identifier. The zone-id argument is the address of a quadword that is set to the zone identifier of the newly created zone. algorithm OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Algorithm. The algorithm argument is the address of a quadword integer that represents the code for one of the LIB$VM algorithms. Use one of the following predefined symbols to specify this value: Symbol Value Algorithm LIB$K_VM_FIRST_FIT 1 First fit LIB$K_VM_QUICK_FIT 2 Quick fit, lookaside list LIB$K_VM_FREQ_SIZES 3 Frequent sizes, lookaside list LIB$K_VM_FIXED 4 Fixed-size blocks If algorithm is not specified, a default of 1 (first fit) is used. algorithm-argument OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Algorithm argument. The algorithm-argument argument is the address of a quadword integer that contains a value specific to the particular allocation algorithm. Algorithm Value First fit Not used, may be omitted. Quick fit The number of lookaside lists used. The number of lists must be between 1 and 128. Frequent The number of lookaside lists used. The number of sizes lists must be between 1 and 16. Fixed size The fixed request size (in bytes) for each get blocks or free request. The request size must be greater than 0. The algorithm-argument argument must be specified if you are using the quick-fit, frequent-sizes or fixed-size-blocks algorithms. However, this argument is optional, but ignored, if you are using the first-fit algorithm. flags OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by reference Flags. The flags argument is the address of a quadword integer that contains flag bits that control various options, as follows: Bit Value Description 0 LIB$M_VM_BOUNDARY_ Boundary tags for faster freeing. TAGS Adds a minimum of 16 bytes to each block. 1 LIB$M_VM_GET_FILL0 LIB$GET_VM_64; fill with bytes of 0. 2 LIB$M_VM_GET_FILL1 LIB$GET_VM_64; fill with bytes of FF (hexadecimal). 3 LIB$M_VM_FREE_FILL0 LIB$FREE_VM_64; fill with bytes of 0. 4 LIB$M_VM_FREE_FILL1 LIB$FREE_VM_64; fill with bytes of FF (hexadecimal). 5 LIB$M_VM_EXTEND_ Adds extents to existing areas if AREA possible. 6 LIB$M_VM_NO_EXTEND Prevents zone from being extended beyond its initial size. If you specify this flag, you must also specify an initial-size. Extend-size is not used. 7 LIB$M_VM_TAIL_LARGE Adds areas larger than extend-size areas to the end of the area list. Allocations that are larger than extend-size can result in new areas. These areas are added to the end of the area list. (This provides better memory re-use when allocating small and very large blocks from the same zone.) Bits 8 through 63 are reserved and must be 0. This is an optional argument. If flags is omitted, the default of 0 (no fill and no boundary tags) is used. extend-size OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Zone extend size. The extend-size argument is the address of a quadword integer that contains the number of Alpha pagelets to be added to the zone each time it is extended. The value of extend-size must be greater than or equal to 1. This is an optional argument. If extend-size is not specified, a default of 16 Alpha pagelets is used. NOTE The extend-size argument does not limit the number of blocks that can be allocated from the zone. The actual extension size is the greater of extend-size and the number of Alpha pagelets needed to satisfy the LIB$GET_VM_64 call that caused the extension. initial-size OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Initial size for the zone. The initial-size argument is the address of a quadword integer that contains the number of Alpha pagelets to be allocated for the zone as the zone is created. This is an optional argument. If you specify a value for initial- size, the value must be greater than or equal to 0; otherwise, LIB$_INVARG is returned. If initial-size is not specified or is specified as 0, no Alpha pagelets are allocated when the zone is created. The first call to LIB$GET_VM_64 for the zone allocates extend-size pagelets on Alpha systems. block-size OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Block size of the zone. The block-size argument is the address of a quadword integer specifying the allocation quantum (in bytes) for the zone. All blocks allocated are rounded up to a multiple of block-size. The value of block-size must be a power of 2 between 16 and 512. This is an optional argument. If block-size is not specified, a default of 16 is used. alignment OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Block alignment. The alignment argument is the address of a quadword integer that specifies the required address alignment (in bytes) for each block allocated. The value of alignment must be a power of 2 between 8 and 512. This is an optional argument. If alignment is not specified, a default of 16 (octaword alignment) is used. page-limit OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Maximum page limit. The page-limit argument is the address of a quadword integer that specifies the maximum number of Alpha pagelets that can be allocated for the zone. The value of page- limit must be greater than or equal to 0. Note that part of the zone is used for header information. This is an optional argument. If page-limit is not specified or is specified as 0, the only limit is the total process virtual address space limit imposed by OpenVMS. If page-limit is specified, then initial-size must also be specified. smallest-block-size OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Smallest block size. The smallest-block-size argument is the address of a quadword integer that specifies the smallest block size (in bytes) that has a lookaside list for the quick fit algorithm. If smallest-block-size is not specified, the default of block- size is used. That is, lookaside lists are provided for the first n multiples of block-size. zone-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name to be associated with the zone being created. The optional zone-name argument is the address of a descriptor pointing to the zone name. If zone-name is not specified, the zone will not have an associated name. get-page OpenVMS usage:procedure type: procedure value access: read only mechanism: by value Routine that allocates memory. The number and type of the arguments to this routine must match those of the LIB$GET_VM_ PAGE_64 routine. If get-page is not specified or is specified as 0, the LIB$GET_VM_PAGE_64 routine is used to allocate memory. free-page OpenVMS usage:procedure type: procedure value access: read only mechanism: by value Routine that deallocates memory. The number and type of the arguments to this routine must match those of the LIB$FREE_VM_ PAGE_64 routine. If free-page is not specified or if free-page is specified as 0, the LIB$FREE_VM_PAGE_64 routine is used to deallocate memory. 3 LIB$CRF_INS_KEY The Insert Key in Cross-Reference Table routine inserts information about a key into a cross-reference table. Format LIB$CRF_INS_KEY control-table ,key-string ,symbol-value ,flags 4 Returns None. 4 Arguments control-table OpenVMS usage:vector_longword_signed type: longword integer (signed) access: read only mechanism: by reference, array reference Cross-reference table into which LIB$CRF_INS_KEY inserts information about the key. The control-table argument is the address of a signed longword integer pointing to the cross- reference table. You must name this table each time you call a cross-reference routine because you can accumulate information for more than one cross-reference table at a time. key-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor A counted ASCII string that contains a symbol name or an unsigned binary longword. The key-string argument is the address of a descriptor pointing to the key. symbol-value OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Symbol value, the address of which LIB$CRF_INS_KEY inserts in the cross-reference table. The symbol-value argument is the address of a signed longword integer containing this value. Both the key and value addresses must be permanent addresses in the user's symbol table. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Value used in selecting the contents of the KEY2 and VAL2 fields; flags is stored with the entry. The flags argument is the address of an unsigned longword containing the flags. When preparing the output line, LIB$CRF_OUTPUT uses flags and the 16-bit mask in the field descriptor table to extract the data. The high-order bit of the word is reserved for LIB$CRF_INS_KEY. 3 LIB$CRF_INS_REF The Insert Reference to a Key in the Cross-Reference Table routine inserts a reference to a key in a cross-reference symbol table. Format LIB$CRF_INS_REF control-table ,longword-integer-key ,reference-string ,longword-integer-reference ,ref-definition-indicator 4 Returns None. 4 Arguments control-table OpenVMS usage:vector_longword_signed type: longword integer (signed) access: read only mechanism: by reference, array reference Control table associated with this cross-reference. The control- table argument is the address of an array containing the control table. longword-integer-key OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Key referred to by LIB$CRF_INS_REF. The longword-integer-key argument is the address of a signed longword integer containing the key. The key is a counted ASCII string that contains a symbol name or an unsigned binary longword. It must be a permanent address in the user's symbol table. reference-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Counted ASCII string with a maximum of 31 characters, not including the byte count. The reference-string argument is the address of a descriptor pointing to the counted ASCII string. longword-integer-reference OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference The 16-bit value used in selecting the contents of the REF1 field. The longword-integer-reference argument is the address of a signed longword integer containing this value. When preparing the output line, LIB$CRF_OUTPUT uses longword-integer-reference and the bit mask in the field descriptor table to extract the data. The high-order bit of the word is reserved for LIB$CRF_INS_ REF. ref-definition-indicator OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Reference/definition indicator that LIB$CRF_INS_REF uses to distinguish between a reference to a symbol and the definition of the symbol. The ref-definition-indicator argument is the address of a signed longword integer containing this indicator. The only difference between processing a symbol reference and a symbol definition is where LIB$CRF_INS_REF stores the information. The reference/definition indicator can have either of the following values: Symbolic Name Description CRF$K_REF Reference to a symbol CRF$K_DEF Definition of a symbol 3 LIB$CRF_OUTPUT The Output Cross-Reference Table Information routine extracts the information from the cross-reference tables and formats the output pages. Format LIB$CRF_OUTPUT control-table ,output-line-width ,page1 ,page2 ,mode-indicator ,delete-save-indicator 4 Returns None. 4 Arguments control-table OpenVMS usage:vector_longword_signed type: longword integer (signed) access: read only mechanism: by reference, array reference Control table associated with the cross-reference. The control- table argument is the address of an array containing the control table. The table contains the address of the user-supplied routine that prints the lines formatted by LIB$CRF_OUTPUT. output-line-width OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Width of the output line. The output-line-width argument is the address of a signed longword integer containing the width. page1 OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Number of lines on the first page of the output. The page1 argument is the address of a signed longword integer containing this number. This allows the user to reserve space to print header information on the first page of the cross-reference. page2 OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Number of lines per page for the other pages. The page2 argument is the address of a signed longword integer containing this number. mode-indicator OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Output mode indicator. The mode-indicator argument is the address of a signed longword integer containing the mode indicator. This indicator allows the user to select which of three output modes is desired. Output Mode Description CRF$K_VALUES Only the value and key fields are to be printed. LIB$CRF_OUTPUT creates multiple columns across the page. Each column consists of the KEY1, KEY2, VAL1, and VAL2 fields. A minimum of one space between each column is guaranteed. CRF$K_VALS_ Requests a cross-reference summary that has no REFS column space saved for a defining reference. If the user inserted a reference with the CRF$K_DEF indicator, the entry is ignored. CRF$K_DEFS_ Requests a cross-reference summary with the first REFS REF1 and REF2 fields used only for definition references. If no definition reference is provided, the fields are filled with spaces. delete-save-indicator OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Delete/save indicator, which LIB$CRF_OUTPUT uses to determine whether the table's built-in accumulating symbol information is to be saved or deleted once the cross-reference is produced. The delete-save-indicator argument is the address of a signed longword integer containing the delete/save indicator. The indicator can be either of the following: CRF$K_SAVE To preserve the tables for subsequent processing CRF$K_ To delete the tables DELETE 3 LIB$CURRENCY The Get System Currency Symbol routine returns the system's currency symbol. Format LIB$CURRENCY currency-string [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments currency-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Currency symbol. The currency-string argument is the address of a descriptor pointing to the currency symbol. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of characters that LIB$CURRENCY has written into the currency-string argument, not counting padding in the case of a fixed-length string. The resultant-length argument is the address of an unsigned word containing the length of the currency symbol. If the input string is truncated to the size specified in the currency-string argument, resultant-length is set to this size. Therefore, resultant-length can always be used by the calling program to access a valid substring of currency-string. 3 LIB$CVTF_FROM_INTERNAL_TIME The Convert Internal Time to External Time (F-Floating-Point Value) routine converts a delta internal OpenVMS system time into an external F-floating time. Format LIB$CVTF_FROM_INTERNAL_TIME operation ,resultant-time ,input-time 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments operation OpenVMS usage:function_code type: longword (unsigned) access: read only mechanism: by reference The conversion to be performed. The operation argument is the address of an unsigned longword specifying the operation. Valid values for operation are the following: Operation Interpretation LIB$K_DELTA_WEEKS_F Fractional weeks LIB$K_DELTA_DAYS_F Fractional days LIB$K_DELTA_HOURS_F Fractional hours LIB$K_DELTA_MINUTES_F Fractional minutes LIB$K_DELTA_SECONDS_F Fractional seconds resultant-time OpenVMS usage:floating_point type: F_floating access: write only mechanism: by reference The external time that results from the conversion. The resultant-time argument is the address of an F-floating-point value containing the result. input-time OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference Delta time to be converted. The input-time argument is the address of an unsigned quadword containing the time. 3 LIB$CVTF_TO_INTERNAL_TIME The Convert External Time to Internal Time (F-Floating-Point Value) routine converts an external time interval into an OpenVMS internal format F-floating delta time. Format LIB$CVTF_TO_INTERNAL_TIME operation ,input-time ,resultant-time 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments operation OpenVMS usage:function_code type: longword (unsigned) access: read only mechanism: by reference The conversion to be performed. The operation argument is the address of an unsigned longword specifying the operation. Valid values for operation are the following: Operation Interpretation LIB$K_DELTA_WEEKS_F Fractional weeks LIB$K_DELTA_DAYS_F Fractional days LIB$K_DELTA_HOURS_F Fractional hours LIB$K_DELTA_MINUTES_F Fractional minutes LIB$K_DELTA_SECONDS_F Fractional seconds input-time OpenVMS usage:varying_arg type: F_floating access: read only mechanism: by reference Delta time to be converted. The input-time argument is the address of this input time. The value you supply for input-time must be greater than 0. resultant-time OpenVMS usage:date_time type: quadword (unsigned) access: write only mechanism: by reference The OpenVMS internal format delta time that results from the conversion. The resultant-time argument is the address of an unsigned quadword containing the result. 3 LIB$CVT_DX_DX The General Data Type Conversion routine converts OpenVMS standard atomic or string data described by a source descriptor to OpenVMS standard atomic or string data described by a destination descriptor. This conversion is supported over a subset of the OpenVMS standard data types. Format LIB$CVT_DX_DX source-item ,destination-item [,word-integer-dest-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments source-item OpenVMS usage:unspecified type: unspecified access: read only mechanism: by descriptor Source item to be converted by LIB$CVT_DX_DX. The source-item argument is the address of a descriptor pointing to the source item to be converted. The type of the item to be converted is contained in the descriptor. destination-item OpenVMS usage:unspecified type: unspecified access: write only mechanism: by descriptor Destination of the conversion. The destination-item argument is the address of a descriptor pointing to the destination item. The destination descriptor specifies the data type to which the source item is converted. word-integer-dest-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length in bytes of the destination item (when that item is a string) that has been converted by LIB$CVT_DX_DX, not including any space filling. The word-integer-dest-length argument contains the address of an unsigned word containing this length. If the destination string is truncated, the returned length reflects the truncation. This word can be used by the calling program to determine if truncation has occurred or to extract the exact length of the string when the string contains space filling. 3 LIB$CVT_FROM_INTERNAL_TIME The Convert Internal Time to External Time routine converts an internal OpenVMS system time (either absolute or delta) into an external time. Format LIB$CVT_FROM_INTERNAL_TIME operation ,resultant-time [,input-time] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments operation OpenVMS usage:function_code type: longword (unsigned) access: read only mechanism: by reference The conversion to be performed. The operation argument is the address of an unsigned longword containing the operation. The following table shows valid values for operation: Operation Type Return Range LIB$K_MONTH_OF_YEAR Absolute 1 to 12 LIB$K_DAY_OF_YEAR Absolute 1 to 366 LIB$K_HOUR_OF_YEAR Absolute 1 to 8784 LIB$K_MINUTE_OF_YEAR Absolute 1 to 527,040 LIB$K_SECOND_OF_YEAR Absolute 1 to 31,622,400 LIB$K_DAY_OF_MONTH Absolute 1 to 31 LIB$K_HOUR_OF_MONTH Absolute 1 to 744 LIB$K_MINUTE_OF_MONTH Absolute 1 to 44,640 LIB$K_SECOND_OF_MONTH Absolute 1 to 2,678,400 LIB$K_DAY_OF_WEEK Absolute 1 to 7 LIB$K_HOUR_OF_WEEK Absolute 1 to 168 LIB$K_MINUTE_OF_WEEK Absolute 1 to 10,080 LIB$K_SECOND_OF_WEEK Absolute 1 to 604,800 LIB$K_HOUR_OF_DAY Absolute 0 to 23 LIB$K_MINUTE_OF_DAY Absolute 0 to 1439 LIB$K_SECOND_OF_DAY Absolute 0 to 86,399 LIB$K_MINUTE_OF_HOUR Absolute 0 to 59 LIB$K_SECOND_OF_HOUR Absolute 0 to 3599 LIB$K_SECOND_OF_MINUTE Absolute 0 to 59 LIB$K_JULIAN_DATE Absolute Julian date LIB$K_DELTA_WEEKS Delta LIB$K_DELTA_DAYS Delta LIB$K_DELTA_HOURS Delta LIB$K_DELTA_MINUTES Delta LIB$K_DELTA_SECONDS Delta resultant-time OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference The external time that results from the conversion. The resultant-time argument is the address of an unsigned longword containing the result. input-time OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference Optional absolute or delta time to be converted. The input-time argument is the address of an unsigned quadword containing the time. If you do not supply a value for input-time, the current system time is used. 3 LIB$CVT_TO_INTERNAL_TIME The Convert External Time to Internal Time routine converts an external time interval into an OpenVMS internal format delta time. Format LIB$CVT_TO_INTERNAL_TIME operation ,input-time ,resultant-time 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments operation OpenVMS usage:function_code type: longword (unsigned) access: read only mechanism: by reference The conversion to be performed. The operation argument is the address of an unsigned longword specifying the operation. Valid values for operation are the following: Operation Interpretation LIB$K_DELTA_WEEKS Whole weeks in delta time LIB$K_DELTA_DAYS Whole days in delta time LIB$K_DELTA_HOURS Whole hours in delta time LIB$K_DELTA_MINUTES Whole minutes in delta time LIB$K_DELTA_SECONDS Whole seconds in delta time input-time OpenVMS usage:varying_arg type: longword (signed) access: read only mechanism: by reference Delta time to be converted. The input-time argument is the address of this input time. The value you supply for input-time must be greater than 0. resultant-time OpenVMS usage:date_time type: quadword (unsigned) access: write only mechanism: by reference The OpenVMS internal format delta time that results from the conversion. The resultant-time argument is the address of an unsigned quadword containing the result. 3 LIB$CVT_VECTIM The Convert 7-Word Vector to Internal Time routine converts a 7-word vector into an OpenVMS internal format delta or absolute time. Format LIB$CVT_VECTIM input-time ,resultant-time 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments input-time OpenVMS usage:vector_word_unsigned type: word (unsigned) access: read only mechanism: by reference, array reference Time to be converted. The input-time argument is the address of a 7-word structure containing this time. This vector directly corresponds to a $NUMTIM timbuf structure. The input-time argument can represent an absolute or a delta time. In order for input-time to represent a delta time, the year since 0 and month of year fields must equal zero. If those fields do not equal zero, an absolute time is returned. resultant-time OpenVMS usage:date_time type: quadword (unsigned) access: write only mechanism: by reference The OpenVMS internal format delta or absolute time that results from the conversion. The resultant-time argument is the address of an unsigned quadword containing the result. 3 LIB$CVT_xTB The Convert Numeric Text to Binary routines return a binary representation of the ASCII text string representation of a decimal, hexadecimal, or octal number. Format LIB$CVT_DTB byte-count ,numeric-string ,result LIB$CVT_HTB byte-count ,numeric-string ,result LIB$CVT_OTB byte-count ,numeric-string ,result 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments byte-count OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by value Byte count of the input ASCII text string. The byte-count argument is a signed longword integer containing the byte count of the input string. numeric-string OpenVMS usage:char_string type: character string access: read only mechanism: by reference ASCII text string representation of a decimal, hexadecimal, or octal number that LIB$CVT_xTB converts to binary representation. The numeric-string argument is the address of a character string containing this input string to be converted. LIB$CVT_xTB allows only an optional plus (+) or minus (-) sign followed by a string of decimal, hexadecimal, or octal characters appropriate to the routine being called. result OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference Binary representation of the input string. The result argument is the address of a signed longword integer containing the converted string. 3 LIB$CVT_xTB_64 (Alpha only.) The Convert Numeric Text to Binary routines return a binary representation of the ASCII text string representation of a decimal, hexadecimal, or octal number. Format LIB$CVT_DTB_64 byte-count ,numeric-string ,result LIB$CVT_HTB_64 byte-count ,numeric-string ,result LIB$CVT_OTB_64 byte-count ,numeric-string ,result 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments byte-count OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by value Byte count of the input ASCII text string. The byte-count argument is a signed longword integer containing the byte count of the input string. numeric-string OpenVMS usage:char_string type: character string access: read only mechanism: by reference ASCII text string representation of a decimal, hexadecimal, or octal number that LIB$CVT_xTB_64 converts to binary representation. The numeric-string argument is the address of a character string containing this input string to be converted. LIB$CVT_xTB_64 allows only an optional plus (+) or minus (-) sign followed by a string of decimal, hexadecimal, or octal characters appropriate to the routine being called. result OpenVMS usage:quadword_signed type: quadword integer (signed) access: write only mechanism: by reference Binary representation of the input string. The result argument is the address of a signed quadword integer containing the converted string. 3 LIB$DATE_TIME The Date and Time Returned as a String routine returns the OpenVMS system date and time in the semantics of a user-provided string. Format LIB$DATE_TIME date-time-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument date-time-string OpenVMS usage:time_name type: character string access: write only mechanism: by descriptor Destination string into which LIB$DATE_TIME writes the system date and time. The date-time-string argument is the address of a descriptor pointing to the destination string. This string is 23 characters long; its format is as follows: dd-mmm-yyyy hh:mm:ss.hh 3 LIB$DAY The Day Number Returned as a Longword Integer routine returns the number of days since the system zero date of November 17, 1858, or the number of days from November 17, 1858, to a user-supplied date. Format LIB$DAY number-of-days [,user-time] [,day-time] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-days OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference Number of days since the system zero date. The number-of-days argument is the address of a signed longword integer containing the day number. user-time OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference User-supplied time, in 100-nanosecond units. The user-time argument is the address of a signed quadword integer containing the user time. A positive value indicates an absolute time, while a negative value indicates a delta time. This is an optional argument. If user-time is omitted, the default is the current system time. This quadword time value is obtained by calling the $BINTIM system service. If time is passed as zero by value, the numeric value for the current day is returned. If time is passed as a zero by reference, the number returned represents the day of November 17, 1858, rather than the current day. day-time OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference Number of 10-millisecond units since midnight of the user-time argument. The day-time argument is the address of a signed longword integer into which LIB$DAY writes this number of units. 3 LIB$DAY_OF_WEEK The Show Numeric Day of Week routine returns the numeric day of the week for an input time value. If 0 is the input time value, the current day of the week is returned. The days are numbered 1 through 7, with Monday as day 1 and Sunday as day 7. Format LIB$DAY_OF_WEEK [user-time,] day-number 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments user-time OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference Time to be translated to a day of the week, or zero. The optional user-time argument is the address of an unsigned quadword containing the value of time. Time must be supplied as an absolute system time. To obtain this time value in proper quadword format, call the $BINTIM system service. If time is passed as zero by value, the numeric value for the current day is returned. If time is passed as a zero by reference, the number returned represents the day of November 17, 1858. If the user-time argument is omitted, it is equivalent to passing a zero by value. day-number OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference Numeric day of week. The day-number argument is the address of a longword into which LIB$DAY_OF_WEEK writes the integer value representing the day of the week. 3 LIB$DECODE_FAULT The Decode Instruction Stream During Fault routine is a tool for building condition handlers that process instruction fault exceptions. It is called from a condition handler. This routine is not available to native OpenVMS Alpha programs but is available to translated VAX images. Format LIB$DECODE_FAULT signal-arguments ,mechanism-arguments ,user-procedure [,unspecified-user-argument] [,instruction-definitions] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments signal-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: read only mechanism: by reference, array reference Signal arguments array that was passed from the OpenVMS operating system to your condition handler. The signal-arguments argument is the address of the signal arguments array. mechanism-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: read only mechanism: by reference, array reference Mechanism arguments array that was passed from OpenVMS to your condition handler. The mechanism-arguments argument is the address of the mechanism arguments array. user-procedure OpenVMS usage:procedure type: procedure value access: call after stack unwind mechanism: by descriptor, procedure descriptor User-supplied action routine that LIB$DECODE_FAULT calls to handle the exception. The user-procedure argument is the address of a descriptor pointing to your user action routine. The user- procedure argument may be of type "procedure value" when called by languages with up-level addressing. If user-procedure is not of type "bound routine value," it is assumed to be the address of an entry mask. unspecified-user-argument OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Additional information passed from your handler without interpretation to your user action routine. The unspecified- user-argument argument contains the value of this additional information. The unspecified-user-argument argument is optional; if it is omitted, zero is used as the default. instruction-definitions OpenVMS usage:vector_byte_unsigned type: byte (unsigned) access: read only mechanism: by reference, array reference Array of bytes specifying instruction opcodes and operand definitions that are to replace or supplement the standard instruction definitions. The instruction-definitions argument is the address of this array. If instruction-definitions is omitted, only the standard instruction definitions are used. If supplied, instruction- definitions is searched first, followed by the standard definitions. Each instruction definition consists of a series of bytes, the first one or two of which is the instruction opcode. If the instruction is a 2-byte opcode, the escape byte, which must be hex FD, FE, or FF, is placed in the first of the two bytes. Following the opcode may be from 0 to 16 operand definition bytes. These bytes indicate the operand's access type and data type. The end of each instruction definition is denoted by a byte containing the value LIB$K_DCFOPR_END (zero). The list of instruction definitions is terminated by two bytes, each of which contains the value -1 (hexadecimal FF). 3 LIB$DEC_OVER The Enable or Disable Decimal Overflow Detection routine enables or disables decimal overflow detection for the calling routine activation. The previous decimal overflow setting is returned. This routine is available on OpenVMS Alpha systems in translated form and is applicable to translated VAX images only. Format LIB$DEC_OVER new-setting 4 Returns OpenVMS usage:longword_unsigned type: longword integer (unsigned) access: write only mechanism: by value The old decimal overflow enable setting (the previous contents of SF$W_PSW[PSW$V_DV] in the caller's frame). 4 Argument new-setting OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference New decimal overflow enable setting. The new-setting argument is the address of an unsigned longword that contains the new decimal overflow enable setting. Bit 0 set to 1 means enable; bit 0 set to 0 means disable. 3 LIB$DELETE_FILE The Delete One or More Files routine deletes one or more files. The specification of the files to be deleted may include wildcards. LIB$DELETE_FILE is similar in function to the DCL command DELETE. Format LIB$DELETE_FILE filespec [,default-filespec] [,related-filespec] [,user-success-procedure] [,user-error-procedure] [,user-confirm-procedure] [,user-specified-argument] [,resultant-name] [,file-scan-context] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor String containing the OpenVMS Record Management Services (RMS) file specification of the files to be deleted. The filespec argument is the address of a descriptor pointing to the file specification. If the specification includes wildcards, each file that matches the specification is deleted. The string must not contain more than 255 characters. Any string class is supported. default-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Default file specification of the files to be deleted. The default-filespec argument is the address of a descriptor pointing to the default file specification. This is an optional argument; if the argument is omitted, the default is the null string. Any string class is supported. See the OpenVMS Record Management Services Reference Manual for information about default file specifications. related-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Related file specification of the files to be deleted. The related-filespec argument is the address of a descriptor pointing to the related file specification. Any string class is supported. This is an optional argument; if the argument is omitted, the default is the null string. Input file parsing is used. See the OpenVMS Record Management Services Reference Manual for information on related file specifications and input file parsing. The related file specification is useful when you are processing lists of file specifications. Unspecified portions of the file specification are inherited from the last file processed. user-success-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied success routine that LIB$DELETE_FILE calls after it successfully deletes a file. The success routine can be used to display a log of the files that were deleted. user-error-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied error routine that LIB$DELETE_FILE calls when it detects an error. The error routine returns a success/fail value that LIB$DELETE_ FILE uses to determine if more files should be processed. user-confirm-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied confirm routine that LIB$DELETE_FILE calls before each file is deleted. The value returned by the confirm routine determines whether or not the file will be deleted. The confirm routine can be used to select specific files for deletion based on criteria such as expiration date, size, and so on. user-specified-argument OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value User-supplied argument that LIB$DELETE_FILE passes to the error, success, and confirm routines each time they are called. Whatever mechanism is used to pass user-specified-argument to LIB$DELETE_ FILE is also used to pass it to the routines. This is an optional argument; if the argument is omitted, zero is passed by value. resultant-name OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String into which LIB$DELETE_FILE writes the RMS resultant file specification of the last file processed. The resultant-name argument is the address of a descriptor pointing to the resultant name. If present, resultant-name is used to store the file specification passed to the user-supplied routines, instead of a default class S, type T string. Therefore, this argument should be specified when the user-supplied routines are used and those routines require a descriptor type other than class S, type T. Any string class is supported. If you specify one or more of the user-supplied action routines, the descriptor used to pass resultant-name must be: o Of the same class as the descriptor required by the filespec argument of any action routines. For example, VAX Ada requires a class SB descriptor for string arguments to Ada routines but will use a class A descriptor by default when calling external routines. Refer to your language manual to determine the proper descriptor class to use. o (Alpha only) Of the same form as the descriptor required by the filespec argument of all action routines. For example, if the filespec argument of an action routine uses a 64-bit descriptor, then the resultant-name argument must also use a 64-bit descriptor. file-scan-context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context for deleting a list of file specifications. The file- scan-context argument is the address of a longword containing the context value. You must initialize the file scan context to zero before the first of a series of calls to LIB$DELETE_FILE. LIB$FILE_SCAN uses this context to retain the file context for multiple input files. You must specify this context only when you are dealing with multiple input files, as the DCL command DELETE does. You may deallocate the context allocated by LIB$FILE_SCAN by calling LIB$FILE_SCAN_END after all calls to LIB$DELETE_FILE have been completed. 3 LIB$DELETE_LOGICAL The Delete Logical Name routine requests the calling process' command language interpreter (CLI) to delete a supervisor-mode process logical name. LIB$DELETE_LOGICAL provides the same function as the DCL command DEASSIGN. Format LIB$DELETE_LOGICAL logical-name [,table-name] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments logical-name OpenVMS usage:logical_name type: character string access: read only mechanism: by descriptor Logical name to be deleted. The logical-name argument is the address of a descriptor pointing to this logical name string. The maximum length of a logical name is 255 characters. table-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name of the table from which the logical name is to be deleted. The table-name argument is the address of a descriptor pointing to this name string. This is an optional argument. If the argument is omitted, the LNM$PROCESS table is used. 3 LIB$DELETE_SYMBOL The Delete CLI Symbol routine requests the calling process's command language interpreter (CLI) to delete an existing CLI symbol. Format LIB$DELETE_SYMBOL symbol [,table-type-indicator] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments symbol OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name of the symbol to be deleted by LIB$DELETE_SYMBOL. The symbol argument is the address of a descriptor pointing to this symbol string. The symbol name is converted to uppercase, and trailing blanks are removed before use. Symbol must begin with a letter, a digit, a dollar sign ($), a hyphen (-), or an underscore (_). The maximum length of symbol is 255 characters. table-type-indicator OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Indicator of the table that contains the symbol to be deleted. The table-type-indicator argument is the address of a signed longword integer that is this table indicator. If table-type-indicator is omitted, the local symbol table is used. The following are possible values for the table-type- indicator argument: Symbolic Name Value Table Used LIB$K_CLI_LOCAL_ 1 Local symbol table SYM LIB$K_CLI_GLOBAL_ 2 Global symbol table SYM 3 LIB$DELETE_VM_ZONE The Delete Virtual Memory Zone routine deletes a zone from the 32-bit virtual address space and returns all pages on VAX systems or pagelets on Alpha systems owned by the zone to the processwide 32-bit page pool. Format LIB$DELETE_VM_ZONE zone-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument zone-id OpenVMS usage:identifier type: longword (unsigned) access: read only mechanism: by reference Zone identifier. The zone-id is the address of a longword that contains the identifier of a zone created by a previous call to LIB$CREATE_VM_ZONE or LIB$CREATE_USER_VM_ZONE. 3 LIB$DELETE_VM_ZONE_64 (Alpha only.) The Delete Virtual Memory Zone routine deletes a zone from the 64-bit virtual address space and returns all Alpha system pagelets owned by the zone to the processwide 64-bit page pool. Format LIB$DELETE_VM_ZONE_64 zone-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument zone-id OpenVMS usage:identifier type: quadword (unsigned) access: read only mechanism: by reference Zone identifier. The zone-id is the address of a quadword that contains the identifier of a zone created by a previous call to LIB$CREATE_VM_ZONE_64 or LIB$CREATE_USER_VM_ZONE_64. 3 LIB$DIGIT_SEP The Get Digit Separator Symbol routine returns the system's digit separator symbol. Format LIB$DIGIT_SEP digit-separator-string [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments digit-separator-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Digit separator symbol returned by LIB$DIGIT_SEP. The digit- separator-string argument is the address of a descriptor pointing to the digit separator. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of characters written into digit-separator-string, not counting padding in the case of a fixed-length string. The resultant-length argument is the address of an unsigned word containing the length of the digit separator symbol. If the input string is truncated to the size specified in the digit- separator-string descriptor, resultant-length is set to this size. Therefore, resultant-length can always be used by the calling program to access a valid substring of digit-separator- string. 3 LIB$DISABLE_CTRL The Disable CLI Interception of Control Characters routine requests the calling process's command language interpreter (CLI) to not intercept the selected control characters when they are entered during an interactive terminal session. LIB$DISABLE_CTRL provides the same function as the DCL command SET NOCONTROL. Format LIB$DISABLE_CTRL disable-mask [,old-mask] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments disable-mask OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Bit mask indicating which control characters are not to be intercepted. The disable-mask argument is the address of an unsigned longword containing this bit mask. Each of the 32 bits corresponds to one of the 32 possible control characters. If a bit is set, the corresponding control character is no longer intercepted by the CLI. Currently, only bits 20 and 25, corresponding to Ctrl/T and Ctrl/Y, are recognized. The following mask is defined in Digital-supplied symbol libraries to specify the value of disable-mask: Symbol Hex Value Function LIB$M_CLI_ %X'00100000' Disables Ctrl/T CTRLT LIB$M_CLI_ %X'02000000' Disables Ctrl/Y CTRLY If a set bit does not correspond to a character that the CLI can intercept, LIB$DISABLE_CTRL returns an error. old-mask OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by reference Previous bit mask. The old-mask argument is the address of an unsigned longword into which LIB$DISABLE_CTRL writes the old bit mask. The old bit mask is of the same form as disable-mask and indicates those control characters that were previously enabled. It may therefore be given to LIB$ENABLE_CTRL to reinstate the previous condition. 3 LIB$DO_COMMAND The Execute Command routine stops program execution and directs the command language interpreter (CLI) to execute a command that you supply as the argument. If successful, LIB$DO_COMMAND does not return control to the calling program. Instead, LIB$DO_ COMMAND begins execution of the specified command. If you want control to return to the caller, use LIB$SPAWN instead. Format LIB$DO_COMMAND command-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument command-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Text of the command that LIB$DO_COMMAND executes. The command- string argument is the address of a descriptor pointing to the command text. The maximum length of the command is 255 characters. 3 LIB$EDIV The Extended-Precision Divide routine performs extended-precision division. LIB$EDIV makes the VAX EDIV instruction available as a callable routine. Format LIB$EDIV longword-integer-divisor ,quadword-integer-dividend ,longword-integer-quotient ,remainder 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments longword-integer-divisor OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Divisor. The longword-integer-divisor argument is the address of a signed longword integer containing the divisor. quadword-integer-dividend OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Dividend. The quadword-integer-dividend argument is the address of a signed quadword integer containing the dividend. longword-integer-quotient OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference Quotient. The longword-integer-quotient argument is the address of a signed longword integer containing the quotient. remainder OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference Remainder. The remainder argument is the address of a signed longword integer containing the remainder. 3 LIB$EMODD The Extended Multiply and Integerize routine (D-Floating-Point Values) allows higher-level language users to perform accurate range reduction of D-floating arguments. On Alpha systems, D-floating-point values are not supported in full precision in native OpenVMS Alpha programs. They are precise to 56 bits on VAX systems, 53 or 56 bits in translated VAX images, and 53 bits in native OpenVMS Alpha programs. Format LIB$EMODD floating-point-multiplier ,multiplier-extension ,floating-point-multiplicand ,integer-portion ,fractional-portion 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments floating-point-multiplier OpenVMS usage:floating_point type: D_floating access: read only mechanism: by reference The multiplier. The floating-point-multiplier argument is a D- floating number. multiplier-extension OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference The left-justified multiplier-extension bits. The multiplier- extension argument is an unsigned byte. floating-point-multiplicand OpenVMS usage:floating_point type: D_floating access: read only mechanism: by reference The multiplicand. The floating-point-multiplicand argument is a D-floating number. integer-portion OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference The integer portion of the result. The integer-portion argument is the address of a signed longword integer containing the integer portion of the result. fractional-portion OpenVMS usage:floating_point type: D_floating access: write only mechanism: by reference The fractional portion of the result. The fractional-portion argument is a D-floating number. 3 LIB$EMODF The Extended Multiply and Integerize routine (F-Floating-Point Values) allows higher-level language users to perform accurate range reduction of F-floating arguments. Format LIB$EMODF floating-point-multiplier ,multiplier-extension ,floating-point-multiplicand ,integer-portion ,fractional-portion 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments floating-point-multiplier OpenVMS usage:floating_point type: F_floating access: read only mechanism: by reference The multiplier. The floating-point-multiplier argument is the address of an F-floating number containing the number. multiplier-extension OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference The left-justified multiplier-extension bits. The multiplier- extension argument is the address of an unsigned byte containing these multiplier extension bits. floating-point-multiplicand OpenVMS usage:floating_point type: F_floating access: read only mechanism: by reference The multiplicand. The floating-point-multiplicand argument is an F-floating number. integer-portion OpenVMS usage:longword_signed type: longword (signed) access: write only mechanism: by reference The integer portion of the result. The integer-portion argument is the address of a signed longword integer containing the integer portion of the result. fractional-portion OpenVMS usage:floating_point type: F_floating access: write only mechanism: by reference The fractional portion of the result. The fractional-portion argument is the address of an F-floating number containing the fractional portion of the result. 3 LIB$EMODG The Extended Multiply and Integerize routine (G-Floating-Point Values) allows higher-level language users to perform accurate range reduction of G-floating arguments. Format LIB$EMODG floating-point-multiplier ,multiplier-extension ,floating-point-multiplicand ,integer-portion ,fractional-portion 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments floating-point-multiplier OpenVMS usage:floating_point type: G_floating access: read only mechanism: by reference The multiplier. The floating-point-multiplier argument is a G- floating number. multiplier-extension OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference The left-justified multiplier-extension bits. The multiplier- extension argument is an unsigned word. floating-point-multiplicand OpenVMS usage:floating_point type: G_floating access: read only mechanism: by reference The multiplicand. The floating-point-multiplicand argument is a G-floating number. integer-portion OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference The integer portion of the result. The integer-portion argument is the address of a signed longword integer containing the integer portion of the result. fractional-portion OpenVMS usage:floating_point type: G_floating access: write only mechanism: by reference The fractional portion of the result. The fractional-portion argument is a G-floating number. 3 LIB$EMODH On OpenVMS VAX systems, the Extended Multiply and Integerize routine (H-Floating-Point Values) allows higher-level language users to perform accurate range reduction of H-floating arguments. This routine is not available to native OpenVMS Alpha programs but is available to translated VAX images. Format LIB$EMODH floating-point-multiplier ,multiplier-extension ,floating-point-multiplicand ,integer-portion ,fractional-portion 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments floating-point-multiplier OpenVMS usage:floating_point type: H_floating access: read only mechanism: by reference The multiplier. The floating-point-multiplier argument is an H-floating number. multiplier-extension OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference The left-justified multiplier-extension bits. The multiplier- extension argument is an unsigned word. floating-point-multiplicand OpenVMS usage:floating_point type: H_floating access: read only mechanism: by reference The multiplicand. The floating-point-multiplicand argument is an H-floating number. integer-portion OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference The integer portion of the result. The integer-portion argument is the address of a signed longword integer containing the integer portion of the result. fractional-portion OpenVMS usage:floating_point type: H_floating access: write only mechanism: by reference The fractional portion of the result. The fractional-portion argument is an H-floating number. 3 LIB$EMUL The Extended-Precision Multiply routine performs extended- precision multiplication. LIB$EMUL makes the VAX EMUL instruction available as a callable routine. Format LIB$EMUL longword-integer-multiplier ,longword-integer-multiplicand ,addend ,product 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments longword-integer-multiplier OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Multiplier used by LIB$EMUL in the extended-precision multiplication. The longword-integer-multiplier argument is the address of a signed longword integer containing the multiplier. longword-integer-multiplicand OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Multiplicand used by LIB$EMUL in the extended-precision multiplication. The longword-integer-multiplicand argument is the address of a signed longword integer containing the multiplicand. addend OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Addend used by LIB$EMUL in the extended-precision multiplication. The addend argument is the address of a signed longword integer containing the addend. product OpenVMS usage:quadword_signed type: quadword integer (signed) access: write only mechanism: by reference Product of the extended-precision multiplication. The product argument is the address of a signed quadword integer into which LIB$EMUL writes the product. 3 LIB$ENABLE_CTRL The Enable CLI Interception of Control Characters routine requests the calling process's command language interpreter (CLI) to resume interception of the selected control characters when they are typed during an interactive terminal session. LIB$ENABLE_CTRL provides the same function as the DCL command SET CONTROL. Format LIB$ENABLE_CTRL enable-mask [,old-mask] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments enable-mask OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Bit mask indicating for which control characters LIB$ENABLE_ CTRL is to enable interception. The enable-mask argument is the address of an unsigned longword containing this bit mask. Each of the 32 bits corresponds to one of the 32 possible control characters. If a bit is set, the corresponding control character is intercepted by the CLI. Currently, only bits 20 and 25, corresponding to Ctrl/T and Ctrl/Y, are recognized. The following mask is defined in Digital-supplied symbol libraries to specify the value of enable-mask: Symbol Hex Value Function LIB$M_CLI_ %X'00100000' Enables Ctrl/T CTRLT LIB$M_CLI_ %X'02000000' Enables Ctrl/Y CTRLY If a set bit does not correspond to a character that the CLI can intercept, an error is returned. old-mask OpenVMS usage:mask_longword type: longword (unsigned) access: write only mechanism: by reference Previous bit mask. The old-mask argument is the address of an unsigned longword containing the old bit mask. The old bit mask is of the same form as enable-mask. 3 LIB$ESTABLISH The Establish a Condition Handler routine moves the address of a condition handling routine (which can be a user-written or a library routine) to longword 0 of the stack frame of the caller of LIB$ESTABLISH. This routine is not available to native OpenVMS Alpha programs but is recognized and handled appropriately by most Digital high- level language compilers. Format LIB$ESTABLISH new-handler 4 Returns OpenVMS usage:routine type: procedure value access: write only mechanism: by reference Previous contents of SF$A_HANDLER (longword 0) of the caller's stack frame; zero if no handler existed. 4 Argument new-handler OpenVMS usage:procedure type: procedure value access: read only mechanism: by value Routine to be set up as the condition handler. The new-handler argument is the address of the procedure value to this routine. 3 LIB$EXPAND_NODENAME The Expand a Node Name to Its Full Name Equivalent routine expands a node name to its full name equivalent. Format LIB$EXPAND_NODENAME nodename, fullname [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments nodename OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Node name to be expanded. The nodename argument contains the address of a descriptor pointing to this node-name string. The error LIB$_INVARG is returned if nodename contains an invalid node name, points to a null string, or contains more than 1024 characters. The error LIB$_INVSTRDES is returned if nodename is an invalid descriptor. fullname OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Expanded node name. The fullname argument contains the address of a descriptor pointing to the expanded node-name string. LIB$EXPAND_NODENAME writes the expanded node-name string into the buffer pointed to by the fullname descriptor. The error LIB$_INVSTRDES is returned if fullname is an invalid descriptor. The length field of the fullname descriptor is not updated unless fullname is a dynamic descriptor with a length less than the resulting expanded full name. Refer to the OpenVMS RTL String Manipulation (STR$) Manual for dynamic string descriptor usage. The fullname argument contains an unusable result when LIB$EXPAND_NODENAME returns in error. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the expanded node name. The resultant-length argument is the address of an unsigned word that contains this length in bytes. The resultant-length argument contains an unusable result when LIB$EXPAND_NODENAME returns in error. 3 LIB$EXTV The Extract a Field and Sign-Extend routine returns a sign- extended longword field that has been extracted from the specified variable bit field. LIB$EXTV makes the VAX EXTV instruction available as a callable routine. Format LIB$EXTV position ,size ,base-address 4 Returns OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by value Field extracted by LIB$EXTV, sign-extended to a longword. 4 Arguments position OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Position (relative to the base address) of the first bit in the field that LIB$EXTV extracts. The position argument is the address of a signed longword integer containing the position. size OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference Size of the bit field LIB$EXTV extracts. The size argument is the address of an unsigned byte containing the size. The maximum size is 32 bits. base-address OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Base address of the bit field LIB$EXTV extracts from the specified variable bit field. The base-address argument is an unsigned longword containing the base address. 3 LIB$EXTZV The Extract a Zero-Extended Field routine returns a longword zero-extended field that has been extracted from the specified variable bit field. LIB$EXTZV makes the VAX EXTZV instruction available as a callable routine. Format LIB$EXTZV position ,size ,base-address 4 Returns OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by value Field extracted by LIB$EXTZV, zero-extended to a longword. 4 Arguments position OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference Position (relative to the base address) of the first bit in the field LIB$EXTZV extracts. The position argument is the address of a signed longword integer containing the position. size OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference Size of the bit field LIB$EXTZV extracts. The size argument is the address of an unsigned byte containing the size. The maximum size is 32 bits. base-address OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by value Base address of the bit field LIB$EXTZV extracts. The base- address argument is an unsigned longword containing the base address. 3 LIB$FFx The Find First Clear or Set Bit routines search the field specified by the start position, size, and base for the first clear or set bit. LIB$FFC and LIB$FFS make the VAX FFC and VAX FFS instructions available as callable routines. Format LIB$FFC position ,size ,base ,find-position LIB$FFS position ,size ,base ,find-position 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments position OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Starting position, relative to the base address, of the bit field to be searched by LIB$FFx. The position argument is the address of a signed longword integer containing the starting position. size OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference Number of bits to be searched by LIB$FFx. The size argument is the address of an unsigned byte containing the size of the bit field to be searched. The maximum size is 32 bits. base OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference The base argument is the address of the bit field that LIB$FFx searches. find-position OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference Bit position of the first bit in the specified state (clear or set), relative to the base address. The find-position argument is the address of a signed longword integer into which LIB$FFC writes the position of the first clear bit and into which LIB$FFS writes the position of the first set bit. 3 LIB$FID_TO_NAME The Convert Device and File ID to File Specification routine converts a disk device name and file identifier to a file specification. Format LIB$FID_TO_NAME device-name ,file-id ,filespec [,filespec-length] [,directory-id] [,acp-status] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments device-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Device name to be converted. The device-name argument is the address of a descriptor pointing to the device name. It must reference a disk device, and must contain 64 characters or less. LIB$FID_TO_NAME obtains device-name from the NAM$T_DVI field of an OpenVMS RMS name block. file-id OpenVMS usage:vector_word_unsigned type: word (unsigned) access: read only mechanism: by reference, array reference Specifies the file identifier. The file-id argument is the address of an array of three words containing the file identification. LIB$FID_TO_NAME obtains file-id from the NAM$W_ FID field of an OpenVMS RMS name block. The $FIDDEF macro defines the structure of file-id. filespec OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Receives the file specification. The filespec argument is the address of a descriptor pointing to the file specification string. filespec-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Receives the number of characters written into filespec, excluding padding in the case of a fixed-length string. The optional filespec-length argument is the address of an unsigned word containing the number of characters. If the output string is truncated to the number of characters specified in filespec, then filespec-length is set to that truncated size. Therefore, you can always use filespec-length to access a valid substring of filespec. directory-id OpenVMS usage:vector_word_unsigned type: word (unsigned) access: read only mechanism: by reference, array reference Specifies a directory file identifier. The directory-id argument is the address of an array of three words containing the directory file identifier. LIB$FID_TO_NAME obtains this array from the NAM$W_DID field of an OpenVMS RMS name block. The $FIDDEF macro defines the structure of directory-id. acp-status OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference The status resulting from traversing the backward links. The optional acp-status argument is the address of an unsigned longword containing the status. 3 LIB$FILE_SCAN The File Scan routine searches an area, such as a directory, for all files matching the file specification given and transfers program execution to the specified user-written routine. Wildcards are acceptable. An action routine is called for each file and/or error found. LIB$FILE_SCAN allows the search sequence to continue even if an error occurs while processing a particular file. Format LIB$FILE_SCAN fab ,user-success-procedure ,user-error-procedure [,context] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments fab OpenVMS usage:fab type: unspecified access: read only mechanism: by reference File Access Block (FAB) referencing a valid NAM block. The fab argument is the address of the FAB that contains the address and length of the file specification being searched for by LIB$FILE_ SCAN. user-success-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied success routine that LIB$FILE_SCAN calls when a file is found. The success routine is invoked with the FAB address that was passed to LIB$FILE_SCAN. The user context may be pased to this routine using the FAB$L_CTX field in the FAB. user-error-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied error routine that LIB$FILE_SCAN calls when it encounters an error. The error routine is called with the FAB argument that was passed to LIB$FILE_SCAN. context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Default file context used in processing file specifications for multiple input files. The context argument is the address of a longword, which must be initialized to zero by your program before the first call to LIB$FILE_SCAN. After the first call, LIB$FILE_SCAN maintains this longword. You must not change the value of context in subsequent calls to LIB$FILE_SCAN. Name blocks and file specification strings are allocated by LIB$FILE_SCAN, and context is used to retain their addresses so they may be deallocated later. If the context argument is not passed, unspecified portions of the file specification will be inherited from the previous file specification processed, rather than from multiple input file specifications. 3 LIB$FILE_SCAN_END The End-of-File Scan routine is called after each sequence of calls to LIB$FILE_SCAN. LIB$FILE_SCAN_END deallocates any saved OpenVMS RMS context and/or deallocates the virtual memory that had been allocated for holding the related file specification information. Format LIB$FILE_SCAN_END [fab] [,context] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments fab OpenVMS usage:fab type: unspecified access: modify mechanism: by reference File access block (FAB) used with LIB$FILE_SCAN. The optional fab argument is the address of the FAB that contains the address and length of the file specification. context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Temporary default context used in LIB$FILE_SCAN. The optional context argument is the address of a longword containing this temporary default context. 3 LIB$FIND_FILE The Find File routine is called with a file specification for which it searches. LIB$FIND_FILE returns one file specification for each call. The file specification may contain wildcards. Format LIB$FIND_FILE filespec ,resultant-filespec ,context [,default-filespec] [,related-filespec] [,status-value] [,flags] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File specification, which may contain wildcards, that LIB$FIND_ FILE uses to search for the desired file. The filespec argument is the address of a descriptor pointing to the file specification. The maximum length of a file specification is 255 bytes. The file specification used may also contain a search list logical name. If present, the search list logical name elements can be used as accumulative to related file specifications, so that portions of file specifications not specified by the user are inherited from previous file specifications. resultant-filespec OpenVMS usage:char_string type: character string access: modify mechanism: by descriptor Resultant file specification that LIB$FIND_FILE returns when it finds a file that matches the specification in the filespec argument. The resultant-filespec argument is the address of a descriptor pointing to the resultant file specification. context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference A longword integer variable into which the routine stores a context value for use by future calls to LIB$FIND_FILE or LIB$FIND_FILE_END. The context argument is an unsigned longword integer containing the address of the context. This variable must be set to zero before the first call to LIB$FIND_FILE. You can use the same context argument from one LIB$FIND_FILE call to another provided you have not called LIB$FIND_FILE_END for that context first. LIB$FIND_FILE uses this argument to retain the context when processing multiple input files. Portions of file specifications that the user does not specify may be inherited from the last files processed because the file contexts are retained in this argument. default-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Default file specification. The default-filespec argument is the address of a descriptor pointing to the default file specification. See the OpenVMS Record Management Services Reference Manual for information about default file specifications. related-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Related file specification containing the context of the last file processed. The related-filespec argument is the address of a descriptor pointing to the related file specification. The related file specification is useful when you are processing lists of file specifications. Unspecified portions of the file specification are inherited from the last file processed. For more information on related file specifications, see the OpenVMS Record Management Services Reference Manual. status-value OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference RMS secondary status value from a failing RMS operation. The status-value argument is an unsigned longword containing the address of a longword-length buffer to receive the RMS secondary status value (usually returned in the file access block field, FAB$L_STV). flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference User flags. The flags argument is the address of an unsigned longword containing the user flags. The flag bits and their corresponding symbols are described in the following table: Bit Symbol Description 0 NOWILD If set, LIB$FIND_FILE returns an error if a wildcard character is input. 1 MULTIPLE If set, this performs temporary defaulting for multiple input files and the related-filespec argument is ignored. See description of context in LIB$FILE_SCAN. Each time LIB$FIND_FILE is called with a different file specification, the specification from the previous call is automatically used as a related file specification. This allows parsing of the elements of a search-list logical name such as DISK2:[SMITH] FIL1.TYP,FIL*2.TYP, and so on. Use of this feature is required to get the desired defaulting with search list logical name. LIB$FIND_FILE_END must be called between each command line in interactive use or the defaults from the previous command line affect the current file specification. 3 LIB$FIND_FILE_END The End of Find File routine is called once after each sequence of calls to LIB$FIND_FILE. LIB$FIND_FILE_END deallocates any saved OpenVMS RMS context and deallocates the virtual memory used to hold the allocated context block. Format LIB$FIND_FILE_END context 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument context OpenVMS usage:context type: longword (unsigned) access: read only mechanism: by reference Zero or the address of a FAB/NAM buffer from a previous call to LIB$FIND_FILE. The context argument is the address of a longword that contains this context. 3 LIB$FIND_IMAGE_SYMBOL The Find Universal Symbol in Shareable Image File routine reads universal symbols from the shareable image file. This routine then dynamically activates a shareable image into the P0 address space of a process. Format LIB$FIND_IMAGE_SYMBOL filename ,symbol ,symbol-value [,image-name] [,flags] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments filename OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name of the file for which LIB$FIND_IMAGE_SYMBOL is searching. The filename argument is the address of a descriptor pointing to this file name string. This argument may contain only the file name. File type cannot be indicated. If any file specification punctuation characters (:, [, <, ;, .) are present, the error SS$_IVLOGNAM is returned. You can specify a file specification for the image name with the optional image-name argument. If you do not specify image-name, a default file specification of SYS$SHARE:.EXE is applied to the file name. If the file is not in SYS$SHARE:.EXE, a logical name must be used to direct this routine to locate the correct file. Only logical names defined in the system logical name table with the /EXEC attribute will be considered while the image activator is processing a request from an image that was installed with privileges. If the calling image was installed with privileges, the image being activated and any shareable images or message sections it references must be installed as a known image with the INSTALL utility. Running an image to which you have only Execute (not Read) access results in the same restrictions on logical names and shareable images as does running a privileged image. On VAX systems, the filename descriptor must be class D, S, or Z. symbol OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Symbol for which LIB$FIND_IMAGE_SYMBOL is searching in the filename file. The symbol argument is the address of a descriptor pointing to the symbol name string. The symbol name string can be input in uppercase, lowercase, or mixed case letters. symbol-value OpenVMS usage:longword_signed type: longword (signed) access: write only mechanism: by reference Symbol value that LIB$FIND_IMAGE_SYMBOL has located. The symbol- value argument is the address of a signed longword integer into which LIB$FIND_IMAGE_SYMBOL returns the symbol value. If the symbol is relocatable, the starting virtual address of the shareable image in memory is added to the symbol value. image-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Default file specification applied to the image name. The optional image-name argument is a string used as the RMS default file specification when parsing filename as the primary filename. If image-name is not supplied, then a default file specification of SYS$SHARE:.EXE is applied to the image name. On VAX systems, the image-name descriptor must be class D, S, or Z. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Control flags. The flags argument is the address of a longword integer that contains the control flags. Bit Value Description 0 Reserved to Digital 1 Reserved to Digital 2 Reserved to Digital 3 Reserved to Digital 4 LIB$M_FIS_MIXCASE Causes LIB$FIND_IMAGE_SYMBOL to look for the symbol without converting it to uppercase. This is an optional argument. If omitted, the default is 0. If omitted, or if LIB$M_FIS_MIXCASE (bit 4) is 0, LIB$FIND_IMAGE_ SYMBOL converts the specified symbol to uppercase before it is used. 3 LIB$FIND_VM_ZONE The Return the Next Valid Zone Identifier routine returns the zone identifier of the next valid zone in the heap management 32-bit database. Format LIB$FIND_VM_ZONE context ,zone-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context specifier. The context argument is the address of an unsigned longword used to keep the scan context for finding the next valid zone. The context argument must be 0 to initialize the scan and to start with the first returnable zone identifier. zone-id OpenVMS usage:identifier type: longword (unsigned) access: write only mechanism: by reference Zone identifier. The zone-id argument is the address of an unsigned longword that receives the zone identifier for the next zone. 3 LIB$FIND_VM_ZONE_64 (Alpha only.) The Return the Next Valid Zone Identifier routine returns the zone identifier of the next valid zone in the heap management 64-bit database. Format LIB$FIND_VM_ZONE_64 context ,zone-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments context OpenVMS usage:context type: quadword (unsigned) access: modify mechanism: by reference Context specifier. The context argument is the address of an unsigned quadword used to keep the scan context for finding the next valid zone. The context argument must be 0 to initialize the scan and to start with the first returnable zone identifier. zone-id OpenVMS usage:identifier type: quadword (unsigned) access: write only mechanism: by reference Zone identifier. The zone-id argument is the address of an unsigned quadword that receives the zone identifier for the next zone. 3 LIB$FIT_NODENAME The Fit a Node Name Into an Output Field routine fits a node name into an output field. It attempts to compress the node name to fit the output field. If this fails, it trims the node name. Format LIB$FIT_NODENAME nodename, output-buffer [,output-width][,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments nodename OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Node name to be fitted into the desired output field. The nodename argument contains the address of a descriptor pointing to this node-name string. The error LIB$_INVARG is returned if nodename contains an invalid node name, points to a null string, or contains more than 1024 characters. The error LIB$_INVSTRDES is returned if nodename is an invalid descriptor. output-buffer OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor The output buffer. The output-buffer argument contains the address of a descriptor pointing to the output buffer. LIB$FIT_ NODENAME writes the final output node name into the buffer pointed to by output-buffer. The error LIB$_INVSTRDES is returned if output-buffer is an invalid descriptor. The length field of the output-buffer descriptor is not updated unless output-buffer is a dynamic descriptor with a length less than the resulting fitted node name. Refer to the OpenVMS RTL String Manipulation (STR$) Manual for dynamic string descriptor usage. The output-buffer argument contains an unusable result when LIB$FIT_NODENAME returns in error. output-width OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Field width desired for the fit operation. The output-width argument is the address of an unsigned word that contains this field width in bytes. If output-width is omitted, the current length of output-buffer is used. If output-buffer is not a fixed-length string, specify output-width to ensure that the desired width is used. If the lengths of both output-buffer and output-width are specified, the length in output-width is used. In this case, if the current length of output-buffer is smaller than the length of output-width, the output node name is truncated at the end, and the alternate successful status LIB$_STRTRU is returned. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the output node name. The resultant-length argument is the address of an unsigned word that contains this length in bytes. The resultant-length argument contains an unusable result when LIB$FIT_NODENAME returns in error. 3 LIB$FIXUP_FLT The Fix Floating Reserved Operand routine finds the reserved operand of any F-floating, D-floating, G-floating, or H-floating instruction (with some exceptions) after a reserved operand fault has been signaled. LIB$FIXUP_FLT changes the reserved operand from -0.0 to the value of the new-operand argument, if present; or to +0.0 if new-operand is absent. This routine is available on OpenVMS Alpha systems in translated form and is applicable to translated VAX images only. Format LIB$FIXUP_FLT signal-arguments ,mechanism-arguments [,new-operand] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments signal-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: read only mechanism: by reference, array reference Signal argument vector. The signal-arguments argument is the address of an array of unsigned longwords containing the signal argument vector. mechanism-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: read only mechanism: by reference, array reference Mechanism argument vector. The mechanism-arguments argument is the address of an array of unsigned longwords containing the mechanism argument vector. new-operand OpenVMS usage:floating-point type: F_floating access: read only mechanism: by reference An F-floating value to replace the reserved operand. The new-operand argument is the address of an F-floating number containing the new operand. This is an optional argument. If omitted, the default value is +0.0. 3 LIB$FLT_UNDER The Floating-Point Underflow Detection routine enables or disables floating-point underflow detection for the calling routine activation. The previous setting is returned as a function value. This routine is available on OpenVMS Alpha systems in translated form and is applicable to translated VAX images only. Format LIB$FLT_UNDER new-setting 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The old floating-point underflow enable setting (the previous contents of the SF$W_PSW[PSW$V_FU] in the caller's frame). 4 Argument new-setting OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference New floating-point underflow enable setting. The new-setting argument is the address of an unsigned byte containing the new setting. Bit 0 set to 1 means enable; bit 0 set to 0 means disable. 3 LIB$FORMAT_DATE_TIME The Format Date and/or Time routine allows the user to select at run time a specific output language and format for a date or time, or both. Format LIB$FORMAT_DATE_TIME date-string [,date] [,user-context] [,date-length] [,flags] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments date-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Receives the requested date or time, or both, that has been formatted for output according to the currently selected format and language. The date-string argument is the address of a descriptor pointing to this string. date OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference The date or time, or both, to be formatted for output. The date argument is the address of an unsigned quadword that contains the absolute date or time, or both to be formatted. If you omit this argument, or if you supply a zero passed by value, then the current system time is used. Note that the date argument must represent an absolute time, not a delta time. user-context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference User context that retains the translation context over multiple calls to this routine. The user-context argument is the address of an unsigned longword that contains this context. The initial value of the context variable must be zero. Thereafter, the user program must not write to the cell. The user-context parameter is optional. However, if a context cell is not passed, the routine LIB$FORMAT_DATE_TIME may abort if two threads of execution attempt to manipulate the context area concurrently. Therefore, when calling this routine in situations where reentrancy might occur, such as from AST level, Digital recommends that users specify a different context cell for each calling thread. date-length OpenVMS usage:longword_signed type: longword (signed) access: write only mechanism: by reference Number of bytes of text written to the date-string argument. The date-length argument is the address of a signed longword that receives this string length. Note that date-length specifies the number of bytes of text, not the number of characters, written to date-string. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Bit mask that allows the user to specify whether the date, time, or both are output. The flags argument is the address of an unsigned bit mask containing the specified values. Valid values are LIB$M_DATE_FIELDS and LIB$M_TIME_FIELDS. Default values are determined as follows: o If the flags argument is omitted, LIB$FORMAT_DATE_TIME determines which fields to format according to the current definition of LIB$DT_FORMAT. o If the flags argument is specified, LIB$FORMAT_DATE_TIME uses the flags value to determine which fields to format. That is, the flags argument can be used to override the definition of LIB$DT_FORMAT when specifying which fields should be formatted for output. If the field specified by flags was not assigned a format through the definition of LIB$DT_FORMAT, the standard OpenVMS format is used. 3 LIB$FORMAT_SOGW_PROT (VAX only.) The Format Protection Mask routine translates a protection mask into a formatted string. Format LIB$FORMAT_SOGW_PROT protection-mask, [access-names], [ownership-names], [ownership-separator], [list-separator], protection-string, [protection-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments protection-mask OpenVMS usage:protection type: word (unsigned) access: read only mechanism: by reference The address of a word that holds a 16-bit protection mask to be translated. access-names OpenVMS usage:access_names type: array [0..31] of quadword string descriptor access: read only mechanism: by reference The address of the access name table for the associated object class. For example, it is the value returned in accnam by LIB$GET_ACCNAM. This parameter defaults to the access name table for the FILE object class. ownership-names OpenVMS usage:char_string type: array [0..3] of quadword string descriptor access: read only mechanism: by reference The address of a vector of 4 quadword descriptors that points to the ownership name. The default value is the full ownership category names (System, Owner, Group, World). ownership-separator OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor The address of a descriptor that points to the ownership separator string. The separator string is inserted after the ownership name to introduce a nonempty set of access names. By default, the value is ": " (the colon and space characters). list-separator OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor The address of a descriptor that points to the list separator string. The list separator string is inserted between ownership- access type pairs. By default, the value is ", " (the comma and space characters). protection-string OpenVMS usage:char_string type: character-coded text string access: write only mechanism: by descriptor The address of a character-string descriptor that receives the output of the routine call. The protection-string argument points to the formatted protection string at the end of a call. The protection string has the following components repeated for each of: System, Owner, Group, World: ownership-name[ownership-separator][access-types][list-separator] An example of a formatted protection string is System: RWED, Owner: RWED, Group: RW, World: R protection-length OpenVMS usage:word_signed type: word (signed) access: write only mechanism: by reference The address of a word that receives the length of the string returned in the protection-string argument. 3 LIB$FREE_DATE_TIME_CONTEXT The Free the Context Area Used When Formatting Dates and Times for Input or Output routine frees the virtual memory associated with the context area used by the date/time input and output formatting routines. Format LIB$FREE_DATE_TIME_CONTEXT [user-context] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument user-context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference User context that retains the translation context over multiple calls to the date/time input and output formatting routines. The user-context argument is the address of an unsigned longword that contains this context. If the user-context argument was not specified in the call to LIB$FORMAT_DATE_TIME, LIB$CONVERT_DATE_ STRING, or LIB$GET_MAXIMUM_DATE_LENGTH, then no argument should be supplied when calling this routine. 3 LIB$FREE_EF The Free Event Flag routine frees a local event flag previously allocated by LIB$GET_EF or by LIB$RESERVE_EF. LIB$FREE_EF is the complement of LIB$GET_EF. Format LIB$FREE_EF event-flag-number 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument event-flag-number OpenVMS usage:ef_number type: longword integer (unsigned) access: read only mechanism: by reference Event flag number to be deallocated by LIB$FREE_EF. The event- flag-number argument is the address of a signed longword integer that contains the event flag number, which is the value allocated to the user by LIB$GET_EF or LIB$RESERVE_EF. 3 LIB$FREE_LUN The Free Logical Unit Number routine releases a logical unit number allocated by LIB$GET_LUN to the pool of available numbers. LIB$FREE_LUN is the complement of LIB$GET_LUN. Format LIB$FREE_LUN logical-unit-number 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument logical-unit-number OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Logical unit number to be deallocated. The logical-unit-number argument is the address of a signed longword integer that contains this logical unit number, which is the value previously returned by LIB$GET_LUN. 3 LIB$FREE_TIMER The Free Timer Storage routine frees the storage allocated by LIB$INIT_TIMER. Format LIB$FREE_TIMER handle-address 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument handle-address OpenVMS usage:address type: longword (unsigned) access: modify mechanism: by reference Pointer to a block of storage containing the value returned by a previous call to LIB$INIT_TIMER; this is the storage that LIB$FREE_TIMER deallocates. The handle-address argument is the address of an unsigned longword containing that value. 3 LIB$FREE_VM The Free Virtual Memory from Program Region routine deallocates an entire block of contiguous bytes that was allocated by a previous call to LIB$GET_VM. The arguments passed are the same as for LIB$GET_VM. Format LIB$FREE_VM number-of-bytes ,base-address [,zone-id] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-bytes OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Number of contiguous bytes to be deallocated by LIB$FREE_VM. The number-of-bytes argument is the address of a signed longword integer that contains this number. The value of number-of-bytes must be greater than zero. Byte counts are rounded in the same manner as in LIB$GET_VM. NOTE You may omit the number-of-bytes argument if you are using boundary tags (LIB$M_VM_BOUNDARY_TAGS). base-address OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference Address of the first byte to be deallocated by LIB$FREE_VM. The base-address argument contains the address of an unsigned longword that is this address. The value of base-address must be the address of a block of memory that was allocated by a previous call to LIB$GET_VM. zone-id OpenVMS usage:identifier type: longword (unsigned) access: read only mechanism: by reference The address of a longword that contains a zone identifier created by a previous call to LIB$CREATE_VM_ZONE or LIB$CREATE_USER_VM_ ZONE. You must specify the same zone-id value as when you called LIB$GET_VM to allocate the block. An error status will be returned if you specify an incorrect zone-id. The zone-id argument is optional. If zone-id is omitted or if the longword contains the value 0, the 32-bit default zone is used. 3 LIB$FREE_VM_64 (Alpha only.) The Free Virtual Memory from Program Region routine deallocates an entire block of contiguous bytes that was allocated by a previous call to LIB$GET_VM_64. The arguments passed are the same as for LIB$GET_VM_64. Format LIB$FREE_VM_64 number-of-bytes ,base-address [,zone-id] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-bytes OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Number of contiguous bytes to be deallocated by LIB$FREE_VM_64. The number-of-bytes argument is the address of a signed quadword integer that contains this number. The value of number-of-bytes must be greater than zero. Byte counts are rounded in the same manner as in LIB$GET_VM_64. NOTE You may omit the number-of-bytes argument if you are using boundary tags (LIB$M_VM_BOUNDARY_TAGS). base-address OpenVMS usage:address type: quadword (unsigned) access: read only mechanism: by reference Address of the first byte to be deallocated by LIB$FREE_VM_64. The base-address argument contains the address of an unsigned quadword that is this address. The value of base-address must be the address of a block of memory that was allocated by a previous call to LIB$GET_VM_64. zone-id OpenVMS usage:identifier type: quadword (unsigned) access: read only mechanism: by reference The address of a quadword that contains a zone identifier created by a previous call to LIB$CREATE_VM_ZONE_64 or LIB$CREATE_USER_ VM_ZONE_64. You must specify the same zone-id value as when you called LIB$GET_VM_64 to allocate the block. An error status will be returned if you specify an incorrect zone-id. The zone-id argument is optional. If zone-id is omitted or if the quadword contains the value 0, the 64-bit default zone is used. 3 LIB$FREE_VM_PAGE The Free Virtual Memory Page routine deallocates a block of contiguous pages on VAX systems or pagelets on Alpha systems that were allocated by previous calls to LIB$GET_VM_PAGE. Format LIB$FREE_VM_PAGE number-of-pages ,base-address 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-pages OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Number of pages on VAX systems or pagelets on Alpha systems. The number-of-pages argument is the address of a longword integer that specifies the number of contiguous pages on VAX systems or pagelets on Alpha systems to be deallocated. The value of number-of-pages must be greater than zero. base-address OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference Block address. The base-address argument is the address of a longword that contains the address of the first byte of the first VAX page or Alpha pagelet to be deallocated. 3 LIB$FREE_VM_PAGE_64 (Alpha only.) The Free Virtual Memory Page routine deallocates a block of contiguous Alpha pagelets that was allocated by previous calls to LIB$GET_VM_PAGE_64. Format LIB$FREE_VM_PAGE_64 number-of-pages ,base-address 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-pages OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Number of Alpha pagelets. The address of a quadword integer that specifies the number of contiguous Alpha pagelets to be deallocated. The value of number-of-pages must be greater than zero. base-address OpenVMS usage:address type: quadword (unsigned) access: read only mechanism: by reference Block address. The base-address argument is the address of a quadword that contains the address of the first byte of the first Alpha pagelet to be deallocated. 3 LIB$GETDVI The Get Device/Volume Information routine provides a simplified interface to the $GETDVI system service. It returns information about the primary and secondary device characteristics of an I/O device. The calling process need not have a channel assigned to the device about which it wants information. Format LIB$GETDVI item-code [,channel] [,device-name] [,longword-integer-value] [,resultant-string] [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments item-code OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference Code specifying the item of information you are requesting. The item-code argument is the address of a signed longword containing the item code. All valid $GETDVI item codes whose names begin with DVI$_ are accepted. channel OpenVMS usage:channel type: word (unsigned) access: read only mechanism: by reference OpenVMS I/O channel assigned to the device for which LIB$GETDVI returns information. The channel argument is the address of an unsigned word containing the channel specification. If channel is not specified, device-name is used instead. You must specify either channel or device-name, but not both. If neither is specified, the error status SS$_IVDEVNAM is returned. device-name OpenVMS usage:device_name type: character string access: read only mechanism: by descriptor Name of the device for which LIB$GETDVI returns information. The device-name argument is the address of a descriptor pointing to the device name string. If this string contains a colon, the colon and the characters that follow it are ignored. The device-name may be either a physical device name or a logical name. If the first character in the string is an underscore character (_), the name is considered a physical device name. Otherwise, the name is considered a logical name, and logical name translation is performed until either a physical device name is found or the system default number of translations has been performed. If device-name is not specified, channel is used instead. You must specify either channel or device-name, but not both. If neither is specified, the error status SS$_IVDEVNAM is returned. The device name must not be longer than 255 characters. longword-integer-value OpenVMS usage:longword_signed type: longword (signed) access: write only mechanism: by reference Numeric value of the information requested. The longword-integer- value argument is the address of a signed longword containing the numeric value. If an item is listed as only returning a string value, this argument is ignored. resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String representation of the information requested. The resultant-string argument is the address of a descriptor pointing to this information. If resultant-string is not specified and if the value returned has only a string representation, the error status LIB$_INVARG is returned. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of significant characters written to resultant-string by LIB$GETDVI. The resultant-length argument is the address of an unsigned word containing this length. 3 LIB$GETJPI The Get Job/Process Information routine provides a simplified interface to the $GETJPI system service. It provides accounting, status, and identification information about a specified process. LIB$GETJPI obtains only one item of information in a single call. Format LIB$GETJPI item-code [,process-id] [,process-name] [,resultant-value] [,resultant-string] [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments item-code OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference Item identifier code specifying the item of information you are requesting. The item-code argument is the address of a signed longword containing the item code. You may request only one item in each call to LIB$GETJPI. LIB$GETJPI accepts all $GETJPI item codes. These names begin with JPI$_ and are defined in Digital supplied symbol libraries in module $JPIDEF. process-id OpenVMS usage:process_id type: longword (unsigned) access: modify mechanism: by reference Process identifier of the process for which you are requesting information. The process-id argument is the address of an unsigned longword containing the process identifier. If you do not specify process-id, process-name is used. The process-id is updated to contain the process identifier actually used, which may be different from what you originally requested if you specified process-name or used wildcard process searching. process-name OpenVMS usage:process_name type: character string access: read only mechanism: by descriptor A 1- to 15-character string specifying the name of the process for which you are requesting information. The process-name argument is the address of a descriptor pointing to the process name string. The name must correspond exactly to the name of the process for which you are requesting information; LIB$GETJPI does not allow trailing blanks or abbreviations. If you do not specify process-name, process-id is used. If you specify neither process-name nor process-id, the caller's process is used. Also, if you do not specify process-name and you specify zero for process-id, the caller's process is used. In this way, you can fetch the item you want and the caller's PID in a single call to LIB$GETJPI. resultant-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Numeric value of the information you request. The resultant-value argument is the address of a longword or quadword into which LIB$GETJPI writes the numeric value of this information. resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String representation of the information you request. The resultant-string argument is the address of a character string into which LIB$GETJPI writes the string representation. If you do not include resultant-string, but the item you request has only a string representation, the error status LIB$_INVARG is returned. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of significant characters written to resultant-string by LIB$GETJPI. The resultant-length argument is the address of an unsigned word integer into which LIB$GETJPI writes the number of characters. 3 LIB$GETQUI The Get Queue Information routine provides a simplified interface to the $GETQUI system service. It provides queue, job, file, characteristic, and form information about a specified process. LIB$GETQUI obtains only one item of information in a single call. Format LIB$GETQUI function-code [,item-code] [,search-number] [,search-name] [,search-flags] [,resultant-value] [,resultant-string] [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments function-code OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference Function code specifying the function that LIB$GETQUI is to perform. The function-code argument is the address of a signed longword containing the function code. LIB$GETQUI accepts all $GETQUI function codes. These names begin with QUI$_ and are defined in Digital supplied symbol libraries in module $QUIDEF. item-code OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference Item identifier code specifying the item of information you are requesting. The item-code argument is the address of a signed longword containing the item code. You may request only one item in each call to LIB$GETQUI. LIB$GETQUI accepts all $GETQUI item codes. These names begin with QUI$_ and are defined in Digital supplied symbol libraries in module $QUIDEF. search-number OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Numeric value used to process your request. The search-number argument is the address of a signed longword integer containing the number needed to process your request. The search-number argument corresponds directly to QUI$_SEARCH_NUMBER as described by the $GETQUI system service. search-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Character string used to process your request. The search-name argument is the address of a string descriptor that provides the name needed to process your request. The search-name argument corresponds directly to QUI$_SEARCH_NAME as described by the $GETQUI system service. search-flags OpenVMS usage:longword_unsigned type: longword integer (unsigned) access: read only mechanism: by reference Optional bit mask indicating request to be performed. The search- flags argument is the address of an unsigned longword integer containing the bit mask. The search-flags argument directly corresponds to $QUI_SEARCH_FLAGS as described by the $GETQUI system service. resultant-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Numeric value of the information you requested. The resultant- value argument is the address of a longword, quadword or octaword into which LIB$GETQUI writes the numeric value of this information. If the item you requested returns only a string value, this argument is ignored. resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String representation of the information you requested. The resultant-string argument is the address of a character string into which LIB$GETQUI writes the string representation. If you do not include resultant-string, but the item you request has only a string representation, the error status LIB$_INVARG is returned. resultant-length OpenVMS usage:word_signed type: word integer (signed) access: write only mechanism: by reference Number of significant characters written to resultant-string by LIB$GETQUI. The resultant-length argument is the address of a signed word integer into which LIB$GETQUI writes the number of characters. 3 LIB$GETSYI The Get Systemwide Information routine provides a simplified interface to the $GETSYI system service. The $GETSYI system service obtains status and identification information about the system. LIB$GETSYI returns only one item of information in a single call. Format LIB$GETSYI item-code [,resultant-value] [,resultant-string] [,resultant-length] [,cluster-system-id] [,node-name] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments item-code OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference Item code specifying the desired item of information. The item- code argument is the address of a signed longword containing this item code. All valid $GETSYI item codes are accepted. resultant-value OpenVMS usage:varying_arg type: unspecified access: write only mechanism: by reference Numeric value returned by LIB$GETSYI. The resultant-value argument is the address of a longword or quadword containing this value. If an item is listed as returning only a string value, this argument is ignored. resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Information returned by LIB$GETSYI. The resultant-string argument is the address of a descriptor pointing to the character string that will receive this information. If resultant-string is not specified and if the returned value has only a string representation, the error status LIB$_INVARG is returned. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of significant characters written to resultant-string, not including blank padding or truncated characters. The resultant- length argument is the address of an unsigned word into which LIB$GETSYI returns this number. cluster-system-id OpenVMS usage:identifier type: longword (unsigned) access: modify mechanism: by reference Cluster system identification (CSID) of the node for which information is to be returned. The cluster-system-id argument is the address of this CSID. If cluster-system-id is specified and is nonzero, node-name is not used. If cluster-system-id is specified as zero, LIB$GETSYI uses node-name and writes into the cluster-system-id argument the CSID corresponding to the node identified by node-name. The cluster-system-id of an OpenVMS node is assigned by the cluster-connection software and may be obtained by the DCL command SHOW CLUSTER. The value of the cluster-system-id for an OpenVMS node is not permanent; a new value is assigned to an OpenVMS node whenever it joins or rejoins the OpenVMS Cluster. If cluster-system-id is specified as -1, LIB$GETSYI assumes a wildcard operation and returns the requested information for each OpenVMS node in the cluster, one node per call. If cluster-system-id is not specified, node-name is used. node-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name of the node for which information is to be returned. The node-name argument is the address of a descriptor pointing to the node name string. If cluster-system-id is not specified or is specified as zero, node-name is used. If neither node-name nor cluster-system-id is specified, the caller's node is used. See the cluster-system-id argument for more information. The node name string must contain from 1 to 15 characters and must correspond exactly to the OpenVMS node name; no trailing blanks nor abbreviations are permitted. 3 LIB$GET_ACCNAM (VAX only.) The Get Access Name Table for Protected Object Class (by Name) routine returns a pointer to the access name table for a protected object class that is specified by name. Format LIB$GET_ACCNAM [clsnam] , [objnam] ,accnam 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments clsnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor The address of a character-string descriptor pointing to the name of a security object class. This argument is optional and defaults to FILE. objnam OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor The address of a character-string descriptor pointing to the name of a protected object. This argument is optional. If it is omitted, the access name table returned is that used for objects of the class specified by the clsnam argument. accnam OpenVMS usage:access_names type: longword (unsigned) access: write only mechanism: by reference The address of a longword into which this routine writes the address of the access name table. 3 LIB$GET_ACCNAM_BY_CONTEXT (VAX only.) The Get Access Name Table for Protected Object Class (by Context) routine returns a pointer to the access name table for a protected object class that is specified by a context longword returned from $GET_SECURITY or $SET_SECURITY. Format LIB$GET_ACCNAM_BY_CONTEXT contxt ,accnam 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments contxt OpenVMS usage:context type: longword (unsigned) access: read only mechanism: by reference The address of a nonzero longword context value returned by $GET_ SECURITY or $SET_SECURITY. accnam OpenVMS usage:access_names type: longword (unsigned) access: write only mechanism: by reference The address of a longword into which this routine writes the address of the access name table. 3 LIB$GET_COMMAND The Get Line from SYS$COMMAND routine gets one record of ASCII text from the current controlling input device, specified by the logical name SYS$COMMAND. Format LIB$GET_COMMAND resultant-string [,prompt-string] [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String that LIB$GET_COMMAND gets from SYS$COMMAND. The resultant- string argument is the address of a descriptor pointing to this string. prompt-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Prompt message that LIB$GET_COMMAND displays on the controlling terminal. The prompt-string argument is the address of a descriptor pointing to the prompt. Any string can be a valid prompt. By convention however, a prompt string consists of text followed by a colon (:), a space, and no carriage-return/line- feed combination. The maximum size of the prompt message is 255 characters. If the controlling input device is not a terminal, this argument is ignored. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of bytes written into resultant-string by LIB$GET_ COMMAND, not counting padding in the case of a fixed string. The resultant-length argument is the address of an unsigned word containing this length. If the input string is truncated to the size specified in the resultant-string descriptor, resultant- length is set to this size. Therefore, resultant-length can always be used by the calling program to access a valid substring of resultant-string. 3 LIB$GET_COMMON The Get String from Common routine copies a string in the common area to the destination string. (The common area is an area of storage that remains defined across multiple image activations in a process.) The string length is taken from the first longword of the common area. Format LIB$GET_COMMON resultant-string [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string into which LIB$GET_COMMON writes the string copied from the common area. The resultant-string argument is the address of a descriptor pointing to the destination string. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of characters written into resultant-string by LIB$GET_ COMMON, not counting padding in the case of a fixed-length string. The resultant-length argument is the address of an unsigned word integer containing the number of characters copied. If the input string is truncated to the size specified in the resultant-string descriptor, resultant-length is set to this size. Therefore, resultant-length can always be used by the calling program to access a valid substring of resultant-string. 3 LIB$GET_CURR_INVO_CONTEXT (Alpha only.) The Get Current Invocation Context routine gets the current invocation context of any active procedure. A thread can obtain the invocation context of a current procedure using the following function format: Format LIB$GET_CURR_INVO_CONTEXT invo_context 4 Returns None. 4 Argument invo_context OpenVMS usage:invo_context_blk type: structure access: write only mechanism: by reference Address of an invocation context block into which the procedure context of the caller will be written. 3 LIB$GET_DATE_FORMAT The Get the User's Date Input Format routine returns information about the user's choice of a date/time input format. Format LIB$GET_DATE_FORMAT format-string [,user-context] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments format-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Receives the translation of LIB$DT_INPUT_FORMAT. The format- string argument is the address of a descriptor pointing to this format string. user-context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context variable that retains the translation context over multiple calls to this routine. The user-context argument is the address of an unsigned longword that contains this context. The initial value of the context variable must be zero. Thereafter, the user program must not write to the cell. The user-context argument is optional. However, if a context cell is not passed, the routine LIB$GET_DATE_FORMAT may abort if two threads of execution attempt to manipulate the context area concurrently. Therefore, when calling this routine in situations where reentrancy might occur, such as from AST level, Digital recommends that users specify a different context cell for each calling thread. 3 LIB$GET_EF The Get Event Flag routine allocates one local event flag from a processwide pool and returns the number of the allocated flag to the caller. If no flags are available, LIB$GET_EF returns an error as its function value. Format LIB$GET_EF event-flag-number 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument event-flag-number OpenVMS usage:ef_number type: longword (unsigned) access: write only mechanism: by reference Number of the local event flag that LIB$GET_EF allocated, or - 1 if no local event flag was available. The event-flag-number argument is the address of a signed longword integer into which LIB$GET_EF writes the number of the local event flag that it allocates. 3 LIB$GET_FOREIGN The Get Foreign Command Line routine requests the calling image's command language interpreter (CLI) to return the contents of the "foreign command" line that activated the current image. Format LIB$GET_FOREIGN resultant-string [,prompt-string] [,resultant-length] [,flags] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String that LIB$GET_FOREIGN uses to receive the foreign command line. The resultant-string argument is the address of a descriptor pointing to this string. If the foreign command text returned was obtained by a prompt to SYS$INPUT (see the description of flags), the text is translated to uppercase so as to be more consistent with text returned from the CLI. prompt-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Optional user-supplied prompt for text that LIB$GET_FOREIGN uses if no command-line text is available. The prompt-string argument is the address of a descriptor pointing to the user prompt. If omitted, no prompting is performed. It is recommended that prompt-string be specified. If prompt-string is omitted and if no command-line text is available, a zero-length string will be returned. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of bytes written into resultant-string by LIB$GET_FOREIGN, not counting padding in the case of a fixed-length resultant- string. The resultant-length argument is the address of an unsigned word into which LIB$GET_FOREIGN writes the number of bytes. flags OpenVMS usage:mask_longword type: longword (unsigned) access: modify mechanism: by reference Value that LIB$GET_FOREIGN uses to control whether or not prompting is to be performed. The flags argument is the address of an unsigned longword integer containing this value. If the low bit of flags is zero, or if flags is omitted, prompting is done only if the CLI does not return a command line. If the low bit is 1, prompting is done unconditionally. If specified, flags is set to 1 before returning to the caller. The primary use of flags is to allow a utility program to be invoked once with subcommand text on the command line, and then to repeatedly prompt for further subcommands from SYS$INPUT. This is accomplished by calling LIB$GET_FOREIGN repeatedly, specifying in the call a prompt-string string and a flags variable that is initialized to zero at the beginning of the program. The first call gets the subcommand text from the command line, after which flags will be set to 1, causing further subcommands to be requested through prompts to SYS$INPUT. 3 LIB$GET_FULLNAME_OFFSET The Get the Offset to the Starting Position of the Most Significant Part of a Full Name routine returns the offset to the starting position of the most significant part of a full name. The most significant part of a full name is determined by the underlying network services. Format LIB$GET_FULLNAME_OFFSET fullname, offset 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments fullname OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Full name. The fullname argument contains the address of the descriptor pointing to this full name string. The error LIB$_INVARG is returned if fullname contains an invalid full name, points to a null string, or contains more than 1024 characters. The error LIB$_INVSTRDES is returned if fullname is an invalid descriptor. offset OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference The offset in bytes of the starting position of the most significant part of fullname. The offset argument is the address of an unsigned word that contains this offset. The offset argument contains an unusable result when LIB$GET_ FULLNAME_OFFSET returns in error. 3 LIB$GET_HOSTNAME The Get Host Node Name routine returns the host node name of the local system. Format LIB$GET_HOSTNAME hostname [,resultant-length] [,flags] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments hostname OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor The host node name. The hostname argument contains the address of a descriptor pointing to the host node name. LIB$GET_HOSTNAME writes the host node-name string into the buffer pointed to by the hostname descriptor. The error LIB$_INVSTRDES is returned if hostname is an invalid descriptor. The length field of the hostname descriptor is not updated unless hostname is a dynamic descriptor with a length less than the host node name to be returned. Refer to the OpenVMS RTL String Manipulation (STR$) Manual for dynamic string descriptor usage. The hostname argument contains an unusable result when LIB$GET_ HOSTNAME returns in error. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the host node name. The resultant-length argument is the address of an unsigned word that contains this length in bytes. The resultant-length argument contains an unusable result when LIB$GET_HOSTNAME returns in error. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by value The value LIB$GET_HOSTNAME uses to control the form of the host node name that it returns in the output descriptor hostname. If flags is equal to 0, or if flags is omitted, the host node name returned is in the network usable form. If flags is equal to 1, the host node name returned is in the parsable form. Unused bits in flags must be 0. Nonzero unused bits result in the error condition LIB$_INVARG. 3 LIB$GET_INPUT The Get Line from SYS$INPUT routine gets one record of ASCII text from the current controlling input device, specified by SYS$INPUT. Format LIB$GET_INPUT resultant-string [,prompt-string] [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String that LIB$GET_INPUT gets from the input device. The resultant-string argument is the address of a descriptor pointing to the character string into which LIB$GET_INPUT writes the text received from the current input device. prompt-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Prompt message that is displayed on the controlling terminal. The prompt-string argument is the address of a descriptor containing the prompt. Any string can be a valid prompt. By convention however, a prompt consists of text followed by a colon (:), a space, and no carriage-return/line-feed combination. The maximum size of the prompt message is 255 characters. If the controlling input device is not a terminal, this argument is ignored. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of bytes written into resultant-string by LIB$GET_ INPUT, not counting padding in the case of a fixed string. The resultant-length argument is the address of an unsigned word containing this number. If the input string is truncated to the size specified in the resultant-string descriptor, resultant- length is set to this size. Therefore, resultant-length can always be used by the calling program to access a valid substring of resultant-string. 3 LIB$GET_INVO_CONTEXT (Alpha only.) The Get Invocation Context routine gets the invocation context of any active procedure. Format LIB$GET_INVO_CONTEXT invo_handle, invo_context 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value A value of 1 indicates success; a value of 0 indicates failure. 4 Arguments invo_handle OpenVMS usage:invo_handle type: longword (unsigned) access: read only mechanism: by value Handle for the desired invocation. Returned by LIB$GET_INVO_ HANDLE. invo_context OpenVMS usage:invo_context_blk type: structure access: write only mechanism: by reference Address of an invocation context block into which the procedure context of the frame specified by invo_handle will be written. 3 LIB$GET_INVO_HANDLE (Alpha only.) The Get Invocation Handle routine gets an invocation handle of any active procedure. A thread can obtain an invocation handle corresponding to any invocation context block by using the following function format. Format LIB$GET_INVO_HANDLE invo_context 4 Returns OpenVMS usage:invo_handle type: longword (unsigned) access: write only mechanism: by value Invocation handle of the invocation context that was passed. If the returned value is LIB$K_INVO_HANDLE_NULL, the invocation context that was passed was invalid. 4 Argument invo_context OpenVMS usage:invo_context_blk type: structure access: read only mechanism: by reference Address of an invocation context block. Here, only the frame pointer and stack pointer fields of an invocation context block must be defined. 3 LIB$GET_LUN The Get Logical Unit Number routine allocates one logical unit number from a processwide pool. If a unit is available, its number is returned to the caller. Otherwise, an error is returned as the function value. Format LIB$GET_LUN logical-unit-number 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument logical-unit-number OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference Allocated logical unit number or -1 if none was available. The logical-unit-number argument is the address of a longword into which LIB$GET_LUN returns the value of the allocated logical unit. LIB$GET_LUN can allocate logical unit numbers 100 through 119 on VAX, and 100 through 299 on Alpha. 3 LIB$GET_MAXIMUM_DATE_LENGTH Given an output format and language, the Retrieve the Maximum Length of a Date/Time String routine determines the maximum possible length for the date-string string returned by LIB$FORMAT_DATE_TIME. Format LIB$GET_MAXIMUM_DATE_LENGTH date-length [,user-context] [,flags] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments date-length OpenVMS usage:longword_signed type: longword (signed) access: write only mechanism: by reference Receives the maximum possible length of the date-string argument returned to LIB$FORMAT_DATE_TIME. The date-length argument is the address of a signed longword that receives this maximum length. The length written to date-length reflects the greatest possible length of an output date/time string for the currently selected output format and natural language. For example, if the selected output date/time format includes the alphabetic, unabbreviated month name (assuming English as the natural language), the longest month name (September) would have to be taken into consideration when determining the maximum possible length of date-string. user-context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context variable that retains the translation context over multiple calls to this routine. The user-context argument is the address of an unsigned longword that contains this context. The initial value of the context variable must be zero. Thereafter, the user program must not write to the cell. The user-context parameter is optional. However, if a context cell is not passed, the routine LIB$GET_MAXIMUM_DATE_LENGTH may abort if two threads of execution attempt to manipulate the context area concurrently. Therefore, when calling this routine in situations where reentrancy might occur, such as from AST level, Digital recommends that users specify a different context cell for each calling thread. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Bit mask that allows the user to specify whether the date, time, or both are to be included in the calculation of the maximum date length. The flags argument is the address of an unsigned bit mask containing the specified values. Valid values are LIB$M_DATE_ FIELDS and LIB$M_TIME_FIELDS. The values specified for flags must correspond to the flags argument passed to LIB$FORMAT_DATE_TIME. 3 LIB$GET_PREV_INVO_CONTEXT (Alpha only.) The Get Previous Invocation Context routine gets the previous invocation context of any active procedure. A thread can obtain the invocation context of the procedure context preceding any other procedure context using the following function format: Format LIB$GET_PREV_INVO_CONTEXT invo_context 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value Status value. A value of 1 indicates success. When the initial context represents the bottom of the call chain, a value of 0 is returned. 4 Argument invo_context OpenVMS usage:invo_context_blk type: structure access: modify mechanism: by reference Address of an invocation context block. The given context block is updated to represent the context of the previous (calling) frame. For the purposes of this function, the minimum fields of an invocation block that must be defined are those IREG and FREG fields corresponding to registers used by a context whether the registers are preserved or not. Note that the invocation context blocks written by the routines specified in these sections define all possible fields in a context block. Such context blocks satisfy this minimum requirement. 3 LIB$GET_PREV_INVO_HANDLE (Alpha only.) The Get Previous Invocation Handle routine gets the previous invocation handle of any active procedure. A thread can obtain an invocation handle of the procedure context preceding that of a specified procedure context by using the following function format: Format LIB$GET_PREV_INVO_HANDLE invo_handle 4 Returns OpenVMS usage:invo_handle type: longword (unsigned) access: write only mechanism: by value An invocation handle for the invocation context that is previous to that which was specified as the target. 4 Argument invo_handle OpenVMS usage:invo_handle type: longword (unsigned) access: read only mechanism: by value An invocation handle that represents a target invocation context. 3 LIB$GET_SYMBOL The Get Value of CLI Symbol routine requests the calling process's command language interpreter (CLI) to return the value of a CLI symbol as a string. LIB$GET_SYMBOL then returns the string to the caller. Optionally, LIB$GET_SYMBOL can return the length of the returned value and the table in which the symbol was found. Format LIB$GET_SYMBOL symbol ,resultant-string [,resultant-length] [,table-type-indicator] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments symbol OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name of the symbol for which LIB$GET_SYMBOL searches. The symbol argument is the address of a descriptor pointing to the name of the symbol. LIB$GET_SYMBOL converts the symbol name to uppercase and removes trailing blanks before the search. The symbol argument must begin with a letter, a digit, a dollar sign ($), a hyphen (-), or an underscore (_). The maximum length of symbol is 255 characters. resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Value of the returned symbol. The resultant-string argument is the address of a descriptor pointing to a character string into which LIB$GET_SYMBOL writes the value of the symbol. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the symbol value returned by LIB$GET_SYMBOL. The resultant-length argument is the address of an unsigned word integer into which LIB$GET_SYMBOL writes the length. table-type-indicator OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by reference Indicator of which table contained the symbol. The table-type- indicator argument is the address of a signed longword integer into which LIB$GET_SYMBOL writes the table indicator. Possible values of the table indicator are listed below. Symbolic Name Value Table LIB$K_CLI_LOCAL_ 1 Local symbol table SYM LIB$K_CLI_GLOBAL_ 2 Global symbol table SYM LIB$K_CLI_LOCAL_SYM and LIB$K_CLI_GLOBAL_SYM are defined in Digital supplied symbol libraries (macro or module name $LIBCLIDEF) and as global symbols. 3 LIB$GET_USERS_LANGUAGE The Return the User's Language routine determines the user's choice of a natural language. The choice is determined by translating the logical SYS$LANGUAGE. Format LIB$GET_USERS_LANGUAGE language 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument language OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Receives the translation of SYS$LANGUAGE. The language argument is the address of a descriptor pointing to this language name. 3 LIB$GET_VM The Allocate Virtual Memory routine allocates a specified number of contiguous bytes in the program region and returns the 32-bit virtual address of the first byte allocated. Format LIB$GET_VM number-of-bytes, base-address [,zone-id] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-bytes OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Number of contiguous bytes that LIB$GET_VM allocates. The number- of-bytes argument is the address of a longword integer containing the number of bytes. LIB$GET_VM allocates enough memory to satisfy the request. Your program should not reference an address before the first byte address allocated (base-address) or beyond the last byte allocated (base-address + number-of-bytes - 1) since that space may be assigned to another routine. The value of number-of-bytes must be greater than zero. base-address OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference First virtual address of the contiguous block of bytes allocated by LIB$GET_VM. The base-address argument is the address of an unsigned longword containing this base address. zone-id OpenVMS usage:identifier type: longword (unsigned) access: read only mechanism: by reference The zone-id argument is the address of a longword that contains a zone identifier created by a previous call to LIB$CREATE_VM_ZONE or LIB$CREATE_USER_VM_ZONE. This argument is optional. If zone-id is omitted or if the longword contains the value 0, the 32-bit default zone is used. 3 LIB$GET_VM_64 (Alpha only.) The Allocate Virtual Memory routine allocates a specified number of contiguous bytes in the program region and returns the 64-bit virtual address of the first byte allocated. Format LIB$GET_VM_64 number-of-bytes, base-address [,zone-id] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-bytes OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Number of contiguous bytes that LIB$GET_VM_64 allocates. The number-of-bytes argument is the address of a quadword integer containing the number of bytes. LIB$GET_VM_64 allocates enough memory to satisfy the request. Your program should not reference an address before the first byte address allocated (base-address) or beyond the last byte allocated (base-address + number-of- bytes-1) since that space may be assigned to another routine. The value of number-of-bytes must be greater than zero. base-address OpenVMS usage:address type: quadword (unsigned) access: write only mechanism: by reference First virtual address of the contiguous block of bytes allocated by LIB$GET_VM_64. The base-address argument is the address of an unsigned quadword containing this base address. zone-id OpenVMS usage:identifier type: quadword (unsigned) access: read only mechanism: by reference The zone-id argument is the address of a quadword that contains a zone identifier created by a previous call to LIB$CREATE_VM_ZONE_ 64 or LIB$CREATE_USER_VM_ZONE_64. This argument is optional. If zone-id is omitted or if the quadword contains the value 0, the 64-bit default zone is used. 3 LIB$GET_VM_PAGE The Get Virtual Memory Page routine allocates a specified number of contiguous pages on VAX systems or pagelets on Alpha systems of memory in the program region and returns the virtual address of the first allocated page on VAX or pagelet on Alpha. Format LIB$GET_VM_PAGE number-of-pages ,base-address 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-pages OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Number of pages on VAX systems or pagelets on Alpha systems. The number-of-pages argument is the address of a longword integer that specifies the number of contiguous pages on VAX systems or pagelets on Alpha systems to be allocated. The value of number- of-pages must be greater than 0. base-address OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Block address. The base-address argument is the address of a longword that is set to the address of the first byte of the newly allocated block of pages on VAX systems or pagelets on Alpha systems. 3 LIB$GET_VM_PAGE_64 (Alpha only.) The Get Virtual Memory Page routine allocates a specified number of contiguous Alpha pagelets of memory in the program region and returns the virtual address of the first allocated pagelet. Format LIB$GET_VM_PAGE_64 number-of-pages ,base-address 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-pages OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Number of Alpha pagelets. The number-of-pages argument is the address of a quadword integer that specifies the number of contiguous Alpha pagelets to be allocated. The value of number- of-pages must be greater than 0. base-address OpenVMS usage:address type: quadword (unsigned) access: write only mechanism: by reference Block address. The base-address argument is the address of a quadword that is set to the address of the first byte of the newly allocated block of Alpha pagelets. 3 LIB$ICHAR The Convert First Character of String to Integer routine converts the first character of a source string to an 8-bit ASCII integer extended to a longword. Format LIB$ICHAR source-string 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value First character of the source string. This character is returned by LIB$ICHAR as an 8-bit ASCII value extended to a longword. If the source string has zero length, LIB$ICHAR returns a zero. 4 Argument source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string whose first character is converted to an integer by LIB$ICHAR. The source-string argument is the address of a descriptor pointing to this source string. 3 LIB$INDEX The Index to Relative Position of Substring routine returns an index, which is the relative position of the first occurrence of a substring in the source string. Format LIB$INDEX source-string ,sub-string 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The relative position of the first character of the substring if found, or zero if not found. On Alpha systems, if the relative position of the substring can exceed 2**32-1, assign the return value to a quadword to ensure that you retrieve the correct relative position. 4 Arguments source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string to be searched by LIB$INDEX. The source-string argument is the address of a descriptor pointing to this source string. sub-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Substring to be found. The sub-string argument is the address of a descriptor pointing to this substring. 3 LIB$INIT_DATE_TIME_CONTEXT The Initialize the Context Area Used in Formatting Dates and Times for Input or Output routine allows the user to initialize the context area used by LIB$FORMAT_DATE_TIME or LIB$CONVERT_ DATE_STRING with specific strings, instead of through logical name translation. Format LIB$INIT_DATE_TIME_CONTEXT user-context ,component ,init-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments user-context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference User context that retains the translation context over multiple calls to this routine. The user-context argument is the address of an unsigned longword that contains this context. The initial value of the context variable must be zero. Thereafter, the user program must not write to the cell. component OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference The component of the context that is being initialized. The component argument is the address of a signed longword that indicates this component. Only one component can be initialized per call to LIB$INIT_DATE_TIME; these component codes are shown in the following list. o LIB$K_MONTH_NAME o LIB$K_MONTH_NAME_ABB o LIB$K_FORMAT_MNEMONICS o LIB$K_WEEKDAY_NAME o LIB$K_WEEKDAY_NAME_ABB o LIB$K_RELATIVE_DAY_NAME o LIB$K_MERIDIEM_INDICATOR o LIB$K_OUTPUT_FORMAT o LIB$K_INPUT_FORMAT o LIB$K_LANGUAGE init-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor The characters that are to be used in formatting dates and times for input or output. The init-string argument is the address of a descriptor pointing to this string. 3 LIB$INIT_TIMER The Initialize Times and Counts routine stores the current values of specified times and counts for use by LIB$SHOW_TIMER or LIB$STAT_TIMER. Format LIB$INIT_TIMER [context] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context variable that retains the values of the times and counts. The context argument contains the address of an unsigned longword that is this context. When you call LIB$INIT_TIMER, you must use the optional context argument only if you want to maintain several sets of statistics simultaneously. o If context is omitted, the control block is allocated in static storage. This method is not AST reentrant. o If context is zero, a control block is allocated in dynamic heap storage. The times and counts will be stored in that block and the address of the block returned in context. This method is fully reentrant and modular. o If context is nonzero, it is considered to be the address of a control block previously allocated by a call to LIB$INIT_ TIMER. If so, the control block is reused, and fresh times and counts are stored in it. When LIB$INIT_TIMER returns, the block of storage referred to by context will contain the times and counts. 3 LIB$INSERT_TREE The Insert Entry in a Balanced Binary Tree routine inserts a node in a balanced binary tree. Format LIB$INSERT_TREE treehead ,symbol ,flags ,user-compare-routine ,user-allocation-procedure ,new-node [,user-data] 4 Returns OpenVMS usage:cond_value type: longword (signed) access: write only mechanism: by value 4 Arguments treehead OpenVMS usage:address type: address access: modify mechanism: by reference Tree head for the binary tree. The treehead argument is the address of a longword that is this tree head. The initial value of treehead is 0. symbol OpenVMS usage:user_arg type: longword (unsigned) access: unspecified mechanism: unspecified Key to be inserted. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Control flags. The flags argument is the address of the control flags. Currently only bit 0 is used. Bit Action if Set Action if Clear 0 Duplicate The address of the existing duplicate entry entries are is returned to the new-node argument. inserted. user-compare-routine OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied compare routine that LIB$INSERT_TREE calls to compare a symbol with a node. The user-compare-routine argument is required; LIB$INSERT_TREE calls the compare routine for every node except the first node in the tree. The value returned by the compare routine indicates the relationship between the symbol key and the node. user-allocation-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied allocate routine that LIB$INSERT_TREE calls to allocate virtual memory for a node. The user-allocation-procedure argument is required; LIB$INSERT_TREE always calls the allocate routine. new-node OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Location where the new key is inserted. The new-node argument is the address of an unsigned longword that is the address of the new node. user-data OpenVMS usage:user_arg type: unspecified access: unspecified mechanism: by value User data that LIB$INSERT_TREE passes to the compare and allocate routines. The user-data argument is optional. 3 LIB$INSERT_TREE_64 (Alpha only.) The Insert Entry in a Balanced Binary Tree routine inserts a node in a balanced binary tree. Format LIB$INSERT_TREE_64 treehead ,symbol ,flags ,user-compare-routine ,user-allocation-procedure ,new-node [,user-data] 4 Returns OpenVMS usage:cond_value type: longword (signed) access: write only mechanism: by value 4 Arguments treehead OpenVMS usage:address type: address access: modify mechanism: by reference Tree head for the binary tree. The treehead argument is the address of a quadword that is this tree head. The initial value of treehead is 0. symbol OpenVMS usage:user_arg type: quadword (unsigned) access: unspecified mechanism: unspecified Key to be inserted. flags OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by reference Control flags. The flags argument is the address of the control flags. Currently only bit 0 is used. Bit Description 0 If clear, the address of the existing duplicate entry is returned to the new-node argument. If set, duplicate entries are inserted. user-compare-routine OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied compare routine that LIB$INSERT_TREE_64 calls to compare a symbol with a node. The user-compare-routine argument is required; LIB$INSERT_TREE_64 calls the compare routine for every node except the first node in the tree. The value returned by the compare routine indicates the relationship between the symbol key and the node. user-allocation-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied allocate routine that LIB$INSERT_TREE_64 calls to allocate virtual memory for a node. The user-allocation- procedure argument is required; LIB$INSERT_TREE_64 always calls the allocate routine. new-node OpenVMS usage:address type: quadword (unsigned) access: write only mechanism: by reference Location where the new key is inserted. The new-node argument is the address of an unsigned quadword that is the address of the new node. user-data OpenVMS usage:user_arg type: unspecified access: unspecified mechanism: by value User data that LIB$INSERT_TREE_64 passes to the compare and allocate routines. The user-data argument is optional. 3 LIB$INSQHI The Insert Entry at Head of Queue routine inserts a queue entry at the head of the specified self-relative longword interlocked queue. LIB$INSQHI makes the INSQHI instruction available as a callable routine. Format LIB$INSQHI entry ,header [,retry-count] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments entry OpenVMS usage:unspecified type: unspecified access: modify mechanism: by reference, array reference Entry to be inserted by LIB$INSQHI. The entry argument contains the address of this signed quadword-aligned array that must be at least 8 bytes long. Bytes following the first 8 bytes can be used for any purpose by the calling program. For Alpha systems, the entry argument must contain a 32-bit sign- extended address. An illegal operand exception occurs for any other form of address. header OpenVMS usage:quadword_signed type: quadword integer (signed) access: modify mechanism: by reference Queue header specifying the queue into which entry is to be inserted. The header argument contains the address of this signed aligned quadword integer. The header argument must be initialized to zero before first use of the queue; zero means an empty queue. For Alpha systems, the header argument must contain a 32-bit sign-extended address. An illegal operand exception occurs for any other form of address. retry-count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The number of times the insertion is to be retried in case of secondary-interlock failure of the queue instruction in a processor-shared memory application. The retry-count argument is the address of an unsigned longword that contains the retry count value. A value of 1 causes no retries. The default value is 10. 3 LIB$INSQHIQ (Alpha only.) The Insert Entry at Head of Queue routine inserts a queue entry at the head of the specified self-relative quadword interlocked queue. LIB$INSQHIQ makes the INSQHIQ instruction available as a callable routine. Format LIB$INSQHIQ entry ,header [,retry-count] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments entry OpenVMS usage:unspecified type: unspecified access: modify mechanism: by reference, array reference Entry to be inserted by LIB$INSQHIQ. The entry argument contains the address of this signed octaword-aligned array that must be at least 16 bytes long. Bytes following the first 16 bytes can be used for any purpose by the calling program. header OpenVMS usage:octaword_signed type: octaword integer (signed) access: modify mechanism: by reference Queue header specifying the queue into which entry is to be inserted. The header argument contains the address of this signed aligned octaword integer. The header argument must be initialized to zero before first use of the queue; zero means an empty queue. retry-count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The number of times the insertion is to be retried in case of secondary-interlock failure of the queue instruction in a processor-shared memory application. The retry-count argument is the address of an unsigned longword that contains the retry count value. A value of 1 causes no retries. The default value is 10. 3 LIB$INSQTI The Insert Entry at Tail of Queue routine inserts a queue entry at the tail of the specified self-relative longword interlocked queue. LIB$INSQTI makes the INSQTI instruction available as a callable routine. Format LIB$INSQTI entry ,header [,retry-count] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments entry OpenVMS usage:unspecified type: unspecified access: modify mechanism: by reference, array reference Entry to be inserted at the tail of the queue by LIB$INSQTI. The entry argument contains the address of this signed quadword- aligned array that must be at least 8 bytes long. Bytes following the first 8 bytes can be used for any purpose by the calling program. For Alpha systems, the entry argument must contain a 32-bit sign- extended address. An illegal operand exception occurs for any other form of address. header OpenVMS usage:quadword_signed type: quadword integer (signed) access: modify mechanism: by reference Queue header specifying the queue into which the queue entry is to be inserted. The header argument contains the address of this signed aligned quadword integer. The header argument must be initialized to zero before first use of the queue; zero means an empty queue. For Alpha systems, the header argument must contain a 32-bit sign-extended address. An illegal operand exception occurs for any other form of address. retry-count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The number of times the insertion is to be retried in case of secondary-interlock failure of the queue instruction in a processor-shared memory application. The retry-count argument is the address of a longword which contains the retry count value. The default value is 10. 3 LIB$INSQTIQ (Alpha only.) The Insert Entry at Tail of Queue routine inserts a queue entry at the tail of the specified self-relative quadword interlocked queue. LIB$INSQTIQ makes the INSQTIQ instruction available as a callable routine. Format LIB$INSQTIQ entry ,header [,retry-count] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments entry OpenVMS usage:unspecified type: unspecified access: modify mechanism: by reference, array reference Entry to be inserted at the tail of the queue by LIB$INSQTIQ. The entry argument contains the address of this signed octaword- aligned array that must be at least 16 bytes long. Bytes following the first 16 bytes can be used for any purpose by the calling program. header OpenVMS usage:octaword_signed type: octaword integer (signed) access: modify mechanism: by reference Queue header specifying the queue into which the queue entry is to be inserted. The header argument contains the address of this signed aligned octaword integer. The header argument must be initialized to zero before first use of the queue; zero means an empty queue. retry-count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The number of times the insertion is to be retried in case of secondary-interlock failure of the queue instruction in a processor-shared memory application. The retry-count argument is the address of a longword that contains the retry count value. The default value is 10. 3 LIB$INSV The Insert a Variable Bit Field routine replaces the variable bit field specified by the base, position, and size arguments with bits 0 through (size-1) of the source field. If the size of the bit field is zero, nothing is inserted. LIB$INSV makes the VAX INSV instruction available as a callable routine. Format LIB$INSV longword-integer-source ,position ,size ,base-address 4 Returns None. 4 Arguments longword-integer-source OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Source field to be inserted by LIB$INSV. The longword-integer- source argument is the address of a signed longword integer that contains this source field. position OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Bit position relative to the base address where insertion of longword-integer-source is to begin. The position argument is the address of a longword integer that contains this relative bit position. size OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference Size of the bit field to be inserted by LIB$INSV. The size argument is the address of an unsigned byte that contains the size of this bit field. The maximum size is 32 bits. base-address OpenVMS usage:address type: address access: read only mechanism: by value Field into which LIB$INSV writes the source field. The base- address argument is an unsigned longword containing the base address of this aligned bit string. 3 LIB$INT_OVER The Integer Overflow Detection routine enables or disables integer overflow detection for the calling routine activation. The previous integer overflow enable setting is returned. This routine is available on OpenVMS Alpha systems in translated form and is applicable to translated VAX images only. Format LIB$INT_OVER new-setting 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value Old integer overflow enable setting (the previous contents of SF$W_PSW[PSW$V_IV] in the caller's frame). 4 Argument new-setting OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference New integer overflow enable setting. The new-setting argument is the address of an unsigned longword that contains the new integer overflow enable setting. Bit 0 set to 1 means enable, bit 0 set to 0 means disable. 3 LIB$LEN The Length of String Returned as Longword Value routine returns the length of a string. Format LIB$LEN source-string 4 Returns OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by value Length of the source string, extracted and zero-extended to 32 bits. 4 Argument source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string whose length is returned by LIB$LEN. The source- string argument contains the address of a descriptor pointing to this source string. 3 LIB$LOCC The Locate a Character routine locates a character in a string by comparing successive bytes in the string with the character specified. The search continues until the character is found or the string has no more characters. LIB$LOCC makes the VAX LOCC instruction available as a callable routine. Format LIB$LOCC character-string ,source-string 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The relative position from the start of source-string to the first equal character or zero if no match is found. 4 Arguments character-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor String whose initial character is used by LIB$LOCC in the search. The character-string argument contains the address of a descriptor pointing to this string. Only the first character of character-string is used, and its length is not checked. source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor String to be searched by LIB$LOCC. The source-string argument is the address of a descriptor pointing to this character string. 3 LIB$LOOKUP_KEY The Look Up Keyword in Table routine scans a table of keywords to find one that matches the keyword or keyword abbreviation specified by search-string. Format LIB$LOOKUP_KEY search-string ,key-table-array [,key-value] [,keyword-string] [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments search-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor String for which LIB$LOOKUP_KEY will search in the keyword table. The search-string argument is the address of a descriptor pointing to this string. key-table-array OpenVMS usage:unspecified type: unspecified access: read only mechanism: by reference, array reference Keyword table. The key-table-array argument contains the address of an array that is this keyword table. key-value OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by reference Associated value of the keyword found by LIB$LOOKUP_KEY. The key- value argument contains the address of an unsigned longword into which LIB$LOOKUP_KEY writes the associated value of the matched keyword. keyword-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Full keyword string matched. The keyword-string argument contains the address of a character-string descriptor. LIB$LOOKUP_ KEY writes the complete text of the matched keyword into the character string. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of characters copied into the character-string pointed to by keyword-string, not counting padding in the case of a fixed- length string. The resultant-length argument is the address of an unsigned word integer that contains the number of characters in the matched keyword that were copied into the character-string. 3 LIB$LOOKUP_TREE The Look Up an Entry in a Balanced Binary Tree routine looks up an entry in a balanced binary tree. Format LIB$LOOKUP_TREE treehead ,symbol ,user-compare-routine ,new-node 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments treehead OpenVMS usage:address type: address access: read only mechanism: by reference Tree head for the binary tree. The treehead argument is the address of an unsigned longword that is this tree head. symbol OpenVMS usage:user_arg type: longword (unsigned) access: unspecified mechanism: unspecified Key to be looked up in the binary tree. user-compare-routine OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied compare routine that LIB$LOOKUP_TREE calls to compare a symbol with a node. The value returned by the compare routine indicates the relationship between the symbol key and the current node. new-node OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Location where the new symbol was found. The new-node argument is the address of an unsigned longword that is the new node location. 3 LIB$LOOKUP_TREE_64 (Alpha only.) The Look Up an Entry in a Balanced Binary Tree routine looks up an entry in a balanced binary tree. Format LIB$LOOKUP_TREE_64 treehead ,symbol ,user-compare-routine ,new-node 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments treehead OpenVMS usage:address type: address access: read only mechanism: by reference Tree head for the binary tree. The treehead argument is the address of an unsigned quadword that is this tree head. symbol OpenVMS usage:user_arg type: quadword (unsigned) access: unspecified mechanism: unspecified Key to be looked up in the binary tree. user-compare-routine OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied compare routine that LIB$LOOKUP_TREE_64 calls to compare a symbol with a node. The value returned by the compare routine indicates the relationship between the symbol key and the current node. new-node OpenVMS usage:address type: quadword (unsigned) access: write only mechanism: by reference Location where the new symbol was found. The new-node argument is the address of an unsigned quadword that is the new node location. 3 LIB$LP_LINES The Lines on Each Printer Page routine computes the default number of lines on a printer page. This routine can be used by native-mode OpenVMS utilities that produce listing files and paginate files. Format LIB$LP_LINES 4 Returns OpenVMS usage:longword_signed type: longword integer (signed) access: write only mechanism: by value The default number of lines on a physical printer page. If the logical name translation or conversion to binary fails, a default value of 66 is returned. 4 Arguments None. 3 LIB$MATCHC The Match Characters and Return Relative Position routine searches a source string for a specified substring and returns an index, which is the relative position of the first occurrence of a substring in the source string. The relative character positions returned by LIB$MATCHC are numbered 1, 2, . . . , n. Thus, zero means that the substring was not found. Format LIB$MATCHC sub-string ,source-string 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The relative position of the first character of the substring if found, or zero if not found. 4 Arguments sub-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Substring to be found. The sub-string argument is the address of a descriptor pointing to this substring. source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string to be searched by LIB$MATCHC. The source-string argument is the address of a descriptor pointing to this source string. 3 LIB$MATCH_COND The Match Condition Values routine checks to see if a given condition value matches a list of condition values that you supply. Format LIB$MATCH_COND match-condition-value ,compare-condition-value ,... 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value A zero, if the input condition value did not match any condition value in the list, or i-1, for a match between the first argument and the ith argument. 4 Arguments match-condition-value OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by reference Condition value to be matched. The match-condition-value argument is the address of an unsigned longword that contains this condition value. compare-condition-value OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by reference The condition values to be compared to match-condition-value. The compare-condition-value arguments are the addresses of the unsigned longwords that contain these condition values. 3 LIB$MOVC3 The Move Characters routine makes the VAX MOVC3 instruction available as a callable routine. The source item is moved to the destination item. Overlap of the source and destination items does not affect the result. Format LIB$MOVC3 word-integer-length ,source ,destination 4 Returns None. 4 Arguments word-integer-length OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Number of bytes to be moved from source to destination by LIB$MOVC3. The word-integer-length argument is the address of an unsigned word that contains this number of bytes. The maximum transfer is 65,535 bytes. source OpenVMS usage:unspecified type: unspecified access: read only mechanism: by reference Item to be moved. The source argument is the address of this item. destination OpenVMS usage:unspecified type: unspecified access: write only mechanism: by reference Item into which source will be moved. The destination argument is the address of this item. 3 LIB$MOVC5 The Move Characters with Fill routine makes the VAX MOVC5 instruction available as a callable routine. The source item is moved to the destination item. Overlap of the source and destination items does not affect the result. Format LIB$MOVC5 word-integer-source-length ,source [,fill] ,word-integer-destination-length ,destination 4 Returns None. 4 Arguments word-integer-source-length OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Number of bytes in the source item. The word-integer-source- length argument is the address of an unsigned word that contains this number of bytes. The maximum length of source is 65,535 bytes. source OpenVMS usage:unspecified type: unspecified access: read only mechanism: by reference Item to be moved by LIB$MOVC5. The source argument is the address of this item. If word-integer-source-length is zero, indicating that destination is to be entirely filled by the fill character, then source is ignored by LIB$MOVC5. fill OpenVMS usage:byte_signed type: byte integer (signed) access: read only mechanism: by reference Character used to pad source to the length of destination. The fill argument is the address of a signed byte integer that contains this fill character. If word-integer-destination-length is less than or equal to word-integer-source-length, fill is unused and may be omitted. word-integer-destination-length OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Length of destination in bytes. The word-integer-destination- length argument is the address of an unsigned word that contains this number of bytes. The maximum value of word-integer- destination-length is 65,535 bytes. destination OpenVMS usage:unspecified type: unspecified access: write only mechanism: by reference Item into which source will be moved. The destination argument is the address of this item. 3 LIB$MOVTC The Move Translated Characters routine moves the source string, character by character, to the destination string after translating each character using the specified translation table. LIB$MOVTC makes the VAX MOVTC instruction available as a callable routine. Format LIB$MOVTC source-string ,fill-character ,translation-table ,destination-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string to be translated and moved by LIB$MOVTC. The source-string argument is the address of a descriptor pointing to this source string. fill-character OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Fill character used to pad source-string to the length of destination-string. The fill-character argument is the address of a descriptor pointing to a string. The first character of this string is used as the fill character. The length of this string is not checked and fill-character is not translated. translation-table OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Translation table used by LIB$MOVTC. The translation-table argument is the address of a descriptor pointing to the translation table string. The translation table string is assumed to be 256 characters long. You can use any one of the translation tables supplied by Digital, or you can create your own. Translation tables supplied by Digital have names in the format LIB$AB_xxx_yyy, which represent the addresses of the 256-byte translation tables and can be accessed as external (string) variables. If a particular language cannot generate descriptors for external strings, then you must create them manually. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string into which LIB$MOVTC writes the translated source-string. The destination-string argument is the address of a descriptor pointing to this destination string. 3 LIB$MOVTUC The Move Translated Until Character routine moves the source string, character by character, to the destination string after translating each character using the specified translation table until the stop character is encountered. LIB$MOVTUC makes the VAX MOVTUC instruction available as a callable routine. Format LIB$MOVTUC source-string ,stop-character ,translation-table ,destination-string [,fill-character] 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The relative position in the source string of the character that is translated to the stop character. Zero is returned if the stop character is not found. This value is set to -1 if destination- string cannot be allocated. 4 Arguments source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string to be translated and moved by LIB$MOVTUC. The source-string argument is the address of a descriptor pointing to this source string. stop-character OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Stop character that causes LIB$MOVTUC to stop translating the source string. The stop-character argument is the address of a descriptor pointing to a string. The first character of this string is used as the stop character. The length of this string is not checked. During the translation, LIB$MOVTUC accesses each character in the source string and uses it as an index into the translation table. If this translated character is the specified stop character, translation stops, and stop-character is not translated. translation-table OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Translation table used by LIB$MOVTUC. The translation-table argument is the address of a descriptor pointing to the translation table string. The translation table string is assumed to be 256 characters long. You can use any of the translation tables included in the Description section of LIB$MOVTC, or you can create your own. When using a translation table supplied by Digital, the names LIB$AB_xxx_yyy represent the addresses of the 256-byte translation tables, and can be accessed as external (string) variables. If a particular language cannot generate descriptors for external strings, then they must be created manually. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string into which LIB$MOVTUC writes the translated source-string. The destination-string argument is the address of a descriptor pointing to this destination string. fill-character OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Character used to pad source-string to the length of destination- string. The fill-character argument is the address of a descriptor pointing to a string. The first character of this string is used as the fill character. The length of this string is not checked and fill-character is not translated. If the fill character is included, the remainder of the destination string (after the stop character) is filled with the specified fill character. If it is not included, the remainder of the destination string remains unchanged. 3 LIB$MULTF_DELTA_TIME The Multiply Delta Time by an F-Floating Scalar routine multiplies a delta time by an F-floating scalar. Format LIB$MULTF_DELTA_TIME multiplier ,delta-time 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments multiplier OpenVMS usage:floating_point type: F_floating access: read only mechanism: by reference The value by which LIB$MULTF_DELTA_TIME multiplies the delta time. The multiplier argument is the address of an F-floating value containing the scalar. If multiplier is negative, the absolute value of multiplier is used. delta-time OpenVMS usage:date_time type: quadword (unsigned) access: modify mechanism: by reference The delta time to be multiplied. The delta-time argument is the address of an unsigned quadword containing the number to be multiplied. The initial delta-time argument must be greater than 0. After LIB$MULTF_DELTA_TIME performs the multiplication, the result is returned to delta-time. (The original delta-time value is overwritten.) 3 LIB$MULT_DELTA_TIME The Multiply Delta Time by Scalar routine multiplies a delta time by a longword integer scalar. Format LIB$MULT_DELTA_TIME multiplier ,delta-time 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments multiplier OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference The value by which LIB$MULT_DELTA_TIME multiplies the delta time. The multiplier argument is the address of a signed longword containing the integer scalar. If multiplier is negative, the absolute value of multiplier is used. delta-time OpenVMS usage:date_time type: quadword (unsigned) access: modify mechanism: by reference The delta time to be multiplied. The delta-time argument is the address of an unsigned quadword containing the number to be multiplied. The initial delta-time argument must be greater than 0. After LIB$MULT_DELTA_TIME performs the multiplication, the result is returned to delta-time. (The original delta-time value is overwritten.) 3 LIB$PARSE_ACCESS_CODE (VAX only.) The Parse Access Encoded Name String routine parses and translates a string of access names into a mask for a particular ownership category. Format LIB$PARSE_ACCESS_CODE access-string, [access-names,] ownership-category, access-mask, [end-position] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments access-string OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor The address of a character-string descriptor pointing to a string of access names. Each access name is abbreviated to one letter. An example of a valid access string is RWE. Access names are specific to each of the different object classes. See the OpenVMS Guide to System Security for a complete list of all valid access names. access-names OpenVMS usage:access_names type: array [0..31] of quadword string descriptor access: read only mechanism: by reference The address of the access name table for the associated object class. For example, it is the value returned by the LIB$GET_ ACCNAM routine in the accnam longword. This parameter is optional and defaults to the access name table for the FILE object class. ownership-category OpenVMS usage:mask_word type: word (unsigned) access: read only mechanism: by reference The address of a word that indicates the ownership category the access names refer to: Ownership Category Mask Value System 0000000000001111 Owner 0000000011110000 Group 0000111100000000 World 1111000000000000 access-mask OpenVMS usage:mask_word type: word (unsigned) access: write only mechanism: by reference The address of a word into which this routine writes the access mask. In this mask, a set bit means the access was requested for the specified ownership. Note that this is the opposite of the standard protection format where a set bit means no access. end-position OpenVMS usage:word_signed type: word (signed) access: write only mechanism: by reference The number of characters from access-string processed by LIB$PARSE_ACCESS_CODE. In the case of an error in parsing the access string, the offset to the offending location is returned. 3 LIB$PARSE_SOGW_PROT (VAX only.) The Parse Protection String routine parses and translates a protection string into a protection mask. Format LIB$PARSE_SOGW_PROT protection-string, [access-names], protection-mask, ownership-mask, [end-position] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments protection-string OpenVMS usage:char_string type: character-coded text string access: read only mechanism: by descriptor The address of a character-string descriptor pointing to the protection string. The string components are: o Ownership name - System,Owner,Group,World. Ownership names can be specified in full or truncated to any number of characters. Matching is case blind, and spacing is ignored. o Access name - Access names are always abbreviated to one letter. For example, access names for files are R (for read), W (for write), E (for execute), and D (for delete). Any combination can be passed. For example, RWE is a valid combination. A null access name specification means no access. o Separators - Access names are separated from ownership names by either a colon (:) or an equal sign (=). The comma (,) is the list separator. A null access name specification means no access. An example of a valid protection string is: SYSTEM=RWED,OWNER:RWED,GROUP,WORLD:R access-names OpenVMS usage:access_names type: array [0..31] of quadword string descriptor access: read only mechanism: by reference The address of the access name table for the associated object class. For example, it is the value returned by the LIB$GET_ ACCNAM routine in the accnam longword. This parameter is optional and defaults to the access name table for the FILE object class. protection-mask OpenVMS usage:protection type: word (unsigned) access: write only mechanism: by reference The address of a word into which this routine writes a 16-bit protection mask translation of the protection string. Each bit set in the mask indicates no access for the access type it represents. ownership-mask OpenVMS usage:mask_word type: word (unsigned) access: write only mechanism: by reference The address of a word that indicates which ownership names were present in the protection string. Ownership Category Mask Value System 0000000000001111 Owner 0000000011110000 Group 0000111100000000 World 1111000000000000 end-position OpenVMS usage:word_signed type: word (signed) access: write only mechanism: by reference The number of characters from protection-string processed by LIB$PARSE_SOGW_PROT. In the case of an error in parsing the protection string, the offset to the offending location is returned. 3 LIB$PAUSE The Pause Program Execution routine suspends program execution and returns control to the calling command level. Format LIB$PAUSE 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments None. 3 LIB$POLYD The Evaluate Polynomials routine (D-floating values) allows higher-level language users to evaluate D-floating value polynomials. D-floating values are not supported in full precision in native OpenVMS Alpha programs. They are precise to 56 bits on VAX systems, 53 or 56 bits in translated VAX images, and 53 bits in native OpenVMS Alpha programs. Format LIB$POLYD polynomial-argument ,degree ,coefficient ,floating-point-result 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments polynomial-argument OpenVMS usage:floating_point type: D_floating access: read only mechanism: by reference The address of a D-floating number that is the argument for the polynomial. degree OpenVMS usage:word_signed type: word integer (signed) access: read only mechanism: by reference The address of a signed word integer that is the highest-numbered nonzero coefficient to participate in the evaluation. If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31. coefficient OpenVMS usage:floating_point type: D_floating access: read only mechanism: by reference, array reference The address of an array of D-floating coefficients. The coefficient of the highest-order term of the polynomial is the lowest-addressed element in the array. floating-point-result OpenVMS usage:floating_point type: D_floating access: write only mechanism: by reference The address of a floating-point number that is the result of the calculation. LIB$POLYD writes the address of floating-point- result into a D-floating number. Intermediate multiplications are carried out using extended floating-point fractions (63 bits for POLYD). 3 LIB$POLYF The Evaluate Polynomials routine (F-floating values) allows higher-level language users to evaluate F-floating polynomials. Format LIB$POLYF polynomial-argument ,degree ,coefficient ,floating-point-result 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments polynomial-argument OpenVMS usage:floating_point type: F_floating access: read only mechanism: by reference Argument for the polynomial. The polynomial-argument argument is the address of a floating-point number that contains this argument. The polynomial-argument argument is an F-floating number. degree OpenVMS usage:word_signed type: word (signed) access: read only mechanism: by reference Highest-numbered nonzero coefficient to participate in the evaluation. The degree argument is the address of a signed word integer that contains this highest-numbered coefficient. If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31. coefficient OpenVMS usage:floating_point type: F_floating access: read only mechanism: by reference, array reference The address of an array of floating-point coefficients. The coefficient of the highest-order term of the polynomial is the lowest addressed element in the array. The coefficient argument is an array of F-floating numbers. floating-point-result OpenVMS usage:floating_point type: F_floating access: write only mechanism: by reference Result of the calculation. The floating-point-result argument is the address of a floating-point number that contains this result. LIB$POLYF writes the address of floating-point-result into an F-floating number. Intermediate multiplications are carried out using extended floating-point fractions (31 bits for POLYF). 3 LIB$POLYG The Evaluate Polynomials routine (G-floating values) allows higher-level language users to evaluate G-floating value polynomials. Format LIB$POLYG polynomial-argument ,degree ,coefficient ,floating-point-result 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments polynomial-argument OpenVMS usage:floating_point type: G_floating access: read only mechanism: by reference Argument for the polynomial. The polynomial-argument argument is the address of a floating-point number that contains this argument. The polynomial-argument argument is a G-floating number. degree OpenVMS usage:word_signed type: word integer (signed) access: read only mechanism: by reference Highest-numbered nonzero coefficient to participate in the evaluation. The degree argument is the address of a signed word integer that contains this highest-numbered coefficient. If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31. coefficient OpenVMS usage:floating_point type: G_floating access: read only mechanism: by reference, array reference Floating-point coefficients. The coefficient argument is the address of an array of floating-point coefficients. The coefficient of the highest-order term of the polynomial is the lowest addressed element in the array. The coefficient argument is an array of G-floating numbers. floating-point-result OpenVMS usage:floating_point type: G_floating access: write only mechanism: by reference Result of the calculation. The floating-point-result argument is the address of a floating-point number that contains this result. LIB$POLYG writes the address of floating-point-result into a G-floating number. Intermediate multiplications are carried out using extended floating-point fractions (63 bits for POLYG). 3 LIB$POLYH On OpenVMS VAX systems, the Evaluate Polynomials routine (H- floating values) allows higher-level language users to evaluate H-floating value polynomials. This routine is not available to native OpenVMS Alpha programs but is available to translated VAX images. Format LIB$POLYH polynomial-argument ,degree ,coefficient ,floating-point-result 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments polynomial-argument OpenVMS usage:floating_point type: H_floating access: read only mechanism: by reference Argument for the polynomial. The polynomial-argument argument is the address of a floating-point number that contains this argument. The polynomial-argument argument is an H-floating number. degree OpenVMS usage:word_signed type: word integer (signed) access: read only mechanism: by reference Highest-numbered nonzero coefficient to participate in the evaluation. The degree argument is the address of a signed word integer that contains this highest-numbered coefficient. If the degree is 0, the result equals C[0]. The range of the degree is 0 to 31. coefficient OpenVMS usage:floating_point type: H_floating access: read only mechanism: by reference, array reference Floating-point coefficients. The coefficient argument is the address of an array of floating-point coefficients. The coefficient of the highest-order term of the polynomial is the lowest addressed element in the array. The coefficient argument is an array of H-floating numbers. floating-point-result OpenVMS usage:floating_point type: H_floating access: write only mechanism: by reference Result of the calculation. The floating-point-result argument is the address of a floating-point number that contains this result. LIB$POLYH writes the address of floating-point-result into an H-floating number. Intermediate multiplications are carried out using extended floating-point fractions (127 bits for POLYH). 3 LIB$PUT_COMMON The Put String to Common routine copies the contents of a string into the common area. The common area is an area of storage that remains defined across multiple image activations in a process. Optionally, LIB$PUT_COMMON returns the actual number of characters copied. The maximum number of characters that can be copied is 252. Format LIB$PUT_COMMON source-string [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string to be copied to the common area by LIB$PUT_COMMON. The source-string argument is the address of a descriptor pointing to this source string. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of characters copied by LIB$PUT_COMMON to the common area. The resultant-length argument is the address of an unsigned word integer that contains this number of characters. LIB$PUT_COMMON writes this number into the resultant-length argument. 3 LIB$PUT_INVO_REGISTERS (Alpha only.) The Put Invocation Registers routine modifies specified values in a procedure's invocation context. A procedure's invocation context consists of the values stored in the integer and floating-point registers as well as the program counter and the processor status registers. LIB$PUT_INVO_REGISTERS updates internal register save areas with the new values. These values are written to the active register set by the time control returns to the procedure asociated with the specified invocation handle. Format LIB$PUT_INVO_REGISTERS invo_handle, invo_context, invo_mask 4 Returns OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value Status value. A value of 1 indicates success. When the initial context represents the bottom of the call chain, a value of 0 is returned. 4 Arguments invo_handle OpenVMS usage:invo_handle type: longword (unsigned) access: read only mechanism: by value Handle for the invocation to be updated. invo_context OpenVMS usage:invo_context_blk type: structure access: read only mechanism: by reference Address of an invocation context block that contains the values to be written to the registers. Each register that is set in the invo_mask parameter is updated using the value found in the corresponding IREG or FREG field of the invocation context block. The program counter and processor status of the given invocation can also be updated in this way. No other fields of the invocation context block are used. invo_mask OpenVMS usage:mask_quadword type: quadword (unsigned) access: read only mechanism: by reference Address of a 64-bit vector, where each bit corresponds to a register field in the passed invo_context. Bits 0 through 29 correspond to IREG[0] through IREG[29], bit 30 corresponds to STACK_POINTER and cannot be changed, bit 31 corresponds to PROGRAM_COUNTER, bits 32 through 62 correspond to FREG[0] through FREG[30], and bit 63 corresponds to PROCESSOR_STATUS. 3 LIB$PUT_OUTPUT The Put Line to SYS$OUTPUT routine writes a record to the current controlling output device, specified by SYS$OUTPUT using the OpenVMS RMS $PUT service. Format LIB$PUT_OUTPUT message-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument message-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Message string written to the current controlling output device by LIB$PUT_OUTPUT. The message-string argument is the address of a descriptor pointing to this message string. RMS handles all formatting, so the message does not need to include such ASCII formatting instructions as carriage return (CR). 3 LIB$RADIX_POINT The Radix Point Symbol routine returns the system's radix point symbol. This symbol is used inside a digit string to separate the integer part from the fraction part. This routine works by attempting to translate the logical name SYS$RADIX_POINT as a process, group, or system logical name. Format LIB$RADIX_POINT radix-point-string [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments radix-point-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Radix point string. The radix-point-string argument is the address of a descriptor pointing to this radix point string. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference The number of characters written into radix-point-string, not counting padding in the case of a fixed-length string. The resultant-length argument is the address of an unsigned word that contains this number. If the radix-point-string argument is the address of a fixed- length string descriptor, there may not be enough characters in the fixed-length string to contain the whole radix point string, and the radix point string is truncated. If the radix point string is truncated to the size specified in a fixed- length string descriptor, resultant-length is set to this size. Therefore, resultant-length can always be used by the calling program to access a valid substring of radix-point-string. 3 LIB$REMQHI The Remove Entry from Head of Queue routine removes an entry from the head of the specified self-relative longword interlocked queue. LIB$REMQHI makes the REMQHI instruction available as a callable routine. Format LIB$REMQHI header ,remque-address [,retry-count] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments header OpenVMS usage:quadword_signed type: quadword integer (signed) access: modify mechanism: by reference Queue header specifying the queue from which entry will be removed. The header argument contains the address of this signed aligned quadword integer. The header argument must be initialized to zero before first use of the queue; zero means an empty queue. On Alpha systems, the header argument must contain a 32- bit address. A 64-bit address results in an illegal operand exception. remque-address OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Address of the removed entry. The remque-address argument is the address of an unsigned longword that contains this address. If the queue was empty, remque-address is set to the address of the header. On Alpha systems, the remque-address argument must contain a 32-bit address. A 64-bit address results in an illegal operand exception. retry-count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The number of times the operation is to be retried in case of secondary-interlock failure of the queue instruction in a processor-shared memory application. The retry-count argument is the address of a longword that contains the retry count value. A value of 1 causes no retries. The default value is 10. 3 LIB$REMQHIQ (Alpha only.) The Remove Entry from Head of Queue routine removes an entry from the head of the specified self-relative quadword interlocked queue. LIB$REMQHIQ makes the REMQHIQ instruction available as a callable routine. Format LIB$REMQHIQ header ,remque-address [,retry-count] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments header OpenVMS usage:octaword_signed type: octaword integer (signed) access: modify mechanism: by reference Queue header specifying the queue from which entry will be removed. The header argument contains the address of this signed aligned octaword integer. The header argument must be initialized to zero before first use of the queue; zero means an empty queue. remque-address OpenVMS usage:address type: quadword (unsigned) access: write only mechanism: by reference Address of the removed entry. The remque-address argument is the address of an unsigned quadword that contains this address. If the queue was empty, remque-address is set to the address of the header. retry-count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The number of times the operation is to be retried in case of secondary-interlock failure of the queue instruction in a processor-shared memory application. The retry-count argument is the address of a longword that contains the retry count value. A value of 1 causes no retries. The default value is 10. 3 LIB$REMQTI The Remove Entry from Tail of Queue routine removes an entry from the tail of the specified self-relative longword interlocked queue. LIB$REMQTI makes the REMQTI instruction available as a callable routine. Format LIB$REMQTI header ,remque-address [,retry-count] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments header OpenVMS usage:quadword_signed type: quadword integer (signed) access: modify mechanism: by reference Queue header specifying the queue from which the entry is to be deleted. The header argument contains the address of this signed aligned quadword integer. The header argument must be initialized to zero before first use of the queue; zero means an empty queue. On Alpha systems, the header argument must contain a 32-bit sign- extended address. An illegal operand exception occurs for any other form of address. remque-address OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Address of the removed entry. The remque-address argument is the address of a longword that contains this address. If the queue was empty, remque-address is set to the address of the header. On Alpha systems, the remque-address argument must contain a 32- bit sign-extended address. An illegal operand exception occurs for any other form of address. retry-count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The number of times the operation is to be retried in case of secondary-interlock failure of the queue instruction in a processor-shared memory application. The retry-count argument is the address of a longword that is this retry count value. A value of 1 causes no retries. The default value is 10. 3 LIB$REMQTIQ (Alpha only.) The Remove Entry from Tail of Queue routine removes an entry from the tail of the specified self-relative quadword interlocked queue. LIB$REMQTIQ makes the REMQTIQ instruction available as a callable routine. Format LIB$REMQTIQ header ,remque-address [,retry-count] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments header OpenVMS usage:octaword_signed type: octaword integer (signed) access: modify mechanism: by reference Queue header specifying the queue from which the entry is to be deleted. The header argument contains the address of this signed aligned octaword integer. The header argument must be initialized to zero before first use of the queue; zero means an empty queue. remque-address OpenVMS usage:address type: quadword (unsigned) access: write only mechanism: by reference Address of the removed entry. The remque-address argument is the address of a quadword that contains this address. If the queue was empty, remque-address is set to the address of the header. retry-count OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference The number of times the operation is to be retried in case of secondary-interlock failure of the queue instruction in a processor-shared memory application. The retry-count argument is the address of a longword that is this retry count value. A value of 1 causes no retries. The default value is 10. 3 LIB$RENAME_FILE The Rename One or More Files routine changes the names of one or more files. The specification of the files to be renamed can include wildcards. LIB$RENAME_FILE is similar in function to the DCL command RENAME. Format LIB$RENAME_FILE old-filespec ,new-filespec [,default-filespec] [,related-filespec] [,flags] [,user-success-procedure] [,user-error-procedure] [,user-confirm-procedure] [,user-specified-argument] [,old-resultant-name] [,new-resultant-name] [,file-scan-context] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments old-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File specification of the files to be renamed. The old-filespec argument is the address of a descriptor pointing to the old file specification. The specification may include wildcards, in which case each file that matches the specification will be renamed. The string must not contain more than 255 characters. Any string class is supported. new-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File specification for the new file names. The new-filespec argument is the address of a descriptor pointing to the new file specification. This specification need not be complete; fields omitted or specified by using the wildcard character (*) will be filled in from the existing file's name using the same rules as for the DCL command RENAME. The string must not contain more than 255 characters. Any string class is supported. default-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Default file specification of the files to be renamed. The default-filespec argument is the address of a descriptor pointing to the default file specification. This is an optional argument; if omitted, the default is the null string. See the OpenVMS Record Management Services Reference Manual for information on default file specifications. The string must not contain more than 255 characters. Any string class is supported. related-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Related file specification of the files to be renamed. The related-filespec argument is the address of a descriptor pointing to the related file specification. This is an optional argument; if omitted, the default is the null string. Any string class is supported. Input file parsing is used. (See the OpenVMS Record Management Services Reference Manual for information on related file specifications and input file parsing.) The related file specification is useful when you are processing lists of file specifications. Unspecified portions of the file specification are inherited from the last file processed. Any string class is supported. This is an optional argument. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Longword of flag bits designating optional behavior. The flags argument is the address of an unsigned longword containing the flag bits. This is an optional argument; if omitted, the default is that all flags are clear. The bit number and its meaning are as follows: Action if Bit Description Set Action if Clear 0 If new- The current The file is given a version filespec version number 1 higher than any does not number of previously existing file of the specify a the file is same file name and file type. version used. This is the default action. number, this flag controls whether a new version number for the output file is to be assigned. If a file already exists with the same file name, type and version number, the error RMS$_FEX is given. This flag is equivalent to the /NONEW_VERSION qualifier of the DCL command RENAME. 1 Controls The The file's security attributes whether the attributes are not changed; this is the renamed file of the default action. takes on renamed security file are attributes inherited of the new from the location or next lower keeps its version existing of the new security file name, attributes. if any, the new parent directory, or both. For more information on file security, see the OpenVMS Guide to System Security. This flag is equivalent to the /INHERIT_ SECURITY qualifier of the DCL command RENAME. user-success-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied success routine that LIB$RENAME_FILE calls after each successful rename. user-error-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied error routine that LIB$RENAME_FILE calls when it detects an error. The value returned by the error routine determines whether LIB$RENAME_FILE processes more files. user-confirm-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied confirm routine that LIB$RENAME_FILE calls before it renames a file. The value returned by the confirm routine determines whether or not LIB$RENAME_FILE renames the file. The confirm routine can be used to select specific files for renaming based on criteria such as expiration date, size, and so on. user-specified-argument OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Value that LIB$RENAME_FILE passes to the success, error, and confirm routines each time they are called. Whatever mechanism is used to pass user-specified-argument to LIB$RENAME_FILE is also used to pass it to the user-supplied routines. This is an optional argument; if omitted, zero is passed by value. old-resultant-name OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String into which LIB$RENAME_FILE copies the old resultant file specification of the last file processed. This is an optional argument. If present, it is used to store the file specification passed to the user-supplied routines instead of a default class S, type T string. Any string class is supported. If you are specifying one or more of the action routine arguments, be sure that the descriptor class used to pass resultant-name is the same as the descriptor class required by the action routine. For example, VAX Ada requires a class SB descriptor for string arguments to Ada routines, but will use a class A descriptor by default when calling external routines. Refer to your language manual to determine the proper descriptor class to use. new-resultant-name OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor String into which LIB$RENAME_FILE writes the new OpenVMS RMS resultant file specification of the last file processed. The new- resultant-name argument is the address of a descriptor pointing to the new name. This is an optional argument. If present, it is used to store the file specification passed to the user-supplied routines instead of a class S, type T string. Any string class is supported. If you are specifying one or more of the action routine arguments, be sure that the descriptor class used to pass resultant-name is the same as the descriptor class required by the action routine. For example, VAX Ada requires a class SB descriptor for string arguments to Ada routines, but will use a class A descriptor by default when calling external routines. Refer to your language manual to determine the proper descriptor class to use. file-scan-context OpenVMS usage:context type: longword (unsigned) access: modify mechanism: by reference Context for renaming a list of file specifications. The file- scan-context is the address of a longword that contains this context. You must initialize this longword to zero before the first of a series of calls to LIB$RENAME_FILE. LIB$RENAME_ FILE uses the file scan context to retain the file context for multiple input files. LIB$FILE_SCAN uses this context to retain multiple input file related file context. This is an optional argument; it need only be specified if you are using multiple input files, as the DCL command RENAME does. You may deallocate the context allocated by LIB$FILE_SCAN while processing the LIB$RENAME_FILE requests by calling LIB$FILE_SCAN_END after all calls to LIB$RENAME_FILE have been completed. See the description of LIB$FILE_SCAN for a more detailed description of this argument. 3 LIB$RESERVE_EF The Reserve Event Flag routine allocates a local event flag number specified by event-flag-number. Format LIB$RESERVE_EF event-flag-number 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument event-flag-number OpenVMS usage:ef_number type: longword (unsigned) access: read only mechanism: by reference Event flag number to be allocated by LIB$RESERVE_EF. The event- flag-number argument contains the address of a signed longword integer that is this event flag number. 3 LIB$RESET_VM_ZONE The Reset Virtual Memory Zone routine frees all blocks of memory that were previously allocated from a zone in the 32-bit virtual address space. Format LIB$RESET_VM_ZONE zone-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument zone-id OpenVMS usage:identifier type: longword (unsigned) access: read only mechanism: by reference Zone identifier. The zone-id is the address of a longword that contains the identifier of a zone created by a previous call to LIB$CREATE_VM_ZONE or LIB$CREATE_USER_VM_ZONE. 3 LIB$RESET_VM_ZONE_64 (Alpha only.) The Reset Virtual Memory Zone routine frees all blocks of memory that were previously allocated from a zone in the 64-bit virtual address space. Format LIB$RESET_VM_ZONE_64 zone-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument zone-id OpenVMS usage:identifier type: quadword (unsigned) access: read only mechanism: by reference Zone identifier. The zone-id is the address of a quadword that contains the identifier of a zone created by a previous call to LIB$CREATE_VM_ZONE_64 or LIB$CREATE_USER_VM_ZONE_64. 3 LIB$REVERT The Revert to the Handler of the Routine Activator routine deletes the condition handler established by LIB$ESTABLISH by clearing the address pointing to the condition handler from the activated routine's stack frame. This routine is not available to native OpenVMS Alpha programs but is recognized and handled appropriately by most Digital high- level language compilers. Format LIB$REVERT 4 Returns OpenVMS usage:address type: address access: write only mechanism: by value Previous contents of SF$A_HANDLER (longword 0) of the caller's stack frame. This is the address of the condition handler previously in effect. If no condition handler was in effect, zero is returned. 4 Arguments None. 3 LIB$RUN_PROGRAM The Run New Program routine causes the current program to stop running and begins execution of another program. Format LIB$RUN_PROGRAM program-name 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument program-name OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File name of the program to be run in place of the current program. The program-name argument contains the address of a descriptor pointing to this file name string. The maximum length of the file name is 255 characters. The default file type is .EXE. 3 LIB$SCANC The Scan for Characters and Return Relative Position routine is used to find a specified set of characters in the source string. LIB$SCANC makes the VAX SCANC instruction available as a callable routine. Format LIB$SCANC source-string ,table-array ,byte-integer-mask 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value Relative position in the source string of the character that terminated the operation, or zero if the terminator character is not found. If the source string has a zero length, then a zero is returned. 4 Arguments source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string used by LIB$SCANC to index into a table. The source-string argument contains the address of a descriptor pointing to this source string. table-array OpenVMS usage:vector_mask_byte type: byte (unsigned) access: read only mechanism: by reference, array reference Table that LIB$SCANC indexes into and performs a logical AND operation with the byte-integer-mask byte. The table-array argument contains the address of an unsigned byte array that is this table. byte-integer-mask OpenVMS usage:mask_byte type: byte (unsigned) access: read only mechanism: by reference Mask on which a logical AND operation is performed with bytes in table-array. The byte-integer-mask argument contains the address of an unsigned byte that is this mask. 3 LIB$SCOPY_DXDX The Copy Source String Passed by Descriptor to Destination routine copies a source string passed by descriptor to a destination string. Format LIB$SCOPY_DXDX source-string ,destination-string 4 Corresponding_JSB_Entry_Point LIB$SCOPY_DXDX6 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string to be copied to the destination string by LIB$SCOPY_DXDX. The source-string argument contains the address of a descriptor pointing to this source string. The descriptor class can be unspecified, fixed-length, decimal string, array, noncontiguous array, varying, or dynamic. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string to which the source string is copied. The destination-string argument contains the address of a descriptor pointing to this destination string. The following actions occur depending on the class of the destination string's descriptor: Descriptor Class Action S, Z, SD, A, Copy the source string. If needed, space-fill or NCA truncate on the right. D If the area specified by the destination descriptor is large enough to contain the source string, copy the source string and set the new length in the destination descriptor. If the area specified is not large enough, return the previous space allocation (if any) and then dynamically allocate the amount of space needed. Copy the source string and set the new length and address in the destination descriptor. VS Copy source string to destination string up to the limit of the descriptor MAXSTRLEN field with no padding. Readjust the current length (CURLEN) field to the actual number of bytes copied. 3 LIB$SCOPY_R_DX The Copy Source String Passed by Reference to Destination String routine copies a source string passed by reference to a destination string, passed by descriptor. Format LIB$SCOPY_R_DX word-integer-source-length ,source-string ,destination-string 4 Corresponding_JSB_Entry_Point LIB$SCOPY_R_DX6 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments word-integer-source-length OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Length of the source string in bytes. The word-integer-source- length argument is the address of an unsigned word that contains the length of the source string. source-string OpenVMS usage:char_string type: character string access: read only mechanism: by reference Source string to be copied to the destination string by LIB$SCOPY_R_DX. The source-string argument is the address of this source string. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string to which the source string is copied. The destination-string argument contains the address of a descriptor pointing to this destination string. 3 LIB$SCOPY_R_DX_64 (Alpha only.) The Copy Source String Passed by Reference to Destination String routine copies a source string passed by reference to a destination string, passed by descriptor. Format LIB$SCOPY_R_DX_64 quad-integer-source-length ,source-string ,destination-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments quad-integer-source-length OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: read only mechanism: by reference Length of the source string in bytes. The quad-integer-source- length argument is the address of an unsigned quadword that contains the length of the source string. source-string OpenVMS usage:char_string type: character string access: read only mechanism: by reference Source string to be copied to the destination string by LIB$SCOPY_R_DX_64. The source-string argument is the address of this source string. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string to which the source string is copied. The destination-string argument contains the address of a descriptor pointing to this destination string. 3 LIB$SET_LOGICAL The Set Logical Name routine requests the calling process's command language interpreter (CLI) to define or redefine a supervisor-mode process logical name. It provides the same function as the DCL command DEFINE. Format LIB$SET_LOGICAL logical-name [,value-string] [,table] [,attributes] [,item-list] Either the item-list or value-string argument must be specified. If both item-list and value-string are specified, the value-string argument is ignored. 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments logical-name OpenVMS usage:logical_name type: character string access: read only mechanism: by descriptor Logical name to be defined or redefined. The logical-name argument contains the address of a descriptor pointing to this logical name string. The maximum length of a logical name is 255 characters. Note that logical names are case sensitive. value-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Value to be given to the logical name. The value-string argument contains the address of a descriptor pointing to this value string. The maximum length of a logical name value is 255 characters. If omitted, an item list must be present to specify the values of the logical name. table OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name of the table in which to create the logical name. The table argument contains the address of a descriptor pointing to the logical name table. If no table is specified, LNM$PROCESS is used as the default. attributes OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Logical name or translation attributes. The attributes argument is the address of a longword bit mask that contains the logical name or translation attributes. LNM$M_CONFINE and LNM$M_NO_ALIAS are currently available logical name attributes. See the description of the $CRELNM system service in the OpenVMS System Services Reference Manual for definitions of LNM$M_CONFINE and LNM$M_NO_ALIAS. If omitted, no special logical name attribute is established. If no item-list is specified, the translation attributes LNM$M_CONCEALED and LNM$M_TERMINAL may be specified. See the description of the ASSIGN command in the OpenVMS DCL Dictionary for definitions of these attributes. If an item-list is specified, it will contain the translation attributes for each equivalence string in the attribute. item-list OpenVMS usage:item_list_3 type: unspecified access: read only mechanism: by reference, array reference Item list describing the equivalence names for this logical name. The item-list argument contains the address of an array that contains this item list. If item-list is not specified, the logical name will have only one value, as specified in the value-string argument. Item codes for use with this item list are included in Digital-supplied libraries in module $LNMDEF. Either value-string or item-list must be specified. If neither is specified, the LIB$_INVARG error is produced. If both value- string and item-list are specified, the value-string argument is ignored. If item-list is specified, only logical name attributes are permitted. Translation attributes appear in the item list. The item-list argument is needed only when you want to create multiple equivalence strings for a single logical name. 3 LIB$SET_SYMBOL The Set Value of CLI Symbol routine requests the calling process's command language interpreter (CLI) to define or redefine a CLI symbol. Format LIB$SET_SYMBOL symbol ,value-string [,table-type-indicator] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments symbol OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Name of the symbol to be defined or modified by LIB$SET_SYMBOL. The symbol argument is the address of a descriptor pointing to this symbol string. If you redefine a previously defined CLI symbol, the symbol value is modified to the new value that you provide. The symbol name is converted to uppercase and trailing blanks are removed before use. The symbol argument must begin with a letter, a digit, a dollar sign ($), a hyphen (-), or an underscore (_). The maximum length of symbol is 255 characters. value-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Value to be given to the symbol. The value-string argument is the address of a descriptor pointing to this value string. Trailing blanks are not removed from the value string before use. The maximum length of value-string is 1024 characters. Integer values are not allowed; LIB$SET_SYMBOL is intended to set string CLI symbols, not integer CLI symbols. table-type-indicator OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Indicator of the table that will contain the defined symbol. The table-type-indicator argument is the address of a signed longword integer that is this table indicator. If omitted, the local symbol table is used. The following are possible values for table-type-indicator: Symbolic Name Value Table Used LIB$K_CLI_LOCAL_ 1 Local symbol table SYM LIB$K_CLI_GLOBAL_ 2 Global symbol table SYM 3 LIB$SFREE1_DD The Free One Dynamic String routine returns the dynamically allocated storage for a dynamic string. Format LIB$SFREE1_DD descriptor-address 4 Corresponding_JSB_Entry_Point LIB$SFREE1_DD6 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument descriptor-address OpenVMS usage:descriptor type: quadword (unsigned) access: modify mechanism: by reference Dynamic descriptor specifying the area to be deallocated. The descriptor-address argument is the address of an unsigned quadword that is this descriptor. The descriptor is assumed to be dynamic and its class field is not checked. 3 LIB$SFREEN_DD The Free One or More Dynamic Strings routine returns one or more dynamic strings to free storage. Format LIB$SFREEN_DD number-of-descriptors ,first-descriptor-array 4 Corresponding_JSB_Entry_Point LIB$SFREEN_DD6 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments number-of-descriptors OpenVMS usage:longword_unsigned type: longword (unsigned) access: read only mechanism: by reference Number of adjacent descriptors freed by LIB$SFREEN_DD. The number-of-descriptors argument contains the address of an unsigned longword that is this number. The deallocated area is returned to free storage. first-descriptor-array OpenVMS usage:descriptor_array type: quadword (unsigned) access: modify mechanism: by reference, array reference First descriptor of an array of descriptors. The first- descriptor-array argument contains the address of this first descriptor. The descriptors are assumed to be dynamic, and their class fields are not checked. The descriptor array must contain all 32-bit descriptors or all 64-bit descriptors. They cannot be mixed. 3 LIB$SGET1_DD The Get One Dynamic String routine allocates dynamic virtual memory to the string descriptor you specify. Format LIB$SGET1_DD word-integer-length ,descriptor-part 4 Corresponding_JSB_Entry_Point LIB$SGET1_DD_R6 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments word-integer-length OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Number of bytes of dynamic virtual memory to be allocated by LIB$SGET1_DD. The word-integer-length argument is the address of an unsigned word that contains this number. The amount of storage allocated may be rounded up automatically. descriptor-part OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: write only mechanism: by reference Descriptor of the dynamic string to which LIB$SGET1_DD allocates the dynamic virtual memory. The descriptor-part argument contains the address of this descriptor. The descriptor-part argument must contain the address of a dynamic string descriptor; LIB$SGET1_DD returns an unpredictable result if any other type of descriptor is specified by this argument. The descriptor CLASS field is not checked but is set to dynamic (2). The LENGTH field is set to word-integer-length, and the POINTER field points to the string area allocated. 3 LIB$SGET1_DD_64 (Alpha only.) The Get One Dynamic String routine allocates dynamic virtual memory to the string descriptor you specify. Format LIB$SGET1_DD_64 quad-integer-length ,descriptor-part 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments quad-integer-length OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: read only mechanism: by reference Number of bytes of dynamic virtual memory to be allocated by LIB$SGET1_DD_64. The quad-integer-length argument is the address of an unsigned quadword that contains this number. The amount of storage allocated can be rounded up automatically. descriptor-part OpenVMS usage:quadword_unsigned type: quadword (unsigned) access: write only mechanism: by reference Descriptor of the dynamic string to which LIB$SGET1_DD_64 allocates the dynamic virtual memory. The descriptor-part argument contains the address of this descriptor. The descriptor-part argument must contain the address of a dynamic string descriptor; LIB$SGET1_DD_64 returns an unpredictable result if any other type of descriptor is specified by this argument. The descriptor CLASS field is not checked but is set to dynamic (2). The LENGTH field is set to quad-integer-length, and the POINTER field points to the string area allocated. 3 LIB$SHOW_TIMER The Show Accumulated Times and Counts routine returns times and counts accumulated since the last call to LIB$INIT_TIMER and displays them on SYS$OUTPUT. (LIB$INIT_TIMER must be called prior to invoking this routine.) A user-supplied action routine may change this default behavior. Format LIB$SHOW_TIMER [handle-address] [,code] [,user-action-procedure] [,user-argument-value] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments handle-address OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference Block of storage containing the value returned by a previous call to LIB$INIT_TIMER. The handle-address argument is the address of an unsigned longword integer containing that value. o If specified, the pointer must be the same value returned by a previous call to LIB$INIT_TIMER. o If omitted, LIB$SHOW_TIMER will use a block of memory allocated by LIB$INIT_TIMER. o If handle-address is omitted and LIB$INIT_TIMER has not been called previously, the error LIB$_INVARG is returned. LIB$INIT_TIMER must be called prior to a call to LIB$SHOW_ TIMER. LIB$SHOW_TIMER assumes that LIB$INIT_TIMER has been previously called, and that the results of that call are stored either in a block pointed to by handle-address, or in the memory allocated by LIB$INIT_TIMER. code OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference Integer specifying the statistic you want; if it is omitted or zero, all five statistics are returned on one line. The code argument is the address of a signed longword integer containing the statistic code. The following values are allowed for the code argument: Value Description 1 Elapsed time 2 CPU time 3 Buffered I/O 4 Direct I/O 5 Page faults user-action-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied action routine called by LIB$SHOW_TIMER. The default action of LIB$SHOW_TIMER is to write the results to SYS$OUTPUT. An action routine is useful if you want to write the results to a file or, in general, anywhere other than SYS$OUTPUT. The action routine returns either a success or failure condition value; this status is returned to the calling program as the value of LIB$SHOW_TIMER. user-argument-value OpenVMS user_arg usage: type: longword (unsigned) (on VAX and Alpha systems) quadword (unsigned) (on Alpha systems) access: read only mechanism: by reference A value to be passed to the action routine without interpretation. If omitted, LIB$SHOW_TIMER passes a zero by value to the user routine. 3 LIB$SHOW_VM The Show Virtual Memory Statistics routine returns the statistics accumulated from calls to LIB$GET_VM/LIB$FREE_VM and LIB$GET_VM_ PAGE/LIB$FREE_VM_PAGE. Format LIB$SHOW_VM [code] [,user-action-procedure] [,user-specified-argument] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments code OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Code specifying any one of the statistics to be written to SYS$OUTPUT or passed to an action routine for processing. The code argument is the address of a signed longword integer containing the statistic code. This is an optional argument. If the statistic code is omitted or is zero, statistics for values 1, 2, and 3 are returned on one line. The following values are allowed for the code argument: Value Statistic 0 Statistics for values 1, 2, and 3 are returned. 1 Number of successful calls to LIB$GET_VM. 2 Number of successful calls to LIB$FREE_VM. 3 Number of bytes allocated by LIB$GET_VM but not yet deallocated by LIB$FREE_VM. 4 Statistics for values 5, 6, and 7 are returned. 5 Number of calls to LIB$GET_VM_PAGE. 6 Number of calls to LIB$FREE_VM_PAGE. 7 Number of VAX pages or Alpha pagelets allocated by LIB$GET_ VM_PAGE but not yet deallocated by LIB$FREE_VM_PAGE. user-action-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied action routine called by LIB$SHOW_VM. By default, LIB$SHOW_VM returns statistics to SYS$OUTPUT. An action routine is useful when you want to return statistics to a file or, in general, to any place other than SYS$OUTPUT. The routine returns either a success or failure condition value, which will be returned as the value of LIB$SHOW_VM. user-specified-argument OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value A 32-bit value to be passed directly to the action routine without interpretation. That is, the contents of the argument list entry user-specified-argument are copied to the argument list entry for user-action-procedure. 3 LIB$SHOW_VM_64 (Alpha only.) The Show Virtual Memory Statistics routine returns the statistics accumulated from calls to LIB$GET_VM_64/LIB$FREE_ VM_64 and LIB$GET_VM_PAGE_64/LIB$FREE_VM_PAGE_64. Format LIB$SHOW_VM_64 [code] [,user-action-procedure] [,user-specified-argument] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments code OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Code specifying any one of the statistics to be written to SYS$OUTPUT or passed to an action routine for processing. The code argument is the address of a signed quadword integer containing the statistic code. This is an optional argument. If the statistic code is omitted or is zero, statistics for values 1, 2, and 3 are returned on one line. The following values are allowed for the code argument: Value Statistic 0 Statistics for values 1, 2, and 3 are returned. 1 Number of successful calls to LIB$GET_VM_64. 2 Number of successful calls to LIB$FREE_VM_64. 3 Number of bytes allocated by LIB$GET_VM_64 but not yet deallocated by LIB$FREE_VM_64. 4 Statistics for values 5, 6, and 7 are returned. 5 Number of calls to LIB$GET_VM_PAGE_64. 6 Number of calls to LIB$FREE_VM_PAGE_64. 7 Number of Alpha pagelets allocated by LIB$GET_VM_PAGE_64 but not yet deallocated by LIB$FREE_VM_PAGE_64. user-action-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied action routine called by LIB$SHOW_VM_64. By default, LIB$SHOW_VM_64 returns statistics to SYS$OUTPUT. An action routine is useful when you want to return statistics to a file or, in general, to any place other than SYS$OUTPUT. The routine returns either a success or failure condition value, which will be returned as the value of LIB$SHOW_VM_64. user-specified-argument OpenVMS usage:user_arg type: quadword (unsigned) access: read only mechanism: by value A 64-bit value to be passed directly to the action routine without interpretation. That is, the contents of the argument list entry user-specified-argument are copied to the argument list entry for user-action-procedure. 3 LIB$SHOW_VM_ZONE The Return Information About a Zone routine returns formatted information about a zone in the 32-bit virtual address space, detailing such information as the zone's name, characteristics, and areas, and then passes the information to the specified or default action routine. Format LIB$SHOW_VM_ZONE zone-id [,detail-level] [,user-action-procedure] [,user-arg] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments zone-id OpenVMS usage:identifier type: longword (unsigned) access: read only mechanism: by reference Zone identifier. The zone-id argument is the address of an unsigned longword containing this identifier. Use zero to indicate the 32-bit default zone. detail-level OpenVMS usage:longword_signed type: longword (signed) access: read only mechanism: by reference An identifier code specifying the level of detail required by the user. The detail-level argument is the address of a signed longword containing this code. The default is minimal information. The following are valid values for detail-level: 0 zone-id and name 1 zone-id, name, algorithm, flags, and size information 2 zone-id, name, algorithm, flags, size information, cache information, and area summary 3 zone-id, name, algorithm, flags, size information, cache information, area summary, and queue validation user-action-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value Optional user-supplied action routine called by LIB$SHOW_VM_ZONE. By default, LIB$SHOW_VM_ZONE prints statistics to SYS$OUTPUT by means of LIB$PUT_OUTPUT. An action routine is useful when you want to return statistics to a file or, in general, to any location other than SYS$OUTPUT. If user-action-procedure fails, LIB$SHOW_VM_ZONE terminates and returns a failure code. Success codes are ignored. user-arg OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value Optional 32-bit value to be passed directly to the action routine without interpretation. That is, the contents of the argument list entry user-arg are copied to the argument list entry for user-action-procedure. 3 LIB$SHOW_VM_ZONE_64 (Alpha only.) The Return Information About a Zone routine returns formatted information about a zone in the 64-bit virtual address space, detailing such information as the zone's name, characteristics, and areas, and then passes the information to the specified or default action routine. Format LIB$SHOW_VM_ZONE_64 zone-id [,detail-level] [,user-action-procedure] [,user-arg] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments zone-id OpenVMS usage:identifier type: quadword (unsigned) access: read only mechanism: by reference Zone identifier. The zone-id argument is the address of an unsigned quadword containing this identifier. Use zero to indicate the 64-bit default zone. detail-level OpenVMS usage:quadword_signed type: quadword (signed) access: read only mechanism: by reference An identifier code specifying the level of detail required by the user. The detail-level argument is the address of a signed quadword containing this code. The default is minimal information. The following are valid values for detail-level: 0 zone-id and name 1 zone-id, name, algorithm, flags, and size information 2 zone-id, name, algorithm, flags, size information, cache information, and area summary 3 zone-id, name, algorithm, flags, size information, cache information, area summary, and queue validation user-action-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value Optional user-supplied action routine called by LIB$SHOW_VM_ ZONE_64. By default, LIB$SHOW_VM_ZONE_64 prints statistics to SYS$OUTPUT by means of LIB$PUT_OUTPUT. An action routine is useful when you want to return statistics to a file or, in general, to any location other than SYS$OUTPUT. If user-action- procedure fails, LIB$SHOW_VM_ZONE_64 terminates and returns a failure code. Success codes are ignored. user-arg OpenVMS usage:user_arg type: quadword (unsigned) access: read only mechanism: by value Optional 64-bit value to be passed directly to the action routine without interpretation. That is, the contents of the argument list entry user-arg are copied to the argument list entry for user-action-procedure. 3 LIB$SIGNAL The Signal Exception Condition routine generates a signal that indicates that an exception condition has occurred in your program. If a condition handler does not take corrective action and the condition is severe, then your program will exit. Format LIB$SIGNAL condition-value [,condition-argument...] [,condition-value-n [,condition-argument-n...]...] 4 Returns None. 4 Arguments condition-value OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by value OpenVMS 32-bit condition value. The condition-value argument is an unsigned longword that contains this condition value. The OpenVMS Programming Concepts Manual explains the format of an OpenVMS condition value. condition-argument OpenVMS usage:varying_arg type: unspecified access: read only mechanism: by value As many arguments as are required to process the exception specified by condition-value. Note that these arguments are also used as FAO (formatted ASCII output) arguments to format a message. The OpenVMS Programming Concepts Manual explains the message format. condition-value-n OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by value OpenVMS 32-bit condition value. The optional condition-value-n argument is an unsigned longword that contains this condition value. The calling routine can specify additional conditions to be processed by specifying condition-value-2 through condition- value-n, with each condition value followed by any arguments required to process the condition specified. However, the total number of arguments in the call to LIB$SIGNAL must not exceed 253. The OpenVMS Programming Concepts Manual explains the format of an OpenVMS condition value. condition-argument-n OpenVMS usage:varying_arg type: unspecified access: read only mechanism: by value As many arguments as are required to create the message reporting the exception specified by condition-value-n. The OpenVMS Programming Concepts Manual explains the message format. 3 LIB$SIG_TO_RET The Signal Converted to a Return Status routine converts any signaled condition value to a value returned as a function. The signaled condition is returned to the caller of the user routine that established the handler that is calling LIB$SIG_TO_RET. This routine may be established as or called from a condition handler. Format LIB$SIG_TO_RET signal-arguments ,mechanism-arguments 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments signal-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: read only mechanism: by reference, array reference Signal argument vector. The signal-arguments argument contains the address of an array that is this signal argument vector stack. See the OpenVMS Programming Concepts Manual for a description of the signal argument vector. mechanism-arguments OpenVMS usage:structure type: unspecified access: read only mechanism: by reference Mechanism arguments vector. The mechanism-arguments argument contains the address of a structure that is this mechanism argument vector stack. See the OpenVMS Programming Concepts Manual for a description of the mechanism argument vector. 3 LIB$SIG_TO_STOP The Convert a Signaled Condition to a Signaled Stop routine converts a signaled condition to a signaled condition that cannot be continued. Format LIB$SIG_TO_STOP signal-arguments ,mechanism-arguments 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments signal-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: modify mechanism: by reference, array reference Signal argument vector. The signal-arguments argument contains the address of an array that is this signal argument vector stack. See the OpenVMS Programming Concepts Manual for a description of the signal argument vector. mechanism-arguments OpenVMS usage:structure type: unspecified access: read only mechanism: by reference Mechanism argument vector. The mechanism-arguments argument contains the address of a structure that is this mechanism argument vector stack. See the OpenVMS Programming Concepts Manual for a description of the mechanism argument vector. 3 LIB$SIM_TRAP The Simulate Floating Trap routine converts floating faults to floating traps. It can be enabled as a condition handler or can be called by one. This routine is not available to native OpenVMS Alpha programs but is available to translated VAX images. Format LIB$SIM_TRAP signal-arguments ,mechanism-arguments 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments signal-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: modify mechanism: by reference, array reference Signal argument vector. The signal-arguments argument contains the address of an array that is this signal argument vector stack. See the OpenVMS Programming Concepts Manual for a description of the signal argument vector. mechanism-arguments OpenVMS usage:vector_longword_unsigned type: unspecified access: read only mechanism: by reference, array reference Mechanism argument vector. The mechanism-arguments argument contains the address of an array that is this mechanism argument vector stack. See the OpenVMS Programming Concepts Manual for a description of the mechanism argument vector. 3 LIB$SKPC The Skip Equal Characters routine compares each character of a given string with a given character and returns the relative position of the first nonequal character as an index. LIB$SKPC makes the VAX SKPC instruction available as a callable routine. Format LIB$SKPC character-string ,source-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value The relative position in the source string of the first unequal character. LIB$SKPC returns a zero if the source string was of zero length or if every character in source-string was equal to character-string. 4 Arguments character-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor String whose initial character is to be used by LIB$SKPC in the comparison. The character-string argument contains the address of a descriptor pointing to this string. Only the first character of character-string is used, and the length of character-string is not checked. source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor String to be searched by LIB$SKPC. The source-string argument contains the address of a descriptor pointing to this string. 3 LIB$SPANC The Skip Selected Characters routine is used to skip a specified set of characters in the source string. LIB$SPANC makes the VAX SPANC instruction available as a callable routine. Format LIB$SPANC source-string ,table-array ,byte-integer-mask 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value The relative position in the source string of the character that terminated the operation is returned if such a character is found. Otherwise, zero is returned. If the source string has a zero length, then a zero is returned. 4 Arguments source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string used by LIB$SPANC to index into table-array. The source-string argument contains the address of a descriptor pointing to this source string. table-array OpenVMS usage:vector_mask_byte type: byte (unsigned) access: read only mechanism: by reference, array reference Table that LIB$SPANC indexes into and performs an AND operation with the byte-integer-mask byte. The table-array argument contains the address of an unsigned byte array that is this table. byte-integer-mask OpenVMS usage:mask_byte type: byte (unsigned) access: read only mechanism: by reference Mask that an AND operation is performed with bytes in table- array. The byte-integer-mask argument contains the address of an unsigned byte that is this mask. 3 LIB$SPAWN The Spawn Subprocess routine requests the command language interpreter (CLI) of the calling process to spawn a subprocess for executing CLI commands. LIB$SPAWN provides the same function as the DCL command SPAWN. Format LIB$SPAWN [command-string] [,input-file] [,output-file] [,flags] [,process-name] [,process-id] [,completion-status-address] [,byte-integer-event-flag-num] [,AST-address] [,varying-AST-argument] [,prompt-string] [,cli] [,table] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments command-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor CLI command to be executed by the spawned subprocess. The command-string argument is the address of a descriptor pointing to this CLI command string. If command-string is omitted, commands are taken from the file specified by input-file. input-file OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Equivalence name to be associated with the logical name SYS$INPUT in the logical name table for the subprocess. The input- file argument is the address of a descriptor pointing to this equivalence string. If input-file is omitted, the default is the caller's SYS$INPUT. output-file OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Equivalence name to be associated with the logical names SYS$OUTPUT and SYS$ERROR in the logical name table for the subprocess. The output-file argument is the address of a descriptor pointing to this equivalence string. If output-file is omitted, the default is the caller's SYS$OUTPUT. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Flag bits that designate optional behavior. The flags argument is the address of an unsigned longword that contains these flag bits. By default, all flags are clear. These flags are defined as follows: Bit Symbol Meaning 0 NOWAIT If this bit is set, the calling process continues executing in parallel with the subprocess. If this bit is clear, the calling process hibernates until the subprocess completes. 1 NOCLISYM If this bit is set, the spawned subprocess does not inherit CLI symbols from its caller. If this bit is clear, the subprocess inherits all currently defined CLI symbols. You may want to specify NOCLISYM to help prevent commands redefined by symbol assignments from affecting the spawned commands. 2 NOLOGNAM If this bit is set, the spawned subprocess does not inherit process logical names from its caller. If this bit is clear, the subprocess inherits all currently defined process logical names. You may want to specify NOLOGNAM to help prevent commands redefined by logical name assignments from affecting the spawned commands. 3 NOKEYPAD If this bit is set, the keypad symbols and state are not passed to the subprocess. If this bit is not set, the keypad settings are passed to the subprocess. 4 NOTIFY If this bit is set, a message is broadcast to SYS$OUTPUT when the subprocess completes or aborts. If this bit is not set, no message is broadcast. This bit should not be set unless the NOWAIT bit is also set. 5 NOCONTROL If this bit is set, no carriage-return/line-feed is prefixed to any prompt string. If this bit is not set, a carriage-return/line-feed is prefixed to any prompt string specified. 6 TRUSTED If this bit is set, it indicates a SPAWN command on behalf of the application. If this bit is not set, it indicates that the SPAWN command originates from user. SPAWN commands originating from users are disallowed in captive accounts (DCL). 7 AUTHPRIV If this bit is set, the subprocess inherits the caller's authorized privileges. If this bit is clear, the spawned processes' authorized mask is set equal to the caller's current (active) privilege mask. 8 SUBSYSTEM If this bit is set, a spawned process inherits protected subsystem IDs for the duration of LOGINOUT.EXE (used to map the CLI). The IDs will be removed in the process of transferring control to the CLI (as a user mode $RUNDWN is performed). If this bit is clear, LOGINOUT does not execute under the subsystem IDs. Bits 9 through 31 are reserved for future expansion and must be zero. Symbolic flag names are defined in Digital-supplied libraries in module $CLIDEF. They are CLI$M_NOWAIT, CLI$M_ NOCLISYM, CLI$M_NOLOGNAM, CLI$M_NOKEYPAD, CLI$M_NOTIFY, CLI$M_ NOCONTROL, CLI$M_TRUSTED, CLI$M_AUTHPRIV, and CLI$M_SUBSYSTEM. process-name OpenVMS usage:process_name type: character string access: read only mechanism: by descriptor Name defined for the subprocess. The process-name argument is the address of a descriptor pointing to this name string. If process- name is omitted, a unique process name will be generated. If you supply a name and it is not unique, LIB$SPAWN will return the condition value SS$_DUPLNAM. process-id OpenVMS usage:process_id type: longword (unsigned) access: write only mechanism: by reference Process identification of the spawned subprocess. The process-id argument is the address of an unsigned longword that contains this process identification value. This process identification value is meaningful only if the NOWAIT flags bit is set. completion-status-address OpenVMS usage:address type: address access: read only mechanism: by value The final completion status of the subprocess. The completion- status-address argument contains the address of the status. The system writes the value of the final completion status of the subprocess into completion-status-address when the subprocess completes. If the subprocess returns a status code of 0, the system writes SS$_NORMAL into this address. If the NOWAIT flags bit is set, the completion-status-address is updated asynchronously when the subprocess completes. Use the byte-integer-event-flag-num or AST-address arguments to determine when the subprocess has completed. Your program must ensure that the address is still valid when the value is written. byte-integer-event-flag-num OpenVMS usage:byte_unsigned type: byte (unsigned) access: read only mechanism: by reference The number of a local event flag to be set when the spawned subprocess completes. The byte-integer-event-flag-num argument is the address of an unsigned byte that contains this event flag number. If byte-integer-event-flag-num is omitted, no event flag is set. Specifying byte-integer-event-flag-num is meaningful only if the NOWAIT flags bit is set. AST-address OpenVMS usage:procedure type: procedure value access: call without stack unwinding mechanism: by value Routine to be called by means of an AST when the subprocess completes. Specifying AST-address is meaningful only if the NOWAIT flags bit is set. varying-AST-argument OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by value A value to be passed to the AST routine. Typically, the varying- AST-argument argument is the address of a block of storage the AST routine will use. Specifying varying-AST-argument is meaningful only if the NOWAIT flags bit is set and if AST-address has been specified. prompt-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Prompt string to use in the subprocess. The prompt-string argument is the address of a descriptor pointing to this prompt string. If prompt-string is omitted, the subprocess uses the same prompt string that the parent process uses. cli OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File specification for the command language interpreter (CLI) to be run in the subprocess. The cli argument is the address of this file specification string's descriptor. The CLI specified must reside in SYS$SYSTEM with a file type of .EXE, and it must be installed. No directory or file type may be specified. The cli argument must be specified in uppercase characters. If cli is omitted, the subprocess uses the same CLI as the parent process. If cli is specified, no context is copied to the subprocess. table OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File specification for the command tables to be used by the spawned process. The table argument is the address of this file specification string's descriptor. The table specified must reside in SYS$SHARE with a file type of .EXE, and it must be installed. If table is omitted, the subprocess uses the same table as the parent process. 3 LIB$STAT_TIMER The Statistics, Return Accumulated Times and Counts routine returns to its caller one of five available statistics accumulated since the last call to LIB$INIT_TIMER. Unlike LIB$SHOW_TIMER, which formats the values for output, LIB$STAT_ TIMER returns the value as an unsigned longword or quadword. Format LIB$STAT_TIMER code ,value-argument [,handle-address] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments code OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference The address of a signed longword integer that contains a code to specify the statistic to be returned. The code specification must be an integer from 1 to 5. The following values are allowed for code: Value Statistic Returned 1 Elapsed real time (quadword, in system time format) 2 Elapsed CPU time (longword, in 10 millisecond increments) 3 Count of buffered I/O operations (longword) 4 Count of direct I/O operations (longword) 5 Count of page faults (longword) value-argument OpenVMS usage:user_arg type: unspecified access: write only mechanism: by reference The statistic returned by LIB$STAT_TIMER. The value-argument argument contains the address of a longword or quadword that is this statistic. All statistics are longword integers except elapsed real time, which is a quadword. See the OpenVMS System Services Reference Manual for more details on the system time format. handle-address OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference Pointer to a block of storage. The optional handle-address argument contains the address of an unsigned longword that is this pointer. If handle-address is specified, LIB$STAT_TIMER assumes that LIB$INIT_TIMER has been called with the same value of handle- address. Handle-address is an optional argument. If it is not specified, LIB$STAT_TIMER uses internal storage. 3 LIB$STAT_VM The Return Virtual Memory Statistics routine returns to its caller one of six statistics available from calls to LIB$GET_ VM/LIB$FREE_VM and LIB$GET_VM_PAGE/LIB$FREE_VM_PAGE. Unlike LIB$SHOW_VM, which formats the values for output and displays them on SYS$OUTPUT, LIB$STAT_VM returns the statistic in the value-argument argument. Only one of the statistics is returned by each call to LIB$STAT_VM. Format LIB$STAT_VM code ,value-argument 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments code OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Code specifying which statistic is to be returned. The code argument contains the address of a signed longword integer that is this code. Code Statistic 1 Number of successful calls to LIB$GET_VM 2 Number of successful calls to LIB$FREE_VM 3 Number of bytes allocated by LIB$GET_VM but not yet deallocated by LIB$FREE_VM 5 Number of calls to LIB$GET_VM_PAGE 6 Number of calls to LIB$FREE_VM_PAGE 7 Number of VAX pages or Alpha pagelets allocated by LIB$GET_ VM_PAGE but not yet deallocated by LIB$FREE_VM_PAGE Note that it is invalid to omit code or to give a code of 0 or 4. value-argument OpenVMS usage:user_arg type: longword (unsigned) access: write only mechanism: by reference Value of the statistic returned by LIB$STAT_VM. The value- argument argument contains the address of an unsigned longword integer that is this value. 3 LIB$STAT_VM_64 (Alpha only.) The Return Virtual Memory Statistics routine returns to its caller one of six statistics available from calls to LIB$GET_VM_64 and LIB$FREE_VM_64, as well as LIB$GET_VM_PAGE_ 64 and LIB$FREE_VM_PAGE_64. Unlike LIB$SHOW_VM_64, which formats the values for output and displays them on SYS$OUTPUT, LIB$STAT_ VM_64 returns the statistic in the value-argument argument. Only one of the statistics is returned by each call to LIB$STAT_VM_64. Format LIB$STAT_VM_64 code ,value-argument 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments code OpenVMS usage:quadword_signed type: quadword integer (signed) access: read only mechanism: by reference Code specifying which statistic is to be returned. The code argument contains the address of a signed quadword integer that is this code. Code Statistic 1 Number of successful calls to LIB$GET_VM_64 2 Number of successful calls to LIB$FREE_VM_64 3 Number of bytes allocated by LIB$GET_VM_64 but not yet deallocated by LIB$FREE_VM_64 5 Number of calls to LIB$GET_VM_PAGE_64 6 Number of calls to LIB$FREE_VM_PAGE_64 7 Number of Alpha pagelets allocated by LIB$GET_VM_PAGE_64 but not yet deallocated by LIB$FREE_VM_PAGE_64 Note that it is invalid to omit code or to give a code of 0 or 4. value-argument OpenVMS usage:user_arg type: quadword (unsigned) access: write only mechanism: by reference Value of the statistic returned by LIB$STAT_VM_64. The value- argument argument contains the address of an unsigned quadword integer that is this value. 3 LIB$STOP The Stop Execution and Signal the Condition routine generates a signal that indicates that an exception condition has occurred in your program. Exception conditions signaled by LIB$STOP cannot be continued from the point of the signal. Format LIB$STOP condition-value [,number-of-arguments] [,FAO-argument...] 4 Returns LIB$STOP generates a signal and stops execution of the calling program. No condition values are returned. 4 Arguments condition-value OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by value OpenVMS 32-bit condition value. The condition-value argument is an unsigned longword that contains this condition value. The OpenVMS Programming Concepts Manual explains the format of a condition value. number-of-arguments OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by value Number of FAO arguments associated with condition-value. The optional number-of-arguments argument is a signed longword integer that contains this number. If omitted or specified as zero, no FAO arguments follow. FAO-argument OpenVMS usage:varying_arg type: unspecified access: read only mechanism: by value Optional FAO (formatted ASCII output) argument that is associated with the specified condition value. The OpenVMS Programming Concepts Manual explains the message format. 3 LIB$SUBX The Multiple-Precision Binary Subtraction routine performs subtraction on signed two's complement integers of arbitrary length. Format LIB$SUBX minuend-array ,subtrahend-array ,difference-array [,array-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments minuend-array OpenVMS usage:vector_longword_signed type: unspecified access: read only mechanism: by reference, array reference Minuend; a multiple-precision, signed two's complement integer. The minuend-array argument is the address of an array of signed longword integers that contains the minuend. subtrahend-array OpenVMS usage:vector_longword_signed type: unspecified access: read only mechanism: by reference, array reference Subtrahend; a multiple-precision, signed two's complement integer. The subtrahend-array argument is the address of an array of signed longword integers that contains the subtrahend. difference-array OpenVMS usage:vector_longword_signed type: unspecified access: write only mechanism: by reference, array reference Difference; a multiple-precision, signed two's complement integer result. The difference-array argument is the address of an array of signed longword integers that contains the difference. array-length OpenVMS usage:longword_signed type: longword integer (signed) access: read only mechanism: by reference Length in longwords of the arrays to be operated on by LIB$SUBX. The array-length argument contains the address of a signed longword integer that is this length. The array-length argument must not be negative. The default length is 2 units. 3 LIB$SUB_TIMES The Subtract Two Quadword Times routine subtracts two OpenVMS internal-time-format times. Format LIB$SUB_TIMES time1 ,time2 ,resultant-time 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments time1 OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference First time, from which LIB$SUB_TIMES subtracts the second time. The time1 argument is the address of an unsigned quadword containing this time. The time1 argument must represent a later or equal time or a longer or equal time interval than time2. The time1 argument may be either absolute time or delta time as long as time2 is of the same type. If time1 and time2 are of different types, time1 must be the absolute time. time2 OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference Second time, which LIB$SUB_TIMES subtracts from the first time. The time2 argument is the address of an unsigned quadword containing this time. The time2 argument must represent an earlier or equal time or a shorter or equal time interval than time1. The time2 argument may be either absolute time or delta time as long as time1 is of the same type. If time2 and time1 are of different types, time2 must be the delta time. resultant-time OpenVMS usage:date_time type: quadword (unsigned) access: write only mechanism: by reference The result of subtracting time2 from time1. The resultant-time argument is the address of an unsigned quadword containing the result. If both time1 and time2 are delta times, then resultant- time is a delta time. If both time1 and time2 are absolute times, then resultant-time is a delta time. If time1 is an absolute time and time2 is a delta time, then resultant-time is an absolute time. 3 LIB$SYS_ASCTIM The Invoke $ASCTIM to Convert Binary Time to ASCII String routine calls the system service $ASCTIM to convert a binary date and time value, returning the ASCII string using the semantics of the caller's string. Format LIB$SYS_ASCTIM [resultant-length] ,time-string [,user-time] [,flags] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Number of bytes written into time-string, not counting padding in the case of a fixed-length string. The resultant-length argument contains the address of an unsigned word integer that is this number. If the input string is truncated to the size specified in the time-string descriptor, resultant-length is set to this size. Therefore, resultant-length can always be used by the calling program to access a valid substring of time-string. time-string OpenVMS usage:time_name type: character string access: write only mechanism: by descriptor Destination string into which LIB$SYS_ASCTIM writes the ASCII time string. The time-string argument contains the address of a descriptor pointing to the destination string. user-time OpenVMS usage:date_time type: quadword (unsigned) access: read only mechanism: by reference Value that LIB$SYS_ASCTIM converts to ASCII string form. The user-time argument contains the address of a signed quadword integer that is this value. If 0 or no address is specified, the current system date and time are returned. A positive value represents an absolute time. A negative value represents a delta time. Delta times must be less than 10,000 days. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Conversion indicator specifying which date and time fields LIB$SYS_ASCTIM should return. The flags argument is the address of an unsigned bit mask that contains this conversion indicator. A value of 1 causes only the hour, minute, second, and hundredths of a second to be returned, depending on the length of the buffer. A value of 0 (the default) causes the full date and time to be returned, depending on the length of the buffer. The results of specifying some possible combinations for the values of the flags and time-string arguments are shown below: Time- Time String Flags Value Length Value Information Returned Absolute 23 0 Date and time Absolute 12 0 Date Absolute 11 1 Time Delta 16 0 Days and time Delta 11 1 Time The flags argument is passed to LIB$SYS_ASCTIM by reference and is changed to value for use by $ASCTIM. 3 LIB$SYS_FAO The Invoke $FAO System Service to Format Output routine calls the $FAO system service, returning a string in the semantics you provide. If called with other than a fixed-length string for output, the length of the resultant string is limited to 256 bytes and truncation occurs. Format LIB$SYS_FAO character-string, [resultant-length] ,resultant-string [,directive-argument ,...] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments character-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor ASCII control string, consisting of the fixed text of the output string and FAO directives. The character-string argument contains the address of a descriptor pointing to this control string. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the output string. The resultant-length argument contains the address of an unsigned word integer that is this length. resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Fully formatted output string returned by LIB$SYS_FAO. The resultant-string argument contains the address of a descriptor pointing to this output string. directive-argument OpenVMS usage:varying_arg type: unspecified access: read only mechanism: unspecified Directive argument contained in longwords. Depending on the directive, a directive-argument argument can be a value to be converted, the address of the string to be inserted, or a length or argument count. The passing mechanism for each of these arguments should be the one expected by the $FAO system service. 3 LIB$SYS_FAOL The Invoke $FAOL System Service to Format Output routine calls the $FAOL system service, returning the string in the semantics you provide. If called with other than a fixed-length string for output, the length of the resultant string is limited to 256 bytes and truncation occurs. Format LIB$SYS_FAOL character-string [,resultant-length] ,resultant-string ,directive-argument-address 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments character-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor ASCII control string, consisting of the fixed text of the output string and FAO directives. The character-string argument contains the address of a descriptor pointing to this control string. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the output string. The resultant-length argument contains the address of an unsigned word integer that is this length. resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Fully formatted output string returned by LIB$SYS_FAOL. The resultant-string argument contains the address of a descriptor pointing to this output string. directive-argument-address OpenVMS usage:address type: longword (unsigned) access: read only mechanism: unspecified Directive arguments. The directive-argument-address arguments are contained in an array of unsigned longword directive arguments. Depending on the directive, a directive-argument-address argument can be a value to be converted, the address of the string to be inserted, or a length or argument count. The passing mechanism for each of these arguments should be the one expected by the $FAOL system service. 3 LIB$SYS_FAOL_64 (Alpha only.) The Invoke $FAOL_64 System Service to Format Output routine calls the $FAOL_64 system service, returning the string in the semantics you provide. If called with other than a fixed- length string for output, the length of the resultant string is limited to 256 bytes and truncation occurs. Format LIB$SYS_FAOL_64 character-string [,resultant-length] ,resultant-string ,directive-argument-address 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments character-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor ASCII control string, consisting of the fixed text of the output string and FAO directives. The character-string argument contains the address of a descriptor pointing to this control string. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the output string. The resultant-length argument contains the address of an unsigned word integer that is this length. resultant-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Fully formatted output string returned by LIB$SYS_FAOL_64. The resultant-string argument contains the address of a descriptor pointing to this output string. directive-argument-address OpenVMS usage:address type: quadword (unsigned) access: read only mechanism: unspecified Directive arguments. The directive-argument-address arguments are contained in an array of unsigned quadword directive arguments. Depending on the directive, a directive-argument-address argument can be a value to be converted, the address of the string to be inserted, or a length or argument count. The passing mechanism for each of these arguments should be the one expected by the $FAOL_64 system service. 3 LIB$SYS_GETMSG The Invoke $GETMSG System Service to Get Message Text routine calls the system service $GETMSG and returns a message string into destination-string using the semantics of the caller's string. Format LIB$SYS_GETMSG message-id [,message-length] ,destination-string [,flags] [,unsigned-resultant-array] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments message-id OpenVMS usage:identifier type: longword (unsigned) access: read only mechanism: by reference Message identification to be retrieved by LIB$SYS_GETMSG. The message-id argument contains the address of an unsigned longword integer that is this message identification. message-length OpenVMS usage:word_unsigned type: word integer (unsigned) access: write only mechanism: by reference Number of characters written into destination-string, not counting padding in the case of a fixed-length string. The message-length argument contains the address of an unsigned word integer that is this number. If the input string is truncated to the size specified in the destination-string descriptor, message-length is set to this size. Therefore, message-length can always be used by the calling program to access a valid substring of destination-string. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string. The destination-string argument contains the address of a descriptor pointing to this destination string. LIB$SYS_GETMSG writes the message that has been returned by $GETMSG into destination-string. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Four flag bits for message content. The flags argument is the address of an unsigned longword that contains these flag bits. The default value is a longword with bits 0 through 3 set to 1. The flags argument is passed to LIB$SYS_GETMSG by reference and changed to value for use by $GETMSG. The following table lists the bit numbers, their values, and corresponding descriptions: Bit Value Description 0 1 Include text of message. 0 Do not include text of message. 1 1 Include message identifier. 0 Do not include message identifier. 2 1 Include severity indicator. 0 Do not include severity indicator. 3 1 Include facility name. 0 Do not include facility name. unsigned-resultant-array OpenVMS usage:unspecified type: unspecified access: write only mechanism: by reference, array reference A 4-byte array to receive message-specific information. The unsigned-resultant-array argument contains the address of this array. The contents of this 4-byte array are as follows: Byte Contents 0 Reserved 1 Count of FAO arguments 2 User value 3 Reserved 3 LIB$TPARSE The Table-Driven Finite-State Parser routine is a general- purpose, table-driven parser implemented as a finite-state automaton, with extensions that make it suitable for a wide range of applications. It parses a string and returns a message indicating whether or not the input string is valid. LIB$T[ABLE_]PARSE is called with the address of an argument block, the address of a state table, and the address of a keyword table. The input string is specified as part of the argument block. The LIB$ facility supports the following two versions of the Table-Driven Finite-State Parser: LIB$TPARSE Available on VAX systems. LIB$TPARSE is available on Alpha systems in translated form. In this form, it is applicable to translated VAX images only. LIB$TABLE_PARSE Available on VAX and Alpha systems. LIB$TPARSE and LIB$TABLE_PARSE differ mainly in the way they pass arguments to action routines. The term LIB$T[ABLE_]PARSE is used here to describe concepts that apply to both LIB$TPARSE and LIB$TABLE_PARSE. Format LIB$TPARSE/LIB$TABLE_PARSE argument-block ,state-table ,key-table 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments argument-block OpenVMS usage:unspecified type: unspecified access: modify mechanism: by reference LIB$T[ABLE_]PARSE argument block. The argument-block argument contains the address of this argument block. The LIB$T[ABLE_]PARSE argument block contains information about the state of the parse operation. It is a means of communication between LIB$T[ABLE_]PARSE and the user's program. It is passed as an argument to all action routines. You must declare and initialize the argument block. LIB$T[ABLE_]PARSE supports the following argument blocks: o A 32-bit argument block that accommodates longword addresses, values, and input tokens on both VAX and Alpha systems. On Alpha systems, this argument block also accommodates a numeric token whose binary representation is less than or equal to 2**64. o A 64-bit argument block that accommodates quadword addresses, values, and input tokens on Alpha systems. state-table OpenVMS usage:unspecified type: unspecified access: read only mechanism: by reference Starting state in the state table. The state-table argument is the address of this starting state. Usually, the name appearing as the first argument of the $INIT_STATE macro is used. You must define the state table for your parser. LIB$T[ABLE_]PARSE provides macros in the MACRO and BLISS languages for this purpose. key-table OpenVMS usage:unspecified type: unspecified access: read only mechanism: by reference Keyword table. The key-table argument is the address of this keyword table. This name must be the same as that which appears as the second argument of the $INIT_STATE macro. You must only assign a name to the keyword table. The LIB$T[ABLE_]PARSE macros allocate and define the table. See for more information about the keyword table. 3 LIB$TABLE_PARSE The Table-Driven Finite-State Parser routine is a general- purpose, table-driven parser implemented as a finite-state automaton, with extensions that make it suitable for a wide range of applications. It parses a string and returns a message indicating whether or not the input string is valid. LIB$T[ABLE_]PARSE is called with the address of an argument block, the address of a state table, and the address of a keyword table. The input string is specified as part of the argument block. The LIB$ facility supports the following two versions of the Table-Driven Finite-State Parser: LIB$TPARSE Available on VAX systems. LIB$TPARSE is available on Alpha systems in translated form. In this form, it is applicable to translated VAX images only. LIB$TABLE_PARSE Available on VAX and Alpha systems. LIB$TPARSE and LIB$TABLE_PARSE differ mainly in the way they pass arguments to action routines. The term LIB$T[ABLE_]PARSE is used here to describe concepts that apply to both LIB$TPARSE and LIB$TABLE_PARSE. Format LIB$TPARSE/LIB$TABLE_PARSE argument-block ,state-table ,key-table 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments argument-block OpenVMS usage:unspecified type: unspecified access: modify mechanism: by reference LIB$T[ABLE_]PARSE argument block. The argument-block argument contains the address of this argument block. The LIB$T[ABLE_]PARSE argument block contains information about the state of the parse operation. It is a means of communication between LIB$T[ABLE_]PARSE and the user's program. It is passed as an argument to all action routines. You must declare and initialize the argument block. LIB$T[ABLE_]PARSE supports the following argument blocks: o A 32-bit argument block that accommodates longword addresses, values, and input tokens on both VAX and Alpha systems. On Alpha systems, this argument block also accommodates a numeric token whose binary representation is less than or equal to 2**64. o A 64-bit argument block that accommodates quadword addresses, values, and input tokens on Alpha systems. state-table OpenVMS usage:unspecified type: unspecified access: read only mechanism: by reference Starting state in the state table. The state-table argument is the address of this starting state. Usually, the name appearing as the first argument of the $INIT_STATE macro is used. You must define the state table for your parser. LIB$T[ABLE_]PARSE provides macros in the MACRO and BLISS languages for this purpose. key-table OpenVMS usage:unspecified type: unspecified access: read only mechanism: by reference Keyword table. The key-table argument is the address of this keyword table. This name must be the same as that which appears as the second argument of the $INIT_STATE macro. You must only assign a name to the keyword table. The LIB$T[ABLE_]PARSE macros allocate and define the table. See for more information about the keyword table. 3 LIB$TRAVERSE_TREE The Traverse a Balanced Binary Tree routine calls an action routine for each node in a binary tree. Format LIB$TRAVERSE_TREE treehead ,user-action-procedure [,user-data-address] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments treehead OpenVMS usage:address type: address access: read only mechanism: by reference Tree head of the binary tree. The treehead argument is the address of an unsigned longword that is the tree head in the binary tree traversal. user-action-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied action routine called by LIB$TRAVERSE_TREE for each node in the tree. The user-action-procedure argument must return a success status for LIB$TRAVERSE_TREE to continue traversal. user-data-address OpenVMS usage:user_arg type: longword (unsigned) access: read only mechanism: by reference User data that LIB$TRAVERSE_TREE passes to your action routine. The user-data-address argument contains the address of this user data. This is an optional argument; the default value is 0. 3 LIB$TRAVERSE_TREE_64 (Alpha only.) The Traverse a Balanced Binary Tree routine calls an action routine for each node in a binary tree. Format LIB$TRAVERSE_TREE_64 treehead ,user-action-procedure [,user-data-address] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments treehead OpenVMS usage:address type: address access: read only mechanism: by reference Tree head of the binary tree. The treehead argument is the address of an unsigned quadword that is the tree head in the binary tree traversal. user-action-procedure OpenVMS usage:procedure type: procedure value access: function call (before return) mechanism: by value User-supplied action routine called by LIB$TRAVERSE_TREE_64 for each node in the tree. The user-action-procedure argument must return a success status for LIB$TRAVERSE_TREE_64 to continue traversal. user-data-address OpenVMS usage:user_arg type: quadword (unsigned) access: read only mechanism: by reference User data that LIB$TRAVERSE_TREE_64 passes to your action routine. The user-data-address argument contains the address of this user data. This is an optional argument; the default value is 0. 3 LIB$TRA_ASC_EBC The Translate ASCII to EBCDIC routine translates an ASCII string to an EBCDIC string. Format LIB$TRA_ASC_EBC source-string ,byte-integer-dest-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string (ASCII) to be translated by LIB$TRA_ASC_EBC. The source-string argument contains the address of a descriptor pointing to this source string. byte-integer-dest-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string (EBCDIC). The byte-integer-dest-string argument contains the address of a descriptor pointing to this destination string. 3 LIB$TRA_EBC_ASC The Translate EBCDIC to ASCII routine translates an EBCDIC string to an ASCII string. Format LIB$TRA_EBC_ASC byte-integer-source-string ,destination-string 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: read only mechanism: by value 4 Arguments byte-integer-source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor String (EBCDIC) to be translated by LIB$TRA_EBC_ASC. The byte-integer-source-string argument contains the address of a descriptor pointing to this source string. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string (ASCII). The destination-string argument contains the address of the descriptor of this destination string. The LIB$TRA_EBC_ASC routine uses the EBCDIC to ASCII translation table, LIB$AB_EBC_ASC. 3 LIB$TRIM_FILESPEC The Fit Long File Specification into Fixed Field routine takes a file specification, such as an OpenVMS RMS resultant name string, and shortens it (if necessary) so that it fits into a field of fixed width. Format LIB$TRIM_FILESPEC old-filespec ,new-filespec [,word-integer-width] [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments old-filespec OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor File specification to be trimmed. The old-filespec argument contains the address of a descriptor pointing to this file specification string. The file specification should be an RMS resultant name string. The error LIB$_INVARG is returned if old-filespec contains more than 255 characters. new-filespec OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Trimmed file specification. The new-filespec argument contains the address of a descriptor pointing to this trimmed file specification string. LIB$TRIM_FILESPEC writes the trimmed file specification into new-filespec. word-integer-width OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Maximum field width desired. The word-integer-width argument is the address of an unsigned word that contains this maximum field width. If omitted, the current length of new-filespec is used. If new- filespec is not a fixed-length string, you should specify word- integer-width to ensure that the desired width is used. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the trimmed file specification, not including any blank padding or truncated characters. The resultant-length argument is the address of an unsigned word that contains this length. This is an optional argument. 3 LIB$TRIM_FULLNAME The Trim a Full Name to Fit into a Desired Output Field routine trims a full name to fit into a desired output field. The trimming preserves the most significant part of the full name. Format LIB$TRIM_FULLNAME fullname, trimmed-nodename [,output-width] [,resultant-length] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments fullname OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Full name to be trimmed. The fullname argument contains the address of a descriptor pointing to this full name string. The error LIB$_INVARG is returned if fullname contains an invalid full name, points to a null string, or contains more than 1024 characters. The error LIB$_INVSTRDES is returned if fullname is an invalid descriptor. trimmed-nodename OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Trimmed node name. The trimmed-nodename argument contains the address of a descriptor pointing to the trimmed node-name string. LIB$TRIM_FULLNAME writes the trimmed node name into the buffer pointed to by trimmed-nodename. The error LIB$_INVSTRDES is returned if trimmed-nodename is an invalid descriptor. The length field of the trimmed-nodename descriptor is not updated unless trimmed-nodename is a dynamic descriptor with a length less than the resultant trimmed node name. Refer to the OpenVMS RTL String Manipulation (STR$) Manual for dynamic string descriptor usage. The trimmed-nodename argument contains an unusable result when LIB$TRIM_FULLNAME returns in error. output-width OpenVMS usage:word_unsigned type: word (unsigned) access: read only mechanism: by reference Field width desired for the trimmed node name. The output-width argument is the address of an unsigned word that contains this field width in bytes. If output-width is omitted, the current length of trimmed- nodename is used. If trimmed-nodename is not a fixed-length string, specify output-width to ensure that the desired width is used. If the lengths of both trimmed-nodename and output-width are specified, the length in output-width is used. In this case, if the current length of trimmed-nodename is smaller than the length of output-width, the output trimmed node name is truncated at the end, and the alternate successful status LIB$_STRTRU is returned. resultant-length OpenVMS usage:word_unsigned type: word (unsigned) access: write only mechanism: by reference Length of the trimmed node name. The resultant-length argument is the address of an unsigned word that contains this length in bytes. The resultant-length argument contains an unusable result when LIB$TRIM_FULLNAME returns in error. 3 LIB$VERIFY_VM_ZONE The Verify a Zone routine performs verification of a 32-bit zone. Format LIB$VERIFY_VM_ZONE zone-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument zone-id OpenVMS usage:identifier type: longword (unsigned) access: read only mechanism: by reference Zone identifier of the zone to be verified. The zone-id argument is the address of an unsigned longword that contains this zone identifier. A value of 0 indicates the 32-bit default zone. 3 LIB$VERIFY_VM_ZONE_64 (Alpha only.) The Verify a Zone routine performs verification of a 64-bit zone. Format LIB$VERIFY_VM_ZONE_64 zone-id 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Argument zone-id OpenVMS usage:identifier type: quadword (unsigned) access: read only mechanism: by reference Zone identifier of the zone to be verified. The zone-id argument is the address of an unsigned quadword that contains this zone identifier. A value of 0 indicates the 64-bit default zone. 3 LIB$WAIT The Wait a Specified Period of Time routine places the current process into hibernation for the number of seconds specified in its argument. Format LIB$WAIT seconds [,flags] [,float-type] 4 Returns OpenVMS usage:cond_value type: longword (unsigned) access: write only mechanism: by value 4 Arguments seconds OpenVMS usage:floating_point type: F_floating access: read only mechanism: by reference The number of seconds to wait. The seconds argument contains the address of an F-floating number that is this number. The value is rounded to the nearest hundredth-second before use. Seconds must be between 0.0 and 100,000.0. flags OpenVMS usage:mask_longword type: longword (unsigned) access: read only mechanism: by reference Control flags. The flags argument is the address of a longword integer that contains the control flags. The following flags are defined: Bit Value Description 0 LIB$K_NOWAKE LIB$WAIT will not wake in the case of an interrupt. This is an optional argument. If omitted, the default is 0, and LIB$WAIT will wake in the case of an interrupt. float-type OpenVMS usage:longword-unsigned type: longword (unsigned) access: read only mechanism: by reference Float type. The float-type argument is the address of a longword integer that determines the floating-point type of the seconds argument. Use one of the following symbols: Symbol Value Floating-Point Type LIB$K_VAX_F 0 F_floating LIB$K_VAX_D 1 D_floating LIB$K_VAX_G 2 G_floating LIB$K_VAX_H 3 H_floating LIB$K_IEEE_S 4 IEEE_S_floating LIB$K_IEEE_T 5 IEEE_T_floating This is an optional argument. If omitted, the default is F_ floating. F_floating is the required float-type when LIB$WAIT is called from a module written in a language that prototypes functions.