! ******************************************************************************************************************************** ! Created: 30-AUG-2007 11:29:42 by OpenVMS SDL IA64-2 ! Source: 30-AUG-2007 11:29:41 GEM$:[GEMGROUP.SHEILAM.FORSYSDEF.IVMS-V83]LIB$ROUTINES.SDI;1 ! ******************************************************************************************************************************** !*** MODULE lib$routines *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! *************************************************************************** ! * ! COPYRIGHT (c) 1992, 1994, 1995, 1996, 1997, 2003 BY * ! DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS. * ! ALL RIGHTS RESERVED. * ! * ! THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED * ! ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE * ! INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER * ! COPIES THEREOF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY * ! OTHER PERSON. NO TITLE TO AND OWNERSHIP OF THE SOFTWARE IS HEREBY * ! TRANSFERRED. * ! * ! THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE * ! AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT * ! CORPORATION. * ! * ! DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS * ! SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DIGITAL. * ! * ! * ! *************************************************************************** ! LIB$ADAWI ! ! Add Aligned Word with Interlock ! ! The Add Aligned Word with Interlock routine allows the user to perform an ! interlocked add operation using an aligned word. ! INTEGER*4 lib$adawi EXTERNAL lib$adawi ! LIB$ADDX ! ! Add Two Multiple-Precision Binary Numbers ! ! The Add Two Multiple-Precision Binary Numbers routine adds two signed ! two's complement integers of arbitrary length. ! INTEGER*4 lib$addx EXTERNAL lib$addx ! LIB$ADD_TIMES ! ! Add Two Quadword Times ! ! The Add Two Quadword Times routine adds two VMS internal time format ! times. ! INTEGER*4 lib$add_times EXTERNAL lib$add_times ! LIB$ANALYZE_SDESC ! ! Analyze String Descriptors ! ! The Analyze String Descriptors routine extracts the length and the ! address at which the data starts for a variety of string descriptor ! classes. ! INTEGER*4 lib$analyze_sdesc EXTERNAL lib$analyze_sdesc ! LIB$ANALYZE_SDESC_64 ! ! Analyze String Descriptors ! ! The Analyze String Descriptors routine extracts the length and the ! address at which the data starts for a variety of string descriptor ! classes. ! INTEGER*4 lib$analyze_sdesc_64 EXTERNAL lib$analyze_sdesc_64 ! LIB$ASCII_TO_UID ! ! Convert Text To UID ! ! The Convert Text to UID routine converts a standard representation ! of a UID in an ASCII text string to a binary UID. ! INTEGER*4 lib$ascii_to_uid EXTERNAL lib$ascii_to_uid ! LIB$ASN_WTH_MBX ! ! Assign Channel with Mailbox ! ! 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. ! INTEGER*4 lib$asn_wth_mbx EXTERNAL lib$asn_wth_mbx ! LIB$AST_IN_PROG ! ! AST in Progress ! ! The AST in Progress routine indicates whether an AST is currently in ! progress. ! BYTE lib$ast_in_prog EXTERNAL lib$ast_in_prog ! LIB$ATTACH ! ! Attach Terminal to Process ! ! 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. ! INTEGER*4 lib$attach EXTERNAL lib$attach ! LIB$BBCCI ! ! Test and Clear Bit with Interlock ! ! The Test and Clear Bit with Interlock routine tests and clears a ! selected bit under memory interlock. ! INTEGER*4 lib$bbcci EXTERNAL lib$bbcci ! LIB$BBSSI ! ! Test and Set Bit with Interlock ! ! The Test and Set Bit with Interlock routine tests and sets a ! selected bit under memory interlock. ! INTEGER*4 lib$bbssi EXTERNAL lib$bbssi ! LIB$BUILD_NODESPEC ! ! Build a Node-Name Specification ! ! The Build a Node-Name Specification routine builds a node-name ! specification from the primary node name. ! INTEGER*4 lib$build_nodespec EXTERNAL lib$build_nodespec ! LIB$CALLG ! ! Call Routine with General Argument List (longword argument list) ! ! 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. ! INTEGER*4 lib$callg EXTERNAL lib$callg ! LIB$CALLG_64 ! ! Call Routine with General Argument List (quadword argument list) ! ! 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. LIB$CALLG_64 is a callable ! version of the VAX CALLG instruction. ! INTEGER*4 lib$callg_64 EXTERNAL lib$callg_64 ! LIB$CHAR ! ! Transform Byte to First Character of String ! ! 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. ! INTEGER*4 lib$char EXTERNAL lib$char ! LIB$COMPARE_NODENAME ! ! Compare Two Node Names ! ! The Compare Node Name routine compares two node names ! to see if they resolve to the same full name. ! INTEGER*4 lib$compare_nodename EXTERNAL lib$compare_nodename ! LIB$COMPARE_UID ! ! Compare Two UIDs ! ! The Compare Two UIDs routine compares the contents ! of two UIDs for total lexical ordering. ! INTEGER*4 lib$compare_uid EXTERNAL lib$compare_uid ! LIB$COMPRESS_NODENAME ! ! Compress a Node Name to its Short Form ! ! The Compress a Node Name routine compresses a node name to an ! unambiguous short form usable within the naming environment ! where the compression is performed. ! INTEGER*4 lib$compress_nodename EXTERNAL lib$compress_nodename ! LIB$CONVERT_DATE_STRING ! ! Convert Date String to Quadword ! ! The Convert Date String to Quadword routine converts an absolute date ! string into a VMS 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 a VMS internal format ! time. ! INTEGER*4 lib$convert_date_string EXTERNAL lib$convert_date_string ! LIB$CRC ! ! Calculate a Cyclic Redundancy Check (CRC) ! ! The Calculate a Cyclic Redundancy Check routine calculates the cyclic ! redundancy check (CRC) for a data stream. ! INTEGER*4 lib$crc EXTERNAL lib$crc ! LIB$CRC_TABLE ! ! Construct a Cyclic Redundancy Check (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. ! ! Subroutine lib$crc_table ! LIB$CREATE_DIR ! ! Create a Directory ! ! The Create a Directory routine creates a directory or subdirectory. ! INTEGER*4 lib$create_dir EXTERNAL lib$create_dir ! LIB$CREATE_USER_VM_ZONE ! ! Create User-Defined Storage Zone ! ! The Create User-Defined Storage Zone routine creates a new user-defined ! storage zone. ! INTEGER*4 lib$create_user_vm_zone EXTERNAL lib$create_user_vm_zone ! LIB$CREATE_USER_VM_ZONE_64 ! ! Create User-Defined Storage Zone ! ! The Create User-Defined Storage Zone routine creates a new user-defined ! storage zone. ! INTEGER*4 lib$create_user_vm_zone_64 EXTERNAL lib$create_user_vm_zone_64 ! LIB$CREATE_VM_ZONE ! ! Create a New Zone ! ! The Create a New Zone routine creates a new storage zone according to ! specified arguments. ! INTEGER*4 lib$create_vm_zone EXTERNAL lib$create_vm_zone ! LIB$CREATE_VM_ZONE_64 ! ! Create a New Zone ! ! The Create a New Zone routine creates a new storage zone according to ! specified arguments. ! INTEGER*4 lib$create_vm_zone_64 EXTERNAL lib$create_vm_zone_64 ! LIB$CRF_INS_KEY ! ! Insert Key in Cross-Reference Table ! ! The Insert Key in Cross-Reference Table routine inserts information ! about a key into a cross-reference table. ! ! Subroutine lib$crf_ins_key ! LIB$CRF_INS_REF ! ! Insert Reference to a Key in the Cross-Reference Table ! ! The Insert Reference to a Key in the Cross-Reference Table routine ! inserts a reference to a key in a cross-reference symbol table. ! ! Subroutine lib$crf_ins_ref ! LIB$CRF_OUTPUT ! ! Output Cross-Reference Table Information ! ! The Output Cross-Reference Table Information routine extracts the ! information from the cross-reference tables and formats the output pages. ! ! Subroutine lib$crf_output ! LIB$CURRENCY ! ! Get System Currency Symbol ! ! The Get System Currency Symbol routine returns the system's currency ! symbol. ! INTEGER*4 lib$currency EXTERNAL lib$currency ! LIB$CVTS_FROM_INTERNAL_TIME ! ! Convert Internal Time to External Time (S-Floating Point Value) ! ! The Convert Internal Time to External Time (S-Floating Point Value) ! routine converts a delta internal VMS system time into an external ! S-floating time. ! INTEGER*4 lib$cvts_from_internal_time EXTERNAL lib$cvts_from_internal_time ! LIB$CVTF_FROM_INTERNAL_TIME ! ! Convert Internal Time to External Time (F-Floating Point Value) ! ! The Convert Internal Time to External Time (F-Floating Point Value) ! routine converts a delta internal VMS system time into an external ! F-floating time. ! INTEGER*4 lib$cvtf_from_internal_time EXTERNAL lib$cvtf_from_internal_time ! LIB$CVTS_TO_INTERNAL_TIME ! ! Convert External Time to Internal Time (S-Floating Point Value) ! ! The Convert External Time to Internal Time (S-Floating Point Value) ! routine converts an external time interval into a VMS internal format ! S-floating delta time. ! ! INTEGER*4 lib$cvts_to_internal_time EXTERNAL lib$cvts_to_internal_time ! LIB$CVTF_TO_INTERNAL_TIME ! ! Convert External Time to Internal Time (F-Floating Point Value) ! ! The Convert External Time to Internal Time (F-Floating Point Value) ! routine converts an external time interval into a VMS internal format ! F-floating delta time. ! INTEGER*4 lib$cvtf_to_internal_time EXTERNAL lib$cvtf_to_internal_time ! LIB$CVT_DTB ! ! Convert Numeric Text to Binary ! ! The Convert Numeric Text to Binary routine returns a 32-bit binary ! representation of the ASCII text string representation of a decimal ! number. ! INTEGER*4 lib$cvt_dtb EXTERNAL lib$cvt_dtb ! LIB$CVT_DTB_64 ! ! Convert Numeric Text to Binary ! ! The Convert Numeric Text to Binary routine returns a 64-bit binary ! representation of the ASCII text string representation of a decimal ! number. ! INTEGER*4 lib$cvt_dtb_64 EXTERNAL lib$cvt_dtb_64 ! LIB$CVT_DX_DX ! ! General Data Type Conversion Routine ! ! The General Data Type Conversion routine converts a VMS standard atomic ! or string datum described by a source descriptor to another VMS standard ! atomic or string datum described by a destination descriptor. This ! conversion is supported over a subset of the VMS standard data types. ! INTEGER*4 lib$cvt_dx_dx EXTERNAL lib$cvt_dx_dx ! LIB$CVT_FROM_INTERNAL_TIME ! ! Convert Internal Time to External Time ! ! The Convert Internal Time to External Time routine converts an internal ! VMS system time (either absolute or delta) into an external time. ! INTEGER*4 lib$cvt_from_internal_time EXTERNAL lib$cvt_from_internal_time ! LIB$CVT_HTB ! ! Convert Numeric Text to Binary ! ! The Convert Numeric Text to Binary routine returns a 32-bit binary ! representation of the ASCII text string representation of a hexadecimal ! number. ! INTEGER*4 lib$cvt_htb EXTERNAL lib$cvt_htb ! LIB$CVT_HTB_64 ! ! Convert Numeric Text to Binary ! ! The Convert Numeric Text to Binary routine returns a 64-bit binary ! representation of the ASCII text string representation of a hexadecimal ! number. ! INTEGER*4 lib$cvt_htb_64 EXTERNAL lib$cvt_htb_64 ! LIB$CVT_OTB ! ! Convert Numeric Text to Binary ! ! The Convert Numeric Text to Binary routine returns a 32-bit binary ! representation of the ASCII text string representation of an octal ! number. ! INTEGER*4 lib$cvt_otb EXTERNAL lib$cvt_otb ! LIB$CVT_OTB_64 ! ! Convert Numeric Text to Binary ! ! The Convert Numeric Text to Binary routine returns a 64-bit binary ! representation of the ASCII text string representation of an octal ! number. ! INTEGER*4 lib$cvt_otb_64 EXTERNAL lib$cvt_otb_64 ! LIB$CVT_TO_INTERNAL_TIME ! ! Convert External Time to Internal Time ! ! The Convert External Time to Internal Time routine converts an ! external time interval into a VMS internal format delta time. ! INTEGER*4 lib$cvt_to_internal_time EXTERNAL lib$cvt_to_internal_time ! LIB$CVT_VECTIM ! ! Convert Seven-Word Vector to Internal Time ! ! The Convert Seven-Word Vector to Internal Time routine converts a ! seven-word vector into a VMS internal format delta or absolute time. ! INTEGER*4 lib$cvt_vectim EXTERNAL lib$cvt_vectim ! LIB$DATE_TIME ! ! Date and Time Returned as a String ! ! The Date and Time Returned as a String routine returns the VMS system ! date and time in the semantics of a user-provided string. ! INTEGER*4 lib$date_time EXTERNAL lib$date_time ! LIB$DAY ! ! Day Number Returned as a Longword Integer ! ! 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. ! INTEGER*4 lib$day EXTERNAL lib$day ! LIB$DAY_OF_WEEK ! ! Show Numeric 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. ! INTEGER*4 lib$day_of_week EXTERNAL lib$day_of_week ! LIB$DECODE_FAULT ! ! Decode Instruction Stream During 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 Alpha VMS programs, but is ! available to translated VAX images. ! INTEGER*4 lib$decode_fault EXTERNAL lib$decode_fault ! LIB$DEC_OVER ! ! Enable or Disable Decimal Overflow Detection ! ! 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 Alpha VMS systems in translated form ! and is applicable to translated VAX images only. ! INTEGER*4 lib$dec_over EXTERNAL lib$dec_over ! LIB$DELETE_FILE ! ! Delete One or More Files ! ! The Delete One or More Files routine deletes one or more files. The ! specification of the file(s) to be deleted may include wildcards. ! LIB$DELETE_FILE is similar in function to the DCL command DELETE. ! INTEGER*4 lib$delete_file EXTERNAL lib$delete_file ! LIB$DELETE_LOGICAL ! ! Delete Logical Name ! ! The Delete Logical Name routine requests the calling process's Command ! Language Interpreter (CLI) to delete a supervisor-mode process logical ! name. LIB$DELETE_LOGICAL provides the same function as the DCL command ! DEASSIGN. ! INTEGER*4 lib$delete_logical EXTERNAL lib$delete_logical ! LIB$DELETE_SYMBOL ! ! Delete CLI Symbol ! ! The Delete CLI Symbol routine requests the calling process's Command ! Language Interpreter (CLI) to delete an existing CLI symbol. ! INTEGER*4 lib$delete_symbol EXTERNAL lib$delete_symbol ! LIB$DELETE_VM_ZONE ! ! Delete Virtual Memory Zone ! ! The Delete Virtual Memory Zone routine deletes a zone and ! returns all pages on VAX or pagelets on Alpha owned by the ! zone to the processwide page pool. ! INTEGER*4 lib$delete_vm_zone EXTERNAL lib$delete_vm_zone ! LIB$DELETE_VM_ZONE_64 ! ! Delete Virtual Memory Zone ! ! The Delete Virtual Memory Zone routine deletes a zone and ! returns all pages on VAX or pagelets on Alpha owned by the ! zone to the processwide page pool. ! INTEGER*4 lib$delete_vm_zone_64 EXTERNAL lib$delete_vm_zone_64 ! LIB$DIGIT_SEP ! ! Get Digit Separator Symbol ! ! The Get Digit Separator Symbol routine returns the system's digit ! separator symbol. ! INTEGER*4 lib$digit_sep EXTERNAL lib$digit_sep ! LIB$DISABLE_CTRL ! ! Disable CLI Interception of Control Characters ! ! 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 typed during an interactive ! terminal session. LIB$DISABLE_CTRL provides the same function as the ! DCL command SET NOCONTROL. ! INTEGER*4 lib$disable_ctrl EXTERNAL lib$disable_ctrl ! LIB$DO_COMMAND ! ! Execute Command ! ! The Execute Command routine stops program execution and directs the ! Command Language Interpreter to execute a command which 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. ! INTEGER*4 lib$do_command EXTERNAL lib$do_command ! LIB$EDIV ! ! Extended-Precision Divide ! ! The Extended-Precision Divide routine performs extended-precision ! division. LIB$EDIV makes the VAX EDIV instruction available as a ! callable routine. ! INTEGER*4 lib$ediv EXTERNAL lib$ediv ! LIB$EMODD ! ! Extended Multiply and Integerize Routines for D-Floating Point Values ! ! The Extended Multiply and Integerize routine (D-Floating Point Values) ! allows higher-level language users to perform accurate range reduction ! of D-floating arguments. ! ! D-floating point values are not supported in full precision on Alpha ! systems. They are precise to 56 bits on VAX systems, 53 bits on Alpha ! systems. ! INTEGER*4 lib$emodd EXTERNAL lib$emodd ! LIB$EMODT ! ! Extended Multiply and Integerize Routines for T-Floating Point Values ! ! The Extended Multiply and Integerize routine (T-Floating Point Values) ! allows higher-level language users to perform accurate range reduction ! of T-floating arguments. ! ! INTEGER*4 lib$emodt EXTERNAL lib$emodt ! LIB$EMODS ! ! Extended Multiply and Integerize Routines for S-Floating Point Values ! ! The Extended Multiply and Integerize routine (S-Floating Point Values) ! allows higher-level language users to perform accurate range reduction ! of S-floating arguments. ! INTEGER*4 lib$emods EXTERNAL lib$emods ! LIB$EMODF ! ! Extended Multiply and Integerize Routines for F-Floating Point Values ! ! The Extended Multiply and Integerize routine (F-Floating Point Values) ! allows higher-level language users to perform accurate range reduction ! of F-floating arguments. ! INTEGER*4 lib$emodf EXTERNAL lib$emodf ! LIB$EMODG ! ! Extended Multiply and Integerize Routines for G-Floating Point Values ! ! The Extended Multiply and Integerize routine (G-Floating Point Values) ! allows higher-level language users to perform accurate range reduction ! of G-floating arguments. ! INTEGER*4 lib$emodg EXTERNAL lib$emodg ! LIB$EMODH ! ! Extended Multiply and Integerize Routines for H-Floating Point Values ! ! On VAX VMS, the Extended Multiply and Integerize routine (H-Floating ! Point Values) allows higher-level language users to perform accurate ! range reduction of H-floating arguments. ! INTEGER*4 lib$emodh EXTERNAL lib$emodh ! LIB$EMUL ! ! Extended-Precision Multiply ! ! The Extended-Precision Multiply routine performs extended-precision ! multiplication. LIB$EMUL makes the VAX EMUL instruction available as ! a callable routine. ! INTEGER*4 lib$emul EXTERNAL lib$emul ! LIB$ENABLE_CTRL ! ! Enable CLI Interception of Control Characters ! ! 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. ! INTEGER*4 lib$enable_ctrl EXTERNAL lib$enable_ctrl ! LIB$ESTABLISH ! ! Establish a Condition Handler ! ! 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. ! ! ENTRY lib$establish ALIAS $lib_establish PARAMETER ( ! ADDRESS (ENTRY) NAMED new_handler IN ! TYPENAME procedure VALUE ) ! RETURNS ADDRESS (ENTRY) NAMED RESULT TYPENAME routine; ! LIB$EXPAND_NODENAME ! ! Expand a Node Name to its Full Name equivalent ! ! The Expand a Node Name to its Full Name equivalent routine ! expands a node name to its full name equivalent. ! INTEGER*4 lib$expand_nodename EXTERNAL lib$expand_nodename ! LIB$EXTV ! ! Extract a Field and Sign-Extend ! ! 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. ! INTEGER*4 lib$extv EXTERNAL lib$extv ! LIB$EXTZV ! ! Extract a Zero-Extended Field ! ! 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. ! INTEGER*4 lib$extzv EXTERNAL lib$extzv ! LIB$FFC ! ! Find First Clear or Set Bit ! ! 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. ! ! On Alpha VMS systems, Alpha instructions perform the ! equivalent operations. ! INTEGER*4 lib$ffc EXTERNAL lib$ffc ! LIB$FFS ! ! Find First Clear or Set Bit ! ! 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. ! ! On Alpha VMS systems, Alpha instructions perform the ! equivalent operations. ! INTEGER*4 lib$ffs EXTERNAL lib$ffs ! LIB$FID_TO_NAME ! ! Convert Device and File ID to File Specification ! ! The Convert Device and File ID to File Specification routine converts a ! disk device name and file identifier to a file specification. ! INTEGER*4 lib$fid_to_name EXTERNAL lib$fid_to_name ! LIB$FILE_SCAN ! ! 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. ! CP120606 - Changed fab type from unsigned int * to struct _fabdef * ! and data types of arguments to user_success_procedure and ! user_error_procedure from void to __unknown_params ! INTEGER*4 lib$file_scan EXTERNAL lib$file_scan ! LIB$FILE_SCAN_END ! ! End-of-File Scan ! ! The End-of-File Scan routine is called after each sequence of calls to ! LIB$FILE_SCAN. LIB$FILE_SCAN_END deallocates any saved Record Management ! Service (RMS) context and/or deallocates the virtual memory that had been ! allocated for holding the related file specification information. ! CP - Changed fab type from unsigned int * to struct _fabdef * ! INTEGER*4 lib$file_scan_end EXTERNAL lib$file_scan_end ! LIB$FIND_FILE ! ! Find File ! ! The Find File routine is called with a wildcard file specification for ! which it searches. LIB$FIND_FILE returns all file specifications that ! satisfy that wildcard file specification. ! INTEGER*4 lib$find_file EXTERNAL lib$find_file ! LIB$FIND_FILE_END ! ! End of Find File ! ! 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 Record ! Management Service (RMS) context and deallocates the virtual memory used ! to hold the allocated context block. ! INTEGER*4 lib$find_file_end EXTERNAL lib$find_file_end ! LIB$FIND_IMAGE_SYMBOL ! ! Find Universal Symbol in Shareable Image File ! ! 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. ! INTEGER*4 lib$find_image_symbol EXTERNAL lib$find_image_symbol ! LIB$FIND_VM_ZONE ! ! Return the Next Valid Zone Identifier ! ! The Return the Next Valid Zone Identifier routine returns the ! zone identifier of the next valid zone in the heap management ! database. ! INTEGER*4 lib$find_vm_zone EXTERNAL lib$find_vm_zone ! LIB$FIND_VM_ZONE_64 ! ! Return the Next Valid Zone Identifier ! ! The Return the Next Valid Zone Identifier routine returns the ! zone identifier of the next valid zone in the heap management ! database. ! INTEGER*4 lib$find_vm_zone_64 EXTERNAL lib$find_vm_zone_64 ! LIB$FIT_NODENAME ! ! Fit a Node Name into an output field ! ! The Fit a Node Name into an output field routine ! fits a Node Name into an output field. ! INTEGER*4 lib$fit_nodename EXTERNAL lib$fit_nodename ! LIB$FIXUP_FLT ! ! Fix Floating Reserved Operand ! ! 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 Alpha VMS systems in translated form ! and is applicable to translated VAX images only. ! INTEGER*4 lib$fixup_flt EXTERNAL lib$fixup_flt ! LIB$FLT_UNDER ! ! Floating-Point Underflow Detection ! ! 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 Alpha VMS systems in translated form ! and is applicable to translated VAX images only. ! INTEGER*4 lib$flt_under EXTERNAL lib$flt_under ! LIB$FORMAT_DATE_TIME ! ! Format Date and/or 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. ! INTEGER*4 lib$format_date_time EXTERNAL lib$format_date_time ! LIB$FORMAT_SOGW_PROT ! ! Format Protection Mask ! ! The Format Protection Mask routine translates a protection mask ! into a formatted string. ! INTEGER*4 lib$format_sogw_prot EXTERNAL lib$format_sogw_prot ! LIB$FREE_DATE_TIME_CONTEXT ! ! Free the Context Area Used When Formatting Dates and Times for Input or ! Output ! ! 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. ! INTEGER*4 lib$free_date_time_context EXTERNAL lib$free_date_time_context ! LIB$FREE_EF ! ! Free Event Flag ! ! The Free Event Flag routine frees a local event flag previously allocated ! by LIB$GET_EF. LIB$FREE_EF is the complement of LIB$GET_EF. ! INTEGER*4 lib$free_ef EXTERNAL lib$free_ef ! LIB$FREE_LUN ! ! Free Logical Unit Number ! ! 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. ! INTEGER*4 lib$free_lun EXTERNAL lib$free_lun ! LIB$FREE_TIMER ! ! Free Timer Storage ! ! The Free Timer Storage routine frees the storage allocated ! by LIB$INIT_TIMER. ! INTEGER*4 lib$free_timer EXTERNAL lib$free_timer ! LIB$FREE_VM ! ! Free Virtual Memory from Program Region ! ! The Free Virtual Memory from Program Region routine deallocates an ! entire block of contiguous bytes that were allocated by a previous call ! to LIB$GET_VM. The arguments passed are the same as for LIB$GET_VM. ! INTEGER*4 lib$free_vm EXTERNAL lib$free_vm ! LIB$FREE_VM_64 ! ! Free Virtual Memory from Program Region ! ! The Free Virtual Memory from Program Region routine deallocates an ! entire block of contiguous bytes that were allocated by a previous call ! to LIB$GET_VM_64. The arguments passed are the same as for ! LIB$GET_VM_64. ! INTEGER*4 lib$free_vm_64 EXTERNAL lib$free_vm_64 ! LIB$FREE_VM_PAGE ! ! Free Virtual Memory Page ! ! The Free Virtual Memory Page routine deallocates a block of ! contiguous pages on VAX or pagelets on Alpha that were allocated ! by previous calls to LIB$GET_VM_PAGE. ! INTEGER*4 lib$free_vm_page EXTERNAL lib$free_vm_page ! LIB$FREE_VM_PAGE_64 ! ! Free Virtual Memory Page ! ! The Free Virtual Memory Page routine deallocates a block of ! contiguous pages on VAX or pagelets on Alpha that were allocated ! by previous calls to LIB$GET_VM_PAGE_64. ! INTEGER*4 lib$free_vm_page_64 EXTERNAL lib$free_vm_page_64 ! LIB$GETDVI ! ! Get Device/Volume Information ! ! 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. ! INTEGER*4 lib$getdvi EXTERNAL lib$getdvi ! LIB$GETJPI ! ! Get Job/Process Information ! ! 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. ! INTEGER*4 lib$getjpi EXTERNAL lib$getjpi ! LIB$GETQUI ! ! Get Queue Information ! ! 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. ! INTEGER*4 lib$getqui EXTERNAL lib$getqui ! LIB$GETSYI ! ! Get Systemwide Information ! ! 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. ! INTEGER*4 lib$getsyi EXTERNAL lib$getsyi ! LIB$GET_ACCNAM ! ! Get Access Name Table for Protected Object Class ! ! The Get Access Name Table for Protected Object Class routine returns ! a pointer to the access name table for a protected object class that ! is specified by name. ! INTEGER*4 lib$get_accnam EXTERNAL lib$get_accnam ! LIB$GET_ACCNAM_BY_CONTEXT ! ! Get Access Name Table for Protected Object Class ! ! The Get Access Name Table for Protected Object Class routine returns ! a pointer to the access name table for a protected object class that ! is specified by a context. ! INTEGER*4 lib$get_accnam_by_context EXTERNAL lib$get_accnam_by_context ! LIB$GET_COMMAND ! ! Get Line from SYS$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. ! INTEGER*4 lib$get_command EXTERNAL lib$get_command ! LIB$GET_COMMON ! ! Get String from 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 which ! remains defined across multiple image activations in a process.) The ! string length is taken from the first longword of the common area. ! INTEGER*4 lib$get_common EXTERNAL lib$get_common ! LIB$GET_DATE_FORMAT ! ! Get the User's Date Input Format ! ! The Get The User's Date Input Format routine returns information about ! the user's choice of a date/time input format. ! INTEGER*4 lib$get_date_format EXTERNAL lib$get_date_format ! LIB$GET_EF ! ! Get Event Flag ! ! The Get Event Flag routine allocates one local event flag from a ! process-wide 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. ! INTEGER*4 lib$get_ef EXTERNAL lib$get_ef ! LIB$GET_FOREIGN ! ! Get Foreign Command Line ! ! 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. ! INTEGER*4 lib$get_foreign EXTERNAL lib$get_foreign ! LIB$GET_FULLNAME_OFFSET ! ! Get the Offset to the Starting Position of the Most Significant ! Part of a Full Name ! ! The Get the Offset to the Starting Position of the Most Significant ! Part of a Full Name routine gets the offset to the starting ! position of the most significant part of a full name. ! INTEGER*4 lib$get_fullname_offset EXTERNAL lib$get_fullname_offset ! LIB$GET_HOSTNAME ! ! Get Host Node Name ! ! The Get Host Node Name routine returns the host node name of ! the local system. ! INTEGER*4 lib$get_hostname EXTERNAL lib$get_hostname ! LIB$GET_INPUT ! ! Get Line from SYS$INPUT ! ! The Get Line from SYS$INPUT routine gets one record of ASCII text from ! the current controlling input device, specified by SYS$INPUT. ! INTEGER*4 lib$get_input EXTERNAL lib$get_input ! LIB$GET_LOGICAL ! ! Get Logical ! ! The Get Logical routine gets the logical name information by calling ! the system service routine SYS$TRNLNM. ! INTEGER*4 lib$get_logical EXTERNAL lib$get_logical ! LIB$GET_LUN ! ! Get Logical Unit Number ! ! The Get Logical Unit Number routine allocates one logical unit number ! from a process-wide pool. If a unit is available, its number is returned ! to the caller. Otherwise, an error is returned as the function value. ! INTEGER*4 lib$get_lun EXTERNAL lib$get_lun ! LIB$GET_MAXIMUM_DATE_LENGTH ! ! Retrieve the Maximum Length of a Date/Time String ! ! 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. ! INTEGER*4 lib$get_maximum_date_length EXTERNAL lib$get_maximum_date_length ! LIB$GET_SYMBOL ! ! Get Value of CLI 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. ! INTEGER*4 lib$get_symbol EXTERNAL lib$get_symbol ! LIB$GET_UIB_INFO ** IPF only ** ! ! Returns information from the unwind information block (UIB). ! INTEGER*4 lib$get_uib_info EXTERNAL lib$get_uib_info ! LIB$GET_USERS_LANGUAGE ! ! Return the User's 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. ! INTEGER*4 lib$get_users_language EXTERNAL lib$get_users_language ! LIB$GET_VM ! ! Allocate Virtual Memory ! ! The Allocate Virtual Memory routine allocates a specified number of ! contiguous bytes in the program region and returns the virtual address ! of the first byte allocated. ! INTEGER*4 lib$get_vm EXTERNAL lib$get_vm ! LIB$GET_VM_64 ! ! Allocate Virtual Memory ! ! The Allocate Virtual Memory routine allocates a specified number of ! contiguous bytes in the program region and returns the virtual address ! of the first byte allocated. ! INTEGER*4 lib$get_vm_64 EXTERNAL lib$get_vm_64 ! LIB$GET_VM_PAGE ! ! Get Virtual Memory Page ! ! The Get Virtual Memory Page routine allocates a specified number of ! contiguous pages on VAX and pagelets on Alpha of memory in the program ! region and returns the virtual address of the first allocated page on ! VAX and pagelet on Alpha. ! INTEGER*4 lib$get_vm_page EXTERNAL lib$get_vm_page ! LIB$GET_VM_PAGE_64 ! ! Get Virtual Memory Page ! ! The Get Virtual Memory Page routine allocates a specified number of ! contiguous pages on VAX and pagelets on Alpha of memory in the program ! region and returns the virtual address of the first allocated page on ! VAX and pagelet on Alpha. ! INTEGER*4 lib$get_vm_page_64 EXTERNAL lib$get_vm_page_64 ! LIB$ICHAR ! ! Convert First Character of String to Integer ! ! 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. ! INTEGER*4 lib$ichar EXTERNAL lib$ichar ! LIB$INDEX ! ! Index to Relative Position of Substring ! ! 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. ! INTEGER*4 lib$index EXTERNAL lib$index ! LIB$INIT_DATE_TIME_CONTEXT ! ! Initialize the Context Area Used in Formatting Dates and Times for Input ! or Output ! ! 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. ! INTEGER*4 lib$init_date_time_context EXTERNAL lib$init_date_time_context ! LIB$INIT_TIMER ! ! Initialize Times and Counts ! ! 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. ! INTEGER*4 lib$init_timer EXTERNAL lib$init_timer ! LIB$INSERT_TREE ! ! Insert Entry in a Balanced Binary Tree ! ! The Insert Entry in a Balanced Binary Tree routine inserts a node in a ! balanced binary tree. ! INTEGER*4 lib$insert_tree EXTERNAL lib$insert_tree ! LIB$INSERT_TREE_64 ! ! Insert Entry in a Balanced Binary Tree ! ! The Insert Entry in a Balanced Binary Tree routine inserts a node in a ! balanced binary tree. ! INTEGER*4 lib$insert_tree_64 EXTERNAL lib$insert_tree_64 ! LIB$INSQHI ! ! Insert Entry at Head of Queue ! ! The Insert Entry at Head of Queue routine inserts a queue entry at the ! head of the specified self-relative interlocked longword queue. ! LIB$INSQHI makes the VAX INSQHI instruction available as a callable ! routine. ! INTEGER*4 lib$insqhi EXTERNAL lib$insqhi ! LIB$INSQHIQ ! ! Insert Entry at Head of Queue (Quadword) ! ! The Insert Entry at Head of Queue routine inserts a queue entry at the ! head of the specified self-relative interlocked quadword queue. ! LIB$INSQHIQ makes the Alpha unprivileged PALcode instruction INSQHIQ ! available as a callable routine. ! INTEGER*4 lib$insqhiq EXTERNAL lib$insqhiq ! LIB$INSQTI ! ! Insert Entry at Tail of Queue ! ! The Insert Entry at Tail of Queue routine inserts a queue entry at the ! tail of the specified self-relative interlocked longword queue. ! LIB$INSQTI makes the VAX INSQTI instruction available as a callable ! routine. ! INTEGER*4 lib$insqti EXTERNAL lib$insqti ! LIB$INSQTIQ ! ! Insert Entry at Tail of Queue (Quadword) ! ! The Insert Entry at Tail of Queue routine inserts a queue entry at the ! tail of the specified self-relative interlocked quadword queue. ! LIB$INSQTIQ makes the Alpha unprivileged PALcode instruction INSQTIQ ! available as a callable routine. ! INTEGER*4 lib$insqtiq EXTERNAL lib$insqtiq ! LIB$INSV ! ! Insert a Variable Bit Field ! ! The Insert a Variable Bit Field routine replaces the variable bit field ! specified by the base, position, and size arguments with bits 0 through ! 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. ! ! Subroutine lib$insv ! LIB$INT_OVER ! ! Integer Overflow Detection ! ! 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 Alpha VMS systems in translated form ! and is applicable to translated VAX images only. ! INTEGER*4 lib$int_over EXTERNAL lib$int_over ! LIB$I64_CREATE_INVO_CONTEXT ** IPF only ** ! ! A thread can allocte an invocation context block on the heap by using the ! following function format: ! INTEGER*4 lib$i64_create_invo_context EXTERNAL lib$i64_create_invo_context ! LIB$I64_FREE_INVO_CONTEXT ** IPF only ** ! ! A thread can free an invocation context block to the heap by using the ! following function format: ! ! Subroutine lib$i64_free_invo_context ! LIB$I64_GET_CURR_INVO_CONTEXT ** IPF only ** ! ! A thread can obtain the invocation context of the current procedure by using the ! following function format: ! INTEGER*4 lib$i64_get_curr_invo_context EXTERNAL lib$i64_get_curr_invo_context ! LIB$I64_GET_CURR_INVO_HANDLE ** IPF only ** ! ! A thread can obtain the invocation handle corresponding to current invocation ! context of the current procedure by using the following function format: ! INTEGER*4 lib$i64_get_curr_invo_handle EXTERNAL lib$i64_get_curr_invo_handle ! LIB$I64_GET_INVO_CONTEXT ** IPF only ** ! ! A thread can obtain the invocation context of any active procedure by using the ! following function format: ! INTEGER*4 lib$i64_get_invo_context EXTERNAL lib$i64_get_invo_context ! LIB$I64_GET_INVO_HANDLE ** IPF only ** ! ! A thread can obtain an invocation handle corresponding to any invocation context ! block by using the following function format: ! INTEGER*4 lib$i64_get_invo_handle EXTERNAL lib$i64_get_invo_handle ! LIB$I64_GET_PREV_INVO_CONTEXT ** IPF only ** ! ! A thread can obtain the invocation context of the procedure context preceding any ! other procedure context by using the following function format: ! INTEGER*4 lib$i64_get_prev_invo_context EXTERNAL lib$i64_get_prev_invo_context ! LIB$I64_GET_PREV_INVO_HANDLE ** IPF only ** ! ! A thread can obtain an invocation handle of the procedure context preceding that ! of a specified procedure context by using the following function format: ! INTEGER*4 lib$i64_get_prev_invo_handle EXTERNAL lib$i64_get_prev_invo_handle ! LIB$I64_INIT_INVO_CONTEXT ** IPF only ** ! ! A thread can initialize an invocation context block by using the ! following function format: ! INTEGER*4 lib$i64_init_invo_context EXTERNAL lib$i64_init_invo_context ! LIB$I64_PREV_INVO_END ** IPF only ** ! ! This routine should be called at the conclusion of call tracing operations to ! free the memory used to process unwind descriptors. The call tracing routines ! are LIB$I64_GET_INVO_CONTEXT, LIB$I64_GET_PREV_INVO_CONTEXT, and ! LIB$I64_GET_CURR_INVO_CONTEXT. ! ! To provide efficient call tracing, some unwind information can be tracked in heap ! storage from one call to the next. This heap storage should be freed before you ! release or reuse the invocation context block. ! ! Calling this routine is only necessary if the LIBICB$V_UO_FLAG_CACHE_UNWIND ! flag is set in the LIBICB$Q_UO_FLAGS field of the invocation context ! block. This flag causes unwind information to be cached between ! calls. ! INTEGER*4 lib$i64_prev_invo_end EXTERNAL lib$i64_prev_invo_end ! LIB$I64_PUT_INVO_REGISTERS ** IPF only ** ! ! The fields of a given procedure invocation context can be updated with new ! register contents by calling a system library function in the following format: ! INTEGER*4 lib$i64_put_invo_registers EXTERNAL lib$i64_put_invo_registers ! LIB$I64_SET_FPSR ** IPF only ** ! ! Given an invocation context block and a quadword FPSR value in fpsr_copy, ! write the fpsr_copy value to the invocation context block FPSR and then use ! LIB$I64_PUT_INVO_REGISTERS to write to the actual context. The invocation ! context block remains unchanged if the routine fails. ! INTEGER*4 lib$i64_set_fpsr EXTERNAL lib$i64_set_fpsr ! LIB$I64_GET_FR ** IPF only ** ! ! Given an invocation context block and floating-point register index such that ! 2 <= index < 128, copy the register value to fr_copy. For example, an index ! value of 4 fetches the invocation context block FREG[4] value, which represents ! the contents of F4 for the context. ! INTEGER*4 lib$i64_get_fr EXTERNAL lib$i64_get_fr ! LIB$I64_SET_FR ** IPF only ** ! ! Given an invocation context block, a floating-point register index, and a floatingpoint ! register value in fr_copy, writes the corresponding invocation context block ! FREG entry, and calls LIB$I64_PUT_INVO_REGISTERS to write the actual ! context. The invocation context block remains unchanged if the routine fails. ! INTEGER*4 lib$i64_set_fr EXTERNAL lib$i64_set_fr ! LIB$I64_GET_GR ** IPF only ** ! ! Given an invocation context block and general register index such that ! 0 < index < 128,) copy the register value to gr_copy, for example, index 4 ! fetches the invocation context block IREG[4] value, which represents the contents ! of R4 for the context. ! INTEGER*4 lib$i64_get_gr EXTERNAL lib$i64_get_gr ! LIB$I64_SET_GR ** IPF only ** ! ! Given an invocation context block, a general register index such that ! 0 < index < 128, and a quadword value gr_copy, writes the corresponding ! invocation context block general register, clears the corresponding NaT bit ! and uses LIB$I64_PUT_INVO_REGISTERS to write to the actual context. The ! invocation context block remains unchanged if the routine fails. ! INTEGER*4 lib$i64_set_gr EXTERNAL lib$i64_set_gr ! LIB$I64_SET_PC ** IPF only ** ! ! Given an invocation context block and a quadword PC value in pc_copy, write ! the pc_copy value to the invocation context block PC and then use LIB$I64_PUT_ ! INVO_REGISTERS to write to the actual context. The invocation context block ! remains unchanged if the routine fails. ! INTEGER*4 lib$i64_set_pc EXTERNAL lib$i64_set_pc ! LIB$I64_GET_UNWIND_HANDLER_FV ** IPF only ** ! ! Given a pc_value, find the function value (address of the procedure descriptor) ! for the condition handler, if present, and write it to handler_fv. If not present, ! then write 0 to handler_fv. ! INTEGER*4 lib$i64_get_unwind_handler_fv EXTERNAL lib$i64_get_unwind_handler_fv ! LIB$I64_GET_UNWIND_LSDA ** IPF only ** ! ! Given a pc_value, find the address of the unwind information block ! language-specific data area (LSDA), if present, and write it to unwind_lsda_p. ! If not present, then write 0 to unwind_lsda_va. ! INTEGER*4 lib$i64_get_unwind_lsda EXTERNAL lib$i64_get_unwind_lsda ! LIB$I64_GET_UNWIND_OSSD ** IPF only ** ! ! Given a pc_value, find the address of the unwind information block operating ! system-specific data area, if present, and write it to unwind_ossd_p. If not ! present, then write 0 to unwind_ossd_p. ! INTEGER*4 lib$i64_get_unwind_ossd EXTERNAL lib$i64_get_unwind_ossd ! LIB$I64_IS_AST_DISPATCH_FRAME ** IPF only ** ! ! Used to determine whether a given PC value ! represents the AST dispatch frame. ! INTEGER*4 lib$i64_is_ast_dispatch_frame EXTERNAL lib$i64_is_ast_dispatch_frame ! LIB$I64_IS_EXC_DISPATCH_FRAME ** IPF only ** ! ! Used to determine whether a given PC value ! represents the exception dispatch frame. ! INTEGER*4 lib$i64_is_exc_dispatch_frame EXTERNAL lib$i64_is_exc_dispatch_frame ! LIB$LEN ! ! Length of String Returned as Longword Value ! ! The Length of String Returned as Longword Value routine returns the ! length of a string. ! INTEGER*2 lib$len EXTERNAL lib$len ! LIB$LOCC ! ! Locate a Character ! ! 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. ! INTEGER*4 lib$locc EXTERNAL lib$locc ! LIB$LOCK_IMAGE ! ! Lock Image in working set ! ! Lock all address ranges associated with a specified image ! into the working set. ! INTEGER*4 lib$lock_image EXTERNAL lib$lock_image ! LIB$LOOKUP_KEY ! ! Look Up Keyword in Table ! ! 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. ! INTEGER*4 lib$lookup_key EXTERNAL lib$lookup_key ! LIB$LOOKUP_TREE ! ! Look Up an Entry in a Balanced Binary Tree ! ! The Look Up an Entry in a Balanced Binary Tree routine looks up an ! entry in a balanced binary tree. ! INTEGER*4 lib$lookup_tree EXTERNAL lib$lookup_tree ! LIB$LOOKUP_TREE_64 ! ! Look Up an Entry in a Balanced Binary Tree ! ! The Look Up an Entry in a Balanced Binary Tree routine looks up an ! entry in a balanced binary tree. ! INTEGER*4 lib$lookup_tree_64 EXTERNAL lib$lookup_tree_64 ! LIB$LP_LINES ! ! Lines on Each Printer Page ! ! 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 VMS ! utilities that produce listing files and paginate files. ! INTEGER*4 lib$lp_lines EXTERNAL lib$lp_lines ! LIB$MATCHC ! ! Match Characters, Return Relative Position ! ! 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. ! INTEGER*4 lib$matchc EXTERNAL lib$matchc ! LIB$MATCH_COND ! ! Match Condition Values ! ! The Match Condition Values routine checks to see if a given condition ! value matches a list of condition values that you supply. ! INTEGER*4 lib$match_cond EXTERNAL lib$match_cond ! LIB$MOVC3 ! ! Move Characters ! ! 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. ! ! Subroutine lib$movc3 ! LIB$MOVC5 ! ! Move Characters with Fill ! ! 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. ! ! Subroutine lib$movc5 ! LIB$MOVTC ! ! Move Translated Characters ! ! 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. ! INTEGER*4 lib$movtc EXTERNAL lib$movtc ! LIB$MOVTUC ! ! Move Translated Until Character ! ! 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. ! INTEGER*4 lib$movtuc EXTERNAL lib$movtuc ! LIB$MT_DENSITY_CONVERSION ! ! Convert the DCL command line qualifiers specfied for ! /DENSITY, /COMPACTION, /MEDIA_FORMAT=DENSITY= and ! /MEDIA_FORMAT=COMPACTION to a OpenVMS density/compression ! code (MT3DEF or MTDEF symbols) and return value indicating ! the tape driver owning the device is MTD enhanced or not. ! INTEGER*4 lib$mt_density_conversion EXTERNAL lib$mt_density_conversion ! ! LIB$MT_DENSITY_VERIFICATION ! ! Verify a OpenVMS density/compression code (MT3DEF or MTDEF ! symbols) is indeed an acceptable density/compression code ! for both MTD enhanced tape device drivers and non enhanced ! tape device drivers. Also return a value indicating ! the driver owning the device is MTD enhanced or not. ! INTEGER*4 lib$mt_density_verification EXTERNAL lib$mt_density_verification ! ! ! LIB$MT_DENSITY_STRCVT ! ! Copies the string equivalent of a OpenVMS density/compression ! code into a user supplied buffer. This works for both MT3DEF ! symbols and MTDEF symbols. ! ! INTEGER*4 lib$mt_density_strcvt EXTERNAL lib$mt_density_strcvt ! LIB$MULTF_DELTA_TIME ! ! Multiply Delta Time by an F_Floating Scalar ! ! The Multiply Delta Time by an F-Floating Scalar routine multiplies a ! delta time by an F-floating scalar. ! INTEGER*4 lib$multf_delta_time EXTERNAL lib$multf_delta_time ! LIB$MULTS_DELTA_TIME ! ! Multiply Delta Time by an S_Floating Scalar ! ! The Multiply Delta Time by an S-Floating Scalar routine multiplies a ! delta time by an S-floating scalar. ! INTEGER*4 lib$mults_delta_time EXTERNAL lib$mults_delta_time ! LIB$MULT_DELTA_TIME ! ! Multiply Delta Time by Scalar ! ! The Multiply Delta Time by Scalar routine multiplies a delta time by ! a longword integer scalar. ! INTEGER*4 lib$mult_delta_time EXTERNAL lib$mult_delta_time ! LIB$PARSE_ACCESS_CODE ! ! Parse Access Encoded Name String ! ! The Parse Access Encoded Name String routine parses and translates ! a string of access names into a mask for a particular ownership ! category. ! INTEGER*4 lib$parse_access_code EXTERNAL lib$parse_access_code ! LIB$PARSE_SOGW_PROT ! ! Parse Protection String ! ! The Parse Protection String routine parses and translates ! a protection string into a protection mask. ! INTEGER*4 lib$parse_sogw_prot EXTERNAL lib$parse_sogw_prot ! LIB$PAUSE ! ! Pause Program Execution ! ! The Pause Program Execution routine suspends program execution and ! returns control to the calling command level. ! INTEGER*4 lib$pause EXTERNAL lib$pause ! LIB$POLYD ! ! Evaluate Polynomials ! ! The Evaluate Polynomials routine (D-floating point values) allows ! higher-level language users to evaluate D-floating point value ! polynomials. ! INTEGER*4 lib$polyd EXTERNAL lib$polyd ! LIB$POLYF ! ! Evaluate Polynomials ! ! The Evaluate Polynomials routine (F-floating point values) allows ! higher-level language users to evaluate F-floating point ! polynomials. ! INTEGER*4 lib$polyf EXTERNAL lib$polyf ! LIB$POLYT ! ! Evaluate Polynomials ! ! The Evaluate Polynomials routine (T-floating point values) allows ! higher-level language users to evaluate T-floating point value ! polynomials. ! INTEGER*4 lib$polyt EXTERNAL lib$polyt ! LIB$POLYS ! ! Evaluate Polynomials ! ! The Evaluate Polynomials routine (S-floating point values) allows ! higher-level language users to evaluate S-floating point ! polynomials. ! INTEGER*4 lib$polys EXTERNAL lib$polys ! LIB$POLYG ! ! Evaluate Polynomials ! ! The Evaluate Polynomials routine (G-floating point values) allows ! higher-level language users to evaluate G-floating point value ! polynomials. ! INTEGER*4 lib$polyg EXTERNAL lib$polyg ! LIB$POLYH ! ! Evaluate Polynomials ! ! On VAX VMS, the Evaluate Polynomials routine (H-floating point values) ! allows higher-level language users to evaluate H-floating point value ! polynomials. ! ! This routine is not available to native Alpha VMS programs, but is ! available to translated VAX images. ! ! This routine is not available to native Alpha VMS programs, but is ! recognized and handled appropriately by most Digital high-level language ! compilers. ! INTEGER*4 lib$polyh EXTERNAL lib$polyh ! LIB$PUT_COMMON ! ! Put String to 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 which 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. ! INTEGER*4 lib$put_common EXTERNAL lib$put_common ! LIB$PUT_OUTPUT ! ! Put Line to SYS$OUTPUT ! ! The Put Line to SYS$OUTPUT routine writes a record to the current ! controlling output device, specified by SYS$OUTPUT using the RMS $PUT ! service. ! INTEGER*4 lib$put_output EXTERNAL lib$put_output ! LIB$RADIX_POINT ! ! Radix Point Symbol ! ! 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. ! INTEGER*4 lib$radix_point EXTERNAL lib$radix_point ! LIB$REMQHI ! ! Remove Entry from Head of Queue ! ! The Remove Entry from Head of Queue routine removes an entry from the ! head of the specified self-relative interlocked longword queue. ! LIB$REMQHI makes the VAX REMQHI instruction available as ! a callable routine. ! INTEGER*4 lib$remqhi EXTERNAL lib$remqhi ! LIB$REMQHIQ ! ! Remove Entry from Head of Queue (Quadword) ! ! The Remove Entry from Head of Queue routine removes an entry from the ! head of the specified self-relative interlocked quadword queue. ! LIB$REMQHIQ makes the Alpha unprivileged PALcode instruction REMQHIQ ! available as a callable routine. ! INTEGER*4 lib$remqhiq EXTERNAL lib$remqhiq ! LIB$REMQTI ! ! Remove Entry from Tail of Queue ! ! The Remove Entry from Tail of Queue routine removes an entry from the ! tail of the specified self-relative interlocked longword queue. ! LIB$REMQTI makes the VAX REMQTI instruction available as a ! callable routine. ! INTEGER*4 lib$remqti EXTERNAL lib$remqti ! LIB$REMQTIQ ! ! Remove Entry from Tail of Queue (Quadword) ! ! The Remove Entry from Tail of Queue routine removes an entry from the ! tail of the specified self-relative interlocked quadword queue. ! LIB$REMQTIQ makes the Alpha unprivileged PALcode instruction REMQTIQ ! available as a callable routine. ! INTEGER*4 lib$remqtiq EXTERNAL lib$remqtiq ! LIB$RENAME_FILE ! ! Rename One or More Files ! ! The Rename One or More Files routine changes the names of one or more ! files. The specification of the files to be renamed may include ! wildcards. LIB$RENAME_FILE is similar in function to the DCL command ! RENAME. ! INTEGER*4 lib$rename_file EXTERNAL lib$rename_file ! LIB$RESERVE_EF ! ! Reserve Event Flag ! ! The Reserve Event Flag routine allocates a local event flag number ! specified by event-flag-number. ! INTEGER*4 lib$reserve_ef EXTERNAL lib$reserve_ef ! LIB$RESET_VM_ZONE ! ! Reset Virtual Memory Zone ! ! The Reset Virtual Memory Zone routine frees all blocks of memory that ! were previously allocated from the zone. ! INTEGER*4 lib$reset_vm_zone EXTERNAL lib$reset_vm_zone ! LIB$RESET_VM_ZONE_64 ! ! Reset Virtual Memory Zone ! ! The Reset Virtual Memory Zone routine frees all blocks of memory that ! were previously allocated from the zone. ! INTEGER*4 lib$reset_vm_zone_64 EXTERNAL lib$reset_vm_zone_64 ! LIB$REVERT ! ! Revert to the Handler of the Routine Activator ! ! 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. ! ! ENTRY lib$revert ALIAS $lib_revert ! RETURNS ADDRESS NAMED RESULT TYPENAME address; ! LIB$RUN_PROGRAM ! ! Run New Program ! ! The Run New Program routine causes the current program to stop running ! and begins execution of another program. ! INTEGER*4 lib$run_program EXTERNAL lib$run_program ! LIB$SCANC ! ! Scan for Characters and Return Relative Position ! ! 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. ! INTEGER*4 lib$scanc EXTERNAL lib$scanc ! LIB$SCOPY_DXDX ! ! Copy Source String Passed by Descriptor to Destination ! ! The Copy Source String Passed by Descriptor to Destination routine ! copies a source string passed by descriptor to a destination string. ! INTEGER*4 lib$scopy_dxdx EXTERNAL lib$scopy_dxdx ! LIB$SCOPY_R_DX ! ! Copy Source String Passed by Reference to Destination String ! ! The Copy Source String Passed by Reference to Destination String routine ! copies a source string passed by reference to a destination string. ! INTEGER*4 lib$scopy_r_dx EXTERNAL lib$scopy_r_dx ! LIB$SCOPY_R_DX_64 ! ! Copy Source String Passed by Reference to Destination String ! ! The Copy Source String Passed by Reference to Destination String routine ! copies a source string passed by reference to a destination string. ! INTEGER*4 lib$scopy_r_dx_64 EXTERNAL lib$scopy_r_dx_64 ! LIB$SET_LOGICAL ! ! Set Logical Name ! ! 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 DEFINE ! command. ! INTEGER*4 lib$set_logical EXTERNAL lib$set_logical ! LIB$SET_SYMBOL ! ! Set Value of CLI Symbol ! ! The Set Value of CLI Symbol routine requests the calling process's ! Command Language Interpreter (CLI) to define or redefine a CLI symbol. ! INTEGER*4 lib$set_symbol EXTERNAL lib$set_symbol ! LIB$SFREE1_DD ! ! Free One Dynamic String ! ! The Free One Dynamic String routine returns the dynamically allocated ! storage for a dynamic string. ! INTEGER*4 lib$sfree1_dd EXTERNAL lib$sfree1_dd ! LIB$SFREEN_DD ! ! Free One or More Dynamic Strings ! ! The Free One or More Dynamic Strings routine returns one or more dynamic ! strings to free storage. ! INTEGER*4 lib$sfreen_dd EXTERNAL lib$sfreen_dd ! LIB$SGET1_DD ! ! Get One Dynamic String ! ! The Get One Dynamic String routine allocates dynamic virtual memory to ! the string descriptor you specify. ! INTEGER*4 lib$sget1_dd EXTERNAL lib$sget1_dd ! LIB$SGET1_DD_64 ! ! Get One Dynamic String ! ! The Get One Dynamic String routine allocates dynamic virtual memory to ! the string descriptor you specify. ! INTEGER*4 lib$sget1_dd_64 EXTERNAL lib$sget1_dd_64 ! LIB$SHOW_TIMER ! ! Show Accumulated Times and Counts ! ! 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. ! INTEGER*4 lib$show_timer EXTERNAL lib$show_timer ! LIB$SHOW_VM ! ! Show Virtual Memory Statistics ! ! The Show Virtual Memory Statistics routine returns the statistics ! accumulated from calls to LIB$GET_VM, LIB$FREE_VM, LIB$GET_VM_PAGE, ! and LIB$FREE_VM_PAGE. ! INTEGER*4 lib$show_vm EXTERNAL lib$show_vm ! LIB$SHOW_VM_64 ! ! Show Virtual Memory Statistics ! ! The Show Virtual Memory Statistics routine returns the statistics ! accumulated from calls to LIB$GET_VM_64, LIB$FREE_VM_64, ! LIB$GET_VM_PAGE_64, and LIB$FREE_VM_PAGE_64. ! INTEGER*4 lib$show_vm_64 EXTERNAL lib$show_vm_64 ! LIB$SHOW_VM_ZONE ! ! Return Information About a Zone ! ! The Return Information About a Zone routine returns formatted information ! about the specified zone, detailing such information as the zone's name, ! characteristics, and areas, and then passes the information to the ! specified or default action routine. ! INTEGER*4 lib$show_vm_zone EXTERNAL lib$show_vm_zone ! LIB$SHOW_VM_ZONE_64 ! ! Return Information About a Zone ! ! The Return Information About a Zone routine returns formatted information ! about the specified zone, detailing such information as the zone's name, ! characteristics, and areas, and then passes the information to the ! specified or default action routine. ! INTEGER*4 lib$show_vm_zone_64 EXTERNAL lib$show_vm_zone_64 ! LIB$SIGNAL ! ! Signal Exception Condition ! ! 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. ! ! Subroutine lib$signal ! LIB$SIG_TO_RET ! ! Signal Converted to a Return Status ! ! 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. ! INTEGER*4 lib$sig_to_ret EXTERNAL lib$sig_to_ret ! LIB$SIG_TO_STOP ! ! Convert a Signaled Condition to a Signaled Stop ! ! The Convert a Signaled Condition to a Signaled Stop routine converts a ! signaled condition to a signaled condition that cannot be continued. ! INTEGER*4 lib$sig_to_stop EXTERNAL lib$sig_to_stop ! LIB$SIM_TRAP ! ! Simulate Floating 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 Alpha VMS programs, but is ! available to translated VAX images. ! INTEGER*4 lib$sim_trap EXTERNAL lib$sim_trap ! LIB$SKPC ! ! Skip Equal Characters ! ! 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. ! INTEGER*4 lib$skpc EXTERNAL lib$skpc ! LIB$SPANC ! ! Skip Selected Characters ! ! 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. ! INTEGER*4 lib$spanc EXTERNAL lib$spanc ! LIB$SPAWN ! ! Spawn Subprocess ! ! 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 SPAWN command. ! INTEGER*4 lib$spawn EXTERNAL lib$spawn ! LIB$STAT_TIMER ! ! Statistics, Return Accumulated Times and Counts ! ! 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. ! INTEGER*4 lib$stat_timer EXTERNAL lib$stat_timer ! LIB$STAT_VM ! ! Return Virtual Memory Statistics ! ! 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. ! INTEGER*4 lib$stat_vm EXTERNAL lib$stat_vm ! LIB$STAT_VM_64 ! ! Return Virtual Memory Statistics ! ! The Return Virtual Memory Statistics routine returns to its caller one of ! six statistics available from calls to LIB$GET_VM_64/LIB$FREE_VM_64 and ! LIB$GET_VM_PAGE_64/LIB$FREE_VM_PAGE_64. Unlike LIB$SHOW_VM, 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. ! INTEGER*4 lib$stat_vm_64 EXTERNAL lib$stat_vm_64 ! LIB$STAT_VM_ZONE ! ! Return Information About a Zone ! ! The Return Information About a Zone routine returns a single piece of ! information about the specified zone. ! ! Edit: Routine LIB$STAT_VM_ZONE is not yet implemented. ! ! ENTRY lib$stat_vm_zone ALIAS $lib_stat_vm_zone PARAMETER ( ! LONGWORD UNSIGNED NAMED zone_id IN ! TYPENAME identifier REFERENCE, ! LONGWORD NAMED item_code IN ! TYPENAME longword_signed REFERENCE, ! LONGWORD NAMED resultant_value OUT OPTIONAL ! TYPENAME longword_signed REFERENCE, ! CHARACTER RTL_STR_DESC NAMED resultant_string OUT OPTIONAL ! TYPENAME char_string, ! WORD UNSIGNED NAMED resultant_length OUT OPTIONAL ! TYPENAME word_unsigned REFERENCE ) ! RETURNS LONGWORD UNSIGNED TYPENAME cond_value; ! LIB$STOP ! ! Stop Execution and Signal the Condition ! ! 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. ! ! Subroutine lib$stop ! LIB$SUBX ! ! Multiple-Precision Binary Subtraction ! ! The Multiple-Precision Binary Subtraction routine performs subtraction ! on signed two's complement integers of arbitrary length. ! INTEGER*4 lib$subx EXTERNAL lib$subx ! LIB$SUB_TIMES ! ! Subtract Two Quadword Times ! ! The Subtract Two Quadword Times routine subtracts two VMS ! internal-time-format times. ! INTEGER*4 lib$sub_times EXTERNAL lib$sub_times ! LIB$SYS_ASCTIM ! ! Invoke $ASCTIM to Convert Binary Time to ASCII String ! ! 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. ! INTEGER*4 lib$sys_asctim EXTERNAL lib$sys_asctim ! LIB$SYS_FAO ! ! Invoke $FAO System Service to Format Output ! ! The Invoke $FAO System Service to Format Output routine calls $FAO, ! 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 will occur. ! INTEGER*4 lib$sys_fao EXTERNAL lib$sys_fao ! LIB$SYS_FAOL ! ! Invoke $FAOL System Service to Format Output ! ! The Invoke $FAOL System Service to Format Output routine calls the ! system service routine $FAOL, 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 will occur. ! INTEGER*4 lib$sys_faol EXTERNAL lib$sys_faol ! LIB$SYS_FAOL_64 ! ! Invoke $FAOL System Service to Format Output ! ! The Invoke $FAOL System Service to Format Output routine calls the ! system service routine $FAOL, 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 will occur. ! INTEGER*4 lib$sys_faol_64 EXTERNAL lib$sys_faol_64 ! LIB$SYS_GETMSG ! ! Invoke $GETMSG System Service to Get Message Text ! ! 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. ! INTEGER*4 lib$sys_getmsg EXTERNAL lib$sys_getmsg ! LIB$SYS_TRNLOG ! ! Invoke $TRNLOG System Service to Translate Logical Name ! ! The Invoke $TRNLOG System Service to Translate Logical Name routine ! uses the system service $TRNLOG to translate a logical name. ! LIB$SYS_TRNLOG returns the logical name's translation using the ! semantics of the caller's string. ! INTEGER*4 lib$sys_trnlog EXTERNAL lib$sys_trnlog ! LIB$TPARSE/LIB$TABLE_PARSE ! ! Table-Driven Finite-State Parser ! ! 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$TPARSE performs this function on VAX VMS. ! ! LIB$TABLE_PARSE performs this function on Alpha VMS and is available ! only on Alpha VMS. LIB$TPARSE is available in translated form on Alpha ! VMS. LIB$TABLE_PARSE differs from LIB$TPARSE only in the way that user ! specified action routines are called. ! INTEGER*4 lib$table_parse EXTERNAL lib$table_parse ! ENTRY lib$tparse ALIAS $lib_tparse PARAMETER ( ! ANY NAMED argument_block IN OUT ! TYPENAME any REFERENCE, ! ANY NAMED state_table IN ! TYPENAME any REFERENCE, ! ANY NAMED key_table IN ! TYPENAME any REFERENCE ) ! RETURNS LONGWORD UNSIGNED TYPENAME cond_value; ! LIB$TRAVERSE_TREE ! ! Traverse a Balanced Binary Tree ! ! The Traverse a Balanced Binary Tree routine calls an action routine ! for each node in a binary tree. ! INTEGER*4 lib$traverse_tree EXTERNAL lib$traverse_tree ! LIB$TRAVERSE_TREE_64 ! ! Traverse a Balanced Binary Tree ! ! The Traverse a Balanced Binary Tree routine calls an action routine ! for each node in a binary tree. ! INTEGER*4 lib$traverse_tree_64 EXTERNAL lib$traverse_tree_64 ! LIB$TRA_ASC_EBC ! ! Translate ASCII to EBCDIC ! ! The Translate ASCII to EBCDIC routine translates an ASCII string ! to an EBCDIC string. ! INTEGER*4 lib$tra_asc_ebc EXTERNAL lib$tra_asc_ebc ! LIB$TRA_EBC_ASC ! ! Translate EBCDIC to ASCII ! ! The Translate EBCDIC to ASCII routine translates an EBCDIC string ! to an ASCII string. ! INTEGER*4 lib$tra_ebc_asc EXTERNAL lib$tra_ebc_asc ! LIB$TRIM_FILESPEC ! ! Fit Long File Specification into Fixed Field ! ! The Fit Long File Specification into Fixed Field routine takes a file ! specification, such as an RMS resultant name string, and shortens it ! (if necessary) so that it fits into a field of fixed width. ! INTEGER*4 lib$trim_filespec EXTERNAL lib$trim_filespec ! LIB$TRIM_FULLNAME ! ! Trim a Full Name to Fit into a Desired Output Field ! ! The Trim a Full Name to Fit into a Desired Output Field routine ! trims a full name to fit into a desired output field. ! INTEGER*4 lib$trim_fullname EXTERNAL lib$trim_fullname ! LIB$UID_TO_ASCII ! ! Convert a UID to Text ! ! The Convert a UID to Text routine converts a UID to ! standard representation ina an ASCII text string. ! INTEGER*4 lib$uid_to_ascii EXTERNAL lib$uid_to_ascii ! LIB$UNLOCK_IMAGE ! ! Unlock Image from working set ! ! Unlock all address ranges associated with a specified image ! from the working set. ! INTEGER*4 lib$unlock_image EXTERNAL lib$unlock_image ! LIB$VERIFY_VM_ZONE ! ! Verify a Zone ! ! The Verify a Zone routine performs verification of a zone. ! INTEGER*4 lib$verify_vm_zone EXTERNAL lib$verify_vm_zone ! LIB$VERIFY_VM_ZONE_64 ! ! Verify a Zone ! ! The Verify a Zone routine performs verification of a zone. ! INTEGER*4 lib$verify_vm_zone_64 EXTERNAL lib$verify_vm_zone_64 ! LIB$WAIT ! ! Wait a Specified Period of Time ! ! The Wait a Specified Period of Time routine places the current process ! into hibernation for the number of seconds specified in its argument. ! INTEGER*4 lib$wait EXTERNAL lib$wait !DEC$ END OPTIONS