(********************************************************************************************************************************) (* Created: 12-Mar-2025 17:18:21 by OpenVMS SDL V3.7 *) (* Source: 12-DEC-2024 18:05:30 CMS$BUILD_ROOT:[SRC]CMS$ROUTINES.SDL;1 *) (********************************************************************************************************************************) MODULE CMS$ROUTINES ; [HIDDEN] TYPE (**** Pre-declared data types ****) $BYTE = [BYTE] -128..127; $WORD = [WORD] -32768..32767; $QUAD = [QUAD,UNSAFE] RECORD L0:UNSIGNED; L1:INTEGER; END; $OCTA = [OCTA,UNSAFE] RECORD L0,L1,L2:UNSIGNED; L3:INTEGER; END; $UBYTE = [BYTE] 0..255; $UWORD = [WORD] 0..65535; $UQUAD = [QUAD,UNSAFE] RECORD L0,L1:UNSIGNED; END; $UOCTA = [OCTA,UNSAFE] RECORD L0,L1,L2,L3:UNSIGNED; END; $UOCTAQUAD = [OCTA(2),UNSAFE] RECORD L0,L1,L2,L3,L4,L5,L6,L7:UNSIGNED; END; $PACKED_DEC = [BIT(4),UNSAFE] 0..15; $DEFTYP = [UNSAFE] INTEGER; $DEFPTR = [UNSAFE] ^$DEFTYP; $BOOL = [BIT(1),UNSAFE] BOOLEAN; $BIT2 = [BIT(2),UNSAFE] 0..3; $BIT3 = [BIT(3),UNSAFE] 0..7; $BIT4 = [BIT(4),UNSAFE] 0..15; $BIT5 = [BIT(5),UNSAFE] 0..31; $BIT6 = [BIT(6),UNSAFE] 0..63; $BIT7 = [BIT(7),UNSAFE] 0..127; $BIT8 = [BIT(8),UNSAFE] 0..255; $BIT9 = [BIT(9),UNSAFE] 0..511; $BIT10 = [BIT(10),UNSAFE] 0..1023; $BIT11 = [BIT(11),UNSAFE] 0..2047; $BIT12 = [BIT(12),UNSAFE] 0..4095; $BIT13 = [BIT(13),UNSAFE] 0..8191; $BIT14 = [BIT(14),UNSAFE] 0..16383; $BIT15 = [BIT(15),UNSAFE] 0..32767; $BIT16 = [BIT(16),UNSAFE] 0..65535; $BIT17 = [BIT(17),UNSAFE] 0..131071; $BIT18 = [BIT(18),UNSAFE] 0..262143; $BIT19 = [BIT(19),UNSAFE] 0..524287; $BIT20 = [BIT(20),UNSAFE] 0..1048575; $BIT21 = [BIT(21),UNSAFE] 0..2097151; $BIT22 = [BIT(22),UNSAFE] 0..4194303; $BIT23 = [BIT(23),UNSAFE] 0..8388607; $BIT24 = [BIT(24),UNSAFE] 0..16777215; $BIT25 = [BIT(25),UNSAFE] 0..33554431; $BIT26 = [BIT(26),UNSAFE] 0..67108863; $BIT27 = [BIT(27),UNSAFE] 0..134217727; $BIT28 = [BIT(28),UNSAFE] 0..268435455; $BIT29 = [BIT(29),UNSAFE] 0..536870911; $BIT30 = [BIT(30),UNSAFE] 0..1073741823; $BIT31 = [BIT(31),UNSAFE] 0..2147483647; $BIT32 = [BIT(32),UNSAFE] UNSIGNED; (*** MODULE CMS$ROUTINES IDENT V4.8-13 ***) (* *) (* User Argument *) (* *) (* *) (* The user argument is defined as being of undefined type and mechanism. *) (* CMS passes this on unchanged to the callback routine. For the purposes *) (* of this SDL file it is necessary to give a type and reference and *) (* a type of ANY and mechanism of REFERENCE has been selected as most likely *) (* to be correct. If the actual callback routine uses a different type or *) (* mechanism this will need changing. *) (* *) TYPE cms$l_user_arg_type =INTEGER; (* *) (* Control Blocks *) (* *) (* *) (* The contents of a library data block (LDB) are designed to be used only *) (* by CMS. Except that the "user_parameter" value may be modified by the user. *) (* Use of an LDB in which any other field has been modified may corrupt your *) (* library. *) (* *) TYPE ldb_cntrlblk = RECORD ldb$l_reserved_for_cms1 : ARRAY [1..4] OF INTEGER; ldb$l_user_parameter : INTEGER; ldb$l_reserved_for_cms2 : ARRAY [1..52] OF INTEGER; END; (* *) (* The contents of a fetch data block (FDB) are designed to be used only *) (* by CMS. Use of an FDB in which any field has been modified may corrupt *) (* your library. *) (* *) TYPE fdb_cntrlblk = RECORD fdb$l_reserved_for_cms : ARRAY [1..5] OF INTEGER; END; (* *) (* Binary date and Time value. *) (* *) TYPE cms$q_date_time =$QUAD; (* *) (* Position type for cms$create_library and cms$set_library. Used to *) (* describe order of libraries within a library library search list. *) (* *) TYPE position_type =INTEGER; CONST CMS$K_SUPERSEDE = 0; CMS$K_AFTER = 1; CMS$K_BEFORE = 2; (* *) (* Address type passed into callbacks to identify a string. Used with *) (* cms$get_string for languages not directly supporting the descriptor. *) (* For some languages can be used directly as an address. *) (* *) TYPE string_addr =$DEFPTR; (* *) (* Review action type for cms$review_generation. Used to identify action *) (* taken on each specified generation. *) (* *) TYPE review_action_type =INTEGER; CONST CMS$K_ACCEPT = 0; CMS$K_CANCEL = 1; CMS$K_MARK = 2; CMS$K_REJECT = 3; CMS$K_REVIEW = 4; (* *) (* Object type for cms$set_acl and cms$show_acl. Used to identify the type *) (* of object whose acl is being manipulated. *) (* *) TYPE object_types =INTEGER; CONST CMS$K_ACL_ELEMENT = 1; CMS$K_ACL_CLASS = 2; CMS$K_ACL_GROUP = 3; CMS$K_ACL_LIBRARY = 4; CMS$K_ACL_COMMAND = 5; (* *) (* Output format for cms$annotate and cms$differences. Defines the type of *) (* formatting performed on the data before it is put in the output file. *) (* *) TYPE format_type = RECORD CMS$M_ASCII : [POS(0)] $BOOL; CMS$M_DECIMAL : [POS(1)] $BOOL; CMS$M_HEXADECIMAL : [POS(2)] $BOOL; CMS$M_OCTAL : [POS(3)] $BOOL; CMS$v_spare1 : [POS(4)] $BIT12; CMS$M_BYTE : [POS(16)] $BOOL; CMS$M_LONGWORD : [POS(17)] $BOOL; CMS$M_RECORDS : [POS(18)] $BOOL; CMS$M_WORD : [POS(19)] $BOOL; CMS$v_spare2 : [POS(20)] $BIT3; CMS$M_GENERATION_DIF : [POS(23)] $BOOL; CMS$v_spare3 : [POS(24)] $BIT8; END; (* *) (* Transaction mask for cms$delete_history and cms$show_history. Defines *) (* the set of transcation records to be considered. *) (* *) TYPE transaction_mask_type = RECORD CMS$M_CMD_COPY : [POS(0)] $BOOL; CMS$M_CMD_CREATE : [POS(1)] $BOOL; CMS$M_CMD_DELETE : [POS(2)] $BOOL; CMS$M_CMD_FETCH : [POS(3)] $BOOL; CMS$M_CMD_INSERT : [POS(4)] $BOOL; CMS$M_CMD_MODIFY : [POS(5)] $BOOL; CMS$M_CMD_REMARK : [POS(6)] $BOOL; CMS$M_CMD_REMOVE : [POS(7)] $BOOL; CMS$M_CMD_REPLACE : [POS(8)] $BOOL; CMS$M_CMD_RESERVE : [POS(9)] $BOOL; CMS$M_CMD_UNRESERVE : [POS(10)] $BOOL; CMS$M_CMD_VERIFY : [POS(11)] $BOOL; CMS$v_spare1 : [POS(12)] $BIT2; CMS$M_CMD_SET : [POS(14)] $BOOL; CMS$_spare2 : [POS(15)] $BOOL; CMS$M_CMD_ACCEPT : [POS(16)] $BOOL; CMS$M_CMD_CANCEL : [POS(17)] $BOOL; CMS$M_CMD_MARK : [POS(18)] $BOOL; CMS$M_CMD_REJECT : [POS(19)] $BOOL; CMS$M_CMD_REVIEW : [POS(20)] $BOOL; CMS$v_spare3 : [POS(21)] $BIT11; END; (* *) (* Ignore mask for cms$differences and cms$differences_class. *) (* IGNORE_FORM to IGNORE_NOTES are only used for with cms$differences. *) (* IGNORE_FIRST_VARIANTS is only used with cms$differences_class. *) (* *) CONST CMS$M_IGNORE_FORM = 1; CMS$M_IGNORE_LEAD = 2; CMS$M_IGNORE_TRAIL = 4; CMS$M_IGNORE_SPACE = 8; CMS$M_IGNORE_CASE = 16; CMS$M_IGNORE_HISTORY = 32; CMS$M_IGNORE_NOTES = 64; CMS$M_IGNORE_FIRST_VARIANT = -2147483648; TYPE ignore_mask_type = RECORD CMS$V_IGNORE_FORM : [POS(0)] $BOOL; CMS$V_IGNORE_LEAD : [POS(1)] $BOOL; CMS$V_IGNORE_TRAIL : [POS(2)] $BOOL; CMS$V_IGNORE_SPACE : [POS(3)] $BOOL; CMS$V_IGNORE_CASE : [POS(4)] $BOOL; CMS$V_IGNORE_HISTORY : [POS(5)] $BOOL; CMS$V_IGNORE_NOTES : [POS(6)] $BOOL; CMS$v_spare : [POS(7)] $BIT24; CMS$V_IGNORE_FIRST_VARIANT : [POS(31)] $BOOL; END; (* *) (* Show mask for cms$differences_class. *) (* *) CONST CMS$M_ELEMENT_DIF = 1; CMS$M_GENERATIONAL_DIF = 2; CMS$M_VARIANT_DIF = 4; TYPE show_mask_type = RECORD CMS$V_ELEMENT_DIF : [POS(0)] $BOOL; CMS$V_GENERATIONAL_DIF : [POS(1)] $BOOL; CMS$V_VARIANT_DIF : [POS(2)] $BOOL; CMS$v_spare : [POS(3)] $BIT29; END; (* *) (* Library statistics provided by cms$show_library. *) (* *) TYPE statistics_type = RECORD CMS$L_ELEMENTS_COUNT : INTEGER; CMS$L_GROUPS_COUNT : INTEGER; CMS$L_CLASSES_COUNT : INTEGER; CMS$L_RESERVATIONS_COUNT : INTEGER; CMS$L_CONCURRENT_REPLACEMENTS_COUN : INTEGER; CMS$L_REVIEWS_PENDING_COUNT : INTEGER; CMS$l_reserved_for_CMS : ARRAY [1..4] OF INTEGER; END; (* *) (* Creates an annotated listing file of the specifed element generation and *) (* places it in your current default directory. *) (* *) [ASYNCHRONOUS] FUNCTION cms$annotate ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; generation_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; merge_generation_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; append : BOOLEAN := %IMMED 0; full : BOOLEAN := %IMMED 0; output_file : [CLASS_S] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0; output_routine : $DEFPTR := %IMMED 0; user_arg : cms$l_user_arg_type := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; format : format_type := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Simulates a keyboard CTRL/C (cancel). The CMS$ASYNCH_TERMINATE routine *) (* allows calling programs to specify to the CMS function currently in *) (* progress that cancellation has been requested. *) (* *) [ASYNCHRONOUS] PROCEDURE cms$asynch_terminate; EXTERNAL; (* *) (* Parse and executes the command line and then returns to the calling program *) (* *) [ASYNCHRONOUS] FUNCTION cms$cms ( command_line : [CLASS_S] PACKED ARRAY [$l1..$u1:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; prompt_routine : $DEFPTR := %IMMED 0; confirm_routine : $DEFPTR := %IMMED 0; output_routine : $DEFPTR := %IMMED 0; width : INTEGER := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Copies an existing class to form a new one with a different name and *) (* populates it with the same set of element generations as the original. *) (* *) [ASYNCHRONOUS] FUNCTION cms$copy_class ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; input_class_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; output_class : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; VAR source_library_data_block : [VOLATILE] ldb_cntrlblk := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Copies an existing element to form a new one with a different name. *) (* *) [ASYNCHRONOUS] FUNCTION cms$copy_element ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; input_element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; output_element : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; VAR source_library_data_block : [VOLATILE] ldb_cntrlblk := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Copies an existing group to form a new one with a different name and *) (* populates it with the same set of elements as the original. *) (* *) [ASYNCHRONOUS] FUNCTION cms$copy_group ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; input_group_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; output_group : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; VAR source_library_data_block : [VOLATILE] ldb_cntrlblk := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Creates an empty class with the name specifed by the class_name argument. *) (* *) [ASYNCHRONOUS] FUNCTION cms$create_class ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; class_name : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; hidden : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Creates a new element in a CMS library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$create_element ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_name : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; history : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; notes : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; position : INTEGER := %IMMED 0; keep : BOOLEAN := %IMMED 0; reserve : BOOLEAN := %IMMED 0; concurrent : BOOLEAN := %IMMED 0; reference_copy : BOOLEAN := %IMMED 0; input_file : [CLASS_S] PACKED ARRAY [$l11..$u11:INTEGER] OF CHAR := %IMMED 0; input_routine : $DEFPTR := %IMMED 0; user_arg : cms$l_user_arg_type := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; review : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Creates an empty group *) (* *) [ASYNCHRONOUS] FUNCTION cms$create_group ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; group_name : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Creates a new CMS library in an existing empty directory. *) (* *) [ASYNCHRONOUS] FUNCTION cms$create_library ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; directory : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; reference_copy_dir : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; confirm_routine : $DEFPTR := %IMMED 0; output_routine : $DEFPTR := %IMMED 0; width : INTEGER := %IMMED 0; position : position_type := %IMMED 0; positional_dir_spec : [CLASS_S] PACKED ARRAY [$l10..$u10:INTEGER] OF CHAR := %IMMED 0; revision_time : BOOLEAN := %IMMED 0; auto_create : BOOLEAN := %IMMED 0; concurrent : BOOLEAN := %IMMED 0; reserved_for_cms : INTEGER := %IMMED 0; keep : BOOLEAN := %IMMED 0; extended_filenames : BOOLEAN := %IMMED 0; long_variant_names : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Deletes a class or classes from a CMS library. There cannot be any element *) (* generations in the class when it is deleted, unless the remove_contents *) (* is set. *) (* *) [ASYNCHRONOUS] FUNCTION cms$delete_class ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; class_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; remove_contents : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Deletes an element or elements from a CMS library. The element cannot be *) (* in any group, and there can be no generations of it in any classes. *) (* *) [ASYNCHRONOUS] FUNCTION cms$delete_element ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Deletes one or more generations of one or more elements from a CMS *) (* library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$delete_generation ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; after_generation : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; before_generation : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; from_generation : [CLASS_S] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0; to_generation : [CLASS_S] PACKED ARRAY [$l8..$u8:INTEGER] OF CHAR := %IMMED 0; archive_file : [CLASS_S] PACKED ARRAY [$l9..$u9:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Deletes a group or group from a CMS library. There can be no elements or *) (* or groups in the group, unless the remove_contents flag is set. Nor *) (* can the group be in any other group. *) (* *) [ASYNCHRONOUS] FUNCTION cms$delete_group ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; group_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; remove_contents : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Deletes all or part of the library History. *) (* *) [ASYNCHRONOUS] FUNCTION cms$delete_history ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; remark : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; before : cms$q_date_time := %IMMED 0; transaction_mask : transaction_mask_type := %IMMED 0; output_routine : $DEFPTR := %IMMED 0; user_arg : cms$l_user_arg_type := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; object_name : [CLASS_S] PACKED ARRAY [$l8..$u8:INTEGER] OF CHAR := %IMMED 0; user : [CLASS_S] PACKED ARRAY [$l9..$u9:INTEGER] OF CHAR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Compares two elements, or two generations of elements, or an element *) (* and a generation. If the files are different, it creates a file containing *) (* the lines that differ between the two files. If the files are the same, it *) (* issues a message to that effect and does not create a differences file. *) (* *) [ASYNCHRONOUS] FUNCTION cms$differences ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; user_arg : cms$l_user_arg_type := %IMMED 0; input_file1 : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; input_routine1 : $DEFPTR := %IMMED 0; generation_expression_1 : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; input_file2 : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; input_routine2 : $DEFPTR := %IMMED 0; generation_expression_2 : [CLASS_S] PACKED ARRAY [$l8..$u8:INTEGER] OF CHAR := %IMMED 0; output_file : [CLASS_S] PACKED ARRAY [$l9..$u9:INTEGER] OF CHAR := %IMMED 0; output_routine : $DEFPTR := %IMMED 0; append : BOOLEAN := %IMMED 0; ignore_mask : ignore_mask_type := %IMMED 0; nooutput : BOOLEAN := %IMMED 0; parallel : BOOLEAN := %IMMED 0; full : BOOLEAN := %IMMED 0; format : format_type := %IMMED 0; width : INTEGER := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; page_break : BOOLEAN := %IMMED 0; skip_lines : INTEGER := %IMMED 0; begin_sentinel : [CLASS_S] PACKED ARRAY [$l21..$u21:INTEGER] OF CHAR := %IMMED 0; end_sentinel : [CLASS_S] PACKED ARRAY [$l22..$u22:INTEGER] OF CHAR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Compares the contents of two classes. If the contents of the classes are *) (* different, it creates a file containing the names of the generations *) (* that differ between the two classes. If the files are the same, it *) (* issues a message to that effect and does not create a differences file. *) (* *) [ASYNCHRONOUS] FUNCTION cms$differences_class ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; input_class1 : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; input_class2 : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; append : BOOLEAN := %IMMED 0; format : format_type := %IMMED 0; full : BOOLEAN := %IMMED 0; ignore_mask : ignore_mask_type := %IMMED 0; nooutput : BOOLEAN := %IMMED 0; parallel : BOOLEAN := %IMMED 0; show_mask : show_mask_type := %IMMED 0; width : INTEGER := %IMMED 0; output_file : [CLASS_S] PACKED ARRAY [$l12..$u12:INTEGER] OF CHAR := %IMMED 0; output_routine : $DEFPTR := %IMMED 0; user_arg : cms$l_user_arg_type := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Retrieves a copy of an element from a CMS library. You can also specify an *) (* argument that directs CMS to establish a reservation for the element. *) (* *) [ASYNCHRONOUS] FUNCTION cms$fetch ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; merge_generation_expression : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; reserve : BOOLEAN := %IMMED 0; nohistory : BOOLEAN := %IMMED 0; nonotes : BOOLEAN := %IMMED 0; concurrent : BOOLEAN := %IMMED 0; output_file : [CLASS_S] PACKED ARRAY [$l10..$u10:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; nooutput : BOOLEAN := %IMMED 0; history : [CLASS_S] PACKED ARRAY [$l13..$u13:INTEGER] OF CHAR := %IMMED 0; notes : [CLASS_S] PACKED ARRAY [$l14..$u14:INTEGER] OF CHAR := %IMMED 0; position : INTEGER := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Terminates a fetch transaction initiated by CMS$FETCH_OPEN. *) (* *) [ASYNCHRONOUS] FUNCTION cms$fetch_close ( VAR fetch_data_block : [VOLATILE] fdb_cntrlblk; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Retrieves one line of data from an element. Use the CMS$FETCH_GET routine *) (* in combination with the CMS$FETCH_OPEN and CMS$FETCH_CLOSE routines. *) (* *) [ASYNCHRONOUS] FUNCTION cms$fetch_get ( VAR fetch_data_block : [VOLATILE] fdb_cntrlblk; VAR output_record : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; VAR sequence_number : [VOLATILE] INTEGER := %IMMED 0; VAR generation_number : [CLASS_S,VOLATILE] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Begins a line-by-line fetch transaction. Use the CMS$FETCH_OPEN routine in *) (* combination with the CMS$FETCH_GET and CMS$FETCH_CLOSE routines. *) (* *) [ASYNCHRONOUS] FUNCTION cms$fetch_open ( VAR fetch_data_block : [VOLATILE] fdb_cntrlblk; directory : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; element_name : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; generation_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; nohistory : BOOLEAN := %IMMED 0; nonotes : BOOLEAN := %IMMED 0; VAR actual_generation : [CLASS_S,VOLATILE] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Translates a string identifier. *) (* *) [ASYNCHRONOUS] FUNCTION cms$get_string ( string_id : string_addr; VAR string_val : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR) : UNSIGNED; EXTERNAL; (* *) (* Places one or more elements in the specified group. *) (* *) [ASYNCHRONOUS] FUNCTION cms$insert_element ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; group_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; if_absent : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Places one or more element generations in the specified class or classes. *) (* *) [ASYNCHRONOUS] FUNCTION cms$insert_generation ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; class_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; always : BOOLEAN := %IMMED 0; supersede : BOOLEAN := %IMMED 0; if_absent : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; before : cms$q_date_time := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Places one or more groups in the specifed groups. *) (* *) [ASYNCHRONOUS] FUNCTION cms$insert_group ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; sub_group_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; group_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; if_absent : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Changes the characteristics of the specified class or classes. *) (* *) [ASYNCHRONOUS] FUNCTION cms$modify_class ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; class_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; new_name : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; new_remark : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; read_only : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Changes the characteristices of an existing element. *) (* *) [ASYNCHRONOUS] FUNCTION cms$modify_element ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; new_name : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; new_remark : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; history : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; notes : [CLASS_S] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0; position : INTEGER := %IMMED 0; concurrent : BOOLEAN := %IMMED 0; reference_copy : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; review : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Alters information associated with one or more generations of an element. *) (* *) [ASYNCHRONOUS] FUNCTION cms$modify_generation ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; new_remark : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Changes the characteristics of an existing group. *) (* *) [ASYNCHRONOUS] FUNCTION cms$modify_group ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; new_name : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; new_remark : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; read_only : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Establishes or removes the connection between a CMS library and a reference *) (* copy directory. *) (* *) [ASYNCHRONOUS] FUNCTION cms$modify_library ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; remark : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; reference_copy_dir : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; revision_time : BOOLEAN := %IMMED 0; concurrent : BOOLEAN := %IMMED 0; reserved_for_cms : INTEGER := %IMMED 0; keep : BOOLEAN := %IMMED 0; extended_filenames : BOOLEAN := %IMMED 0; long_variant_names : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Alters information associated with one or more reservations of an element. *) (* *) [ASYNCHRONOUS] FUNCTION cms$modify_reservation ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; generation_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; identification_number : INTEGER := %IMMED 0; remark : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; new_remark : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Passes a string from a callback routine to CMS. *) (* *) [ASYNCHRONOUS] FUNCTION cms$put_string ( string_val : [CLASS_S] PACKED ARRAY [$l1..$u1:INTEGER] OF CHAR) : UNSIGNED; EXTERNAL; (* *) (* Places a remark in the library history. *) (* *) [ASYNCHRONOUS] FUNCTION cms$remark ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; remark : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; msg_routine : $DEFPTR; unusual : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Removes an element from one or more groups. *) (* *) [ASYNCHRONOUS] FUNCTION cms$remove_element ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; group_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; if_present : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Removes an element generation from one or more classes. *) (* *) [ASYNCHRONOUS] FUNCTION cms$remove_generation ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; class_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; if_present : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; generation : [CLASS_S] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Removes one of more groups from another group or groups. *) (* *) [ASYNCHRONOUS] FUNCTION cms$remove_group ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; sub_group_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; group_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; if_present : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Returns a reserved element or elements to the library and creates a new *) (* generation of the element or element to identify the changes. *) (* *) [ASYNCHRONOUS] FUNCTION cms$replace ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; variant : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; reserve : BOOLEAN := %IMMED 0; keep : BOOLEAN := %IMMED 0; input_file : [CLASS_S] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0; input_routine : $DEFPTR := %IMMED 0; user_arg : cms$l_user_arg_type := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; if_changed : BOOLEAN := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l12..$u12:INTEGER] OF CHAR := %IMMED 0; identification_number : INTEGER := %IMMED 0; insert_classes : [CLASS_S] PACKED ARRAY [$l14..$u14:INTEGER] OF CHAR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Retrieves one or more generations from one or more archive files. *) (* *) [ASYNCHRONOUS] FUNCTION cms$retrieve_archive ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; archive_file_spec : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; generation_spec : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; output_file_spec : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Associates a review comment with each specified element generation that is *) (* currently under review and allows changing the review status of each *) (* specified generation. *) (* *) [ASYNCHRONOUS] FUNCTION cms$review_generation ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; action : review_action_type; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Manipulates the access control list (ACL) on various objects in the CMS *) (* library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$set_acl ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; object_type : object_types; object_expression : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; acl : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; after : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; default : BOOLEAN := %IMMED 0; delete : BOOLEAN := %IMMED 0; like : [CLASS_S] PACKED ARRAY [$l9..$u9:INTEGER] OF CHAR := %IMMED 0; new : BOOLEAN := %IMMED 0; replace : [CLASS_S] PACKED ARRAY [$l11..$u11:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Enables access to an existing CMS library. This routine initializes a library *) (* data block for use with other CMS callable routines. *) (* *) [ASYNCHRONOUS] FUNCTION cms$set_library ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; directory : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; msg_routine : $DEFPTR := %IMMED 0; verify : BOOLEAN := %IMMED 0; confirm_routine : $DEFPTR := %IMMED 0; output_routine : $DEFPTR := %IMMED 0; width : INTEGER := %IMMED 0; position : position_type := %IMMED 0; positional_dir_spec : [CLASS_S] PACKED ARRAY [$l9..$u9:INTEGER] OF CHAR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Removes one or more libraries from the current library search list. *) (* *) [ASYNCHRONOUS] FUNCTION cms$set_nolibrary ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; directory : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Displays the ACL associated with one or more specified objects. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_acl ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; output_routine : $DEFPTR; object_type : object_types; user_arg : cms$l_user_arg_type := %IMMED 0; object_expression : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Displays information about the content of one or more archive files. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_archive ( archive_file_spec : [CLASS_S] PACKED ARRAY [$l1..$u1:INTEGER] OF CHAR; output_routine : $DEFPTR; user_arg : cms$l_user_arg_type := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Provides information about one or more classes in a CMS library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_class ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; output_routine : $DEFPTR; user_arg : cms$l_user_arg_type := %IMMED 0; class_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Provides information about one or more elements in a CMS library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_element ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; output_routine : $DEFPTR; user_arg : cms$l_user_arg_type := %IMMED 0; element_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; member_list : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Displays information about one or more element generations in a CMS library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_generation ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; output_routine : $DEFPTR; user_arg : cms$l_user_arg_type := %IMMED 0; element_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; from_generation_expression : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; ancestors : BOOLEAN := %IMMED 0; descendants : BOOLEAN := %IMMED 0; member_list : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; before : cms$q_date_time := %IMMED 0; since : cms$q_date_time := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Provides information about one or more groups in a CMS library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_group ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; output_routine : $DEFPTR; user_arg : cms$l_user_arg_type := %IMMED 0; group_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; contents : BOOLEAN := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Provides (in chronological order) records of transactions performed on a *) (* CMS library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_history ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; output_routine : $DEFPTR; user_arg : cms$l_user_arg_type := %IMMED 0; object_name : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; user : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; before : cms$q_date_time := %IMMED 0; since : cms$q_date_time := %IMMED 0; transaction_mask : transaction_mask_type := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Provides information about the current library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_library ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; VAR reference_copy_dir : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; VAR statistics : [VOLATILE] statistics_type := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; verify : BOOLEAN := %IMMED 0; output_routine : $DEFPTR := %IMMED 0; user_arg : cms$l_user_arg_type := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Provides information about all current reservations and concurrent *) (* replacements in effect at the time the routine is called. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_reservations ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; output_routine : $DEFPTR; user_arg : cms$l_user_arg_type := %IMMED 0; element_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; user : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; identification_number : INTEGER := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Displays a list of element generations that currently have review *) (* pending status. Also shows the associated review remarks. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_reviews_pending ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; output_routine : $DEFPTR; user_arg : cms$l_user_arg_type := %IMMED 0; element_expression : [CLASS_S] PACKED ARRAY [$l4..$u4:INTEGER] OF CHAR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l5..$u5:INTEGER] OF CHAR := %IMMED 0; user : [CLASS_S] PACKED ARRAY [$l6..$u6:INTEGER] OF CHAR := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Provides version identification of the CMS system currently in use. *) (* *) [ASYNCHRONOUS] FUNCTION cms$show_version ( VAR full : [CLASS_S,VOLATILE] PACKED ARRAY [$l1..$u1:INTEGER] OF CHAR := %IMMED 0; VAR brief : [CLASS_S,VOLATILE] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; VAR absolute : [VOLATILE] UNSIGNED := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Cancels the reservation for one or more elements. *) (* The 4th parameter, "reserved", must be provided with the value 0. *) (* *) [ASYNCHRONOUS] FUNCTION cms$unreserve ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR; %IMMED reserved : INTEGER := %IMMED 0; delete_file : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0; generation_expression : [CLASS_S] PACKED ARRAY [$l7..$u7:INTEGER] OF CHAR := %IMMED 0; identification_number : INTEGER := %IMMED 0; delete_file_spec : [CLASS_S] PACKED ARRAY [$l9..$u9:INTEGER] OF CHAR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Performs a series of consistency checks on the present library. *) (* *) [ASYNCHRONOUS] FUNCTION cms$verify ( VAR library_data_block : [VOLATILE] ldb_cntrlblk; element_expression : [CLASS_S] PACKED ARRAY [$l2..$u2:INTEGER] OF CHAR := %IMMED 0; remark : [CLASS_S] PACKED ARRAY [$l3..$u3:INTEGER] OF CHAR := %IMMED 0; recover : BOOLEAN := %IMMED 0; repair : BOOLEAN := %IMMED 0; msg_routine : $DEFPTR := %IMMED 0) : UNSIGNED; EXTERNAL; (* *) (* Message Definitions *) (* *) CONST CMS$_FACILITY = 156; CMS$_ABSTIM = 10256394; CMS$_ACCVIORD = 10256404; CMS$_ACCVIOWT = 10256412; CMS$_ALL = 10256417; CMS$_ALPHACHAR = 10256426; CMS$_ALRDYEXISTS = 10256434; CMS$_ALRDYINCLS = 10256442; CMS$_ALRDYINGRP = 10256450; CMS$_ANNOTATED = 10256457; CMS$_ANNOTATIONS = 10256465; CMS$_ARGCONFLICT = 10256474; CMS$_ARGCOUNTERR = 10256482; CMS$_BADBUG = 10256492; CMS$_BADCALL = 10256500; CMS$_BADCRC = 10256504; CMS$_BADLIB = 10256516; CMS$_BADCRETIME = 10256522; CMS$_BADLENSTR = 10256530; CMS$_BADLSTSTR = 10256538; CMS$_BADORDSTR = 10256546; CMS$_BADPTR = 10256554; CMS$_BADTYPSTR = 10256562; CMS$_BADVERSTR = 10256570; CMS$_BCKPTRSTR = 10256578; CMS$_CNTSTR = 10256586; CMS$_BADSTRING = 10256594; CMS$_BADVERSION = 10256602; CMS$_BUG = 10256612; CMS$_CLASSGENEXP = 10256619; CMS$_CMPSIGNAL = 10256627; CMS$_COMPARED = 10256633; CMS$_CONCLS = 10256643; CMS$_CONCURRENT = 10256649; CMS$_CONELE = 10256659; CMS$_CONFIRM = 10256665; CMS$_CONFLICTS = 10256672; CMS$_CONGRP = 10256683; CMS$_CONHIS = 10256691; CMS$_CONRES = 10256699; CMS$_CONVERTED = 10256705; CMS$_CONVERTLIB = 10256714; CMS$_COPIED = 10256721; CMS$_COPIES = 10256729; CMS$_CREATED = 10256737; CMS$_CREATES = 10256745; CMS$_DEFAULTDIR = 10256754; CMS$_DELETED = 10256761; CMS$_DELETIONS = 10256769; CMS$_DIFFERENT = 10256779; CMS$_DUPEDF = 10256786; (* *) CMS$_EDFMISS = 10256794; CMS$_ELEEXISTS = 10256802; CMS$_ELEEXP = 10256811; CMS$_ELEXPIGN = 10256816; CMS$_ENDOFLIST = 10256826; CMS$_ENDPTRSTR = 10256834; CMS$_EOF = 10256840; CMS$_ERRANNOTATIONS = 10256850; CMS$_ERRCLOSE = 10256858; CMS$_ERRCOPIES = 10256866; CMS$_ERRCREATES = 10256874; CMS$_ERRDELETIONS = 10256882; CMS$_ERRFETCHES = 10256890; CMS$_ERRINSERTIONS = 10256898; CMS$_ERRMODIFIES = 10256906; CMS$_ERREMOVALS = 10256914; CMS$_ERREPLACEMENTS = 10256922; CMS$_ERRESERVATIONS = 10256930; CMS$_ERRELEHIS = 10256938; CMS$_ERRUNRESERVES = 10256946; CMS$_ERRVER2 = 10256954; CMS$_ERRVERARC = 10256962; CMS$_ERRVERCLS = 10256970; CMS$_ERRVERCON = 10256978; CMS$_ERRVEREDFS = 10256986; CMS$_ERRVERELE = 10256994; CMS$_ERRVERFRE = 10257002; CMS$_ERRVERGRP = 10257010; CMS$_ERRVERRES = 10257018; CMS$_ERRVERSTR = 10257026; CMS$_EXCLUDE = 10257033; CMS$_EXIT = 10257042; CMS$_FETCHED = 10257049; CMS$_FETCHES = 10257057; CMS$_FILEXISTS = 10257067; CMS$_FILINUSE = 10257075; CMS$_FIXCRC = 10257083; CMS$_FIXHDR = 10257091; CMS$_GENCREATED = 10257097; CMS$_GENEXISTS = 10257106; CMS$_GENINSERTED = 10257113; CMS$_GENNOINSERT = 10257122; CMS$_GENNOREMOVE = 10257130; CMS$_GENNOTFOUND = 10257138; CMS$_GENREMOVED = 10257145; CMS$_GROUPEXP = 10257155; CMS$_HASFILES = 10257162; CMS$_HASMEMBERS = 10257170; CMS$_HISNOTSTM = 10257178; CMS$_HISTDEL = 10257185; CMS$_IDENTICAL = 10257193; CMS$_ILLCHAR = 10257202; CMS$_ILLCLSNAM = 10257210; CMS$_ILLCONREC = 10257220; CMS$_ILLDATREC = 10257228; CMS$_ILLEGALDEV = 10257234; CMS$_ILLELENAM = 10257242; CMS$_ILLELEXP = 10257250; CMS$_ILLFORMAT = 10257258; CMS$_ILLGEN = 10257266; CMS$_ILLGRPNAM = 10257274; CMS$_ILLHIST = 10257284; CMS$_ILLNAME = 10257290; CMS$_ILLNOTE = 10257300; CMS$_ILLPAR = 10257306; CMS$_ILLPOSVAL = 10257314; CMS$_ILLREFDIR = 10257322; CMS$_ILLRMK = 10257330; CMS$_ILLSEQ = 10257340; CMS$_ILLVAR = 10257346; CMS$_INSERTED = 10257353; CMS$_INSERTIONS = 10257361; CMS$_INUSE = 10257371; CMS$_INVFETDB = 10257378; CMS$_INVLENGTH = 10257388; CMS$_INVLIBDB = 10257394; CMS$_INVOKERBK = 10257403; CMS$_INVSTRDES = 10257412; CMS$_ISMEMBER = 10257418; CMS$_ISRESERVED = 10257426; CMS$_LIBIS = 10257435; CMS$_LIBSET = 10257441; CMS$_MAXARG = 10257452; CMS$_MERGECONFLICT = 10257456; CMS$_MERGECOUNT = 10257467; CMS$_MERGED = 10257475; CMS$_MINARG = 10257484; CMS$_MISBLKSTR = 10257490; CMS$_MISMATCON = 10257500; CMS$_MODIFIED = 10257505; CMS$_MODIFICATIONS = 10257513; CMS$_MSGBUILD = 10257523; CMS$_MSGCANCEL = 10257531; CMS$_MSGCONTINUE = 10257539; CMS$_MSGPOST = 10257547; CMS$_MSSBLKSTR = 10257554; CMS$_MULTCALL = 10257560; CMS$_MULTPAR = 10257570; CMS$_MUSTBEDIR = 10257578; CMS$_MUSTBEFIL = 10257586; CMS$_MUSTBEPOS = 10257594; CMS$_MUTEXC = 10257602; CMS$_NEEDNUMBER = 10257610; CMS$_NEEDPERIOD = 10257618; CMS$_NETNOTALL = 10257626; CMS$_NOALTDELETE = 10257634; CMS$_NOANNOTATE = 10257642; CMS$_NOBACKUP = 10257652; CMS$_NOCHANGES = 10257659; CMS$_NOCLOSE = 10257668; CMS$_NOCLS = 10257672; CMS$_NOCOMPARE = 10257682; CMS$_NOCONCUR = 10257690; CMS$_NOCONFIRM = 10257696; CMS$_NOCONRES = 10257706; CMS$_NOCONVERT = 10257714; CMS$_NOCOPY = 10257722; CMS$_NOCREATE = 10257730; CMS$_NODELETE = 10257738; CMS$_NODELFUTURE = 10257746; CMS$_NOELE = 10257752; CMS$_NOELEENT = 10257762; (* *) CMS$_NOERRLOG = 10257770; CMS$_NOFETCH = 10257778; CMS$_NOFILE = 10257786; CMS$_NOGRP = 10257792; CMS$_NOHIS = 10257800; CMS$_NOHISPAR = 10257810; CMS$_NOINSERT = 10257818; CMS$_NOINPUT = 10257826; CMS$_NOMATCH = 10257834; CMS$_NOMODARG = 10257842; CMS$_NOMODIFY = 10257850; CMS$_NOMOREPARAM = 10257858; CMS$_NORECOVER = 10257866; CMS$_NOREF = 10257874; CMS$_NOREMARK = 10257882; CMS$_NOREMOVAL = 10257890; CMS$_NOREPAIR = 10257898; CMS$_NOREPEDF = 10257906; CMS$_NOREPLACE = 10257914; CMS$_NOREPRO = 10257922; CMS$_NORES = 10257928; CMS$_NORESERVATION = 10257938; CMS$_NORESNOCON = 10257946; CMS$_NORESRO = 10257954; CMS$_NORMAL = 10257961; CMS$_NOSINCE = 10257970; CMS$_NOSRCHLST = 10257978; CMS$_NOSUPERSEDE = 10257986; CMS$_NOTBYCMS = 10257994; CMS$_NOTCOMPLETED = 10258002; CMS$_NOTCMSLIB = 10258010; CMS$_NOTCRELIB = 10258016; CMS$_NOTESVALREQ = 10258024; CMS$_NOTFOUND = 10258034; CMS$_NOTLOGGED = 10258043; CMS$_NOTRESBYOU = 10258050; CMS$_NOTSET = 10258058; CMS$_NOTTHERE = 10258066; CMS$_NOTWILD = 10258073; CMS$_NOUNRESERVE = 10258082; CMS$_NOVERIFY = 10258090; CMS$_NOWLDCARD = 10258098; CMS$_NULLARG = 10258108; CMS$_NULLSTR = 10258114; CMS$_NUMGENEXP = 10258123; CMS$_OLDSYNTAX = 10258131; CMS$_ONEPERIOD = 10258138; CMS$_OPENIN = 10258146; CMS$_OPENIN1 = 10258154; CMS$_OPENIN2 = 10258162; CMS$_OPENOUT = 10258170; CMS$_OVERDRAFT = 10258179; CMS$_POSVALREQ = 10258186; CMS$_PROCEEDING = 10258195; CMS$_QUALCONFLICT = 10258202; CMS$_READERR = 10258210; CMS$_READIN = 10258218; CMS$_READONLY = 10258226; CMS$_RECGRP = 10258234; CMS$_RECNOTNEC = 10258242; CMS$_RECOVERED = 10258249; CMS$_REMARK = 10258257; CMS$_REMOVALS = 10258265; CMS$_REMOVED = 10258273; CMS$_REPAIRED = 10258281; CMS$_REPDEL = 10258291; CMS$_REPEDF = 10258299; CMS$_REPLACEMENTS = 10258305; CMS$_RESERVATIONS = 10258313; CMS$_RESERVED = 10258321; CMS$_RESERVEDBYYOU = 10258330; CMS$_SAMELINE = 10258338; CMS$_SEQFAIL = 10258348; CMS$_SEQUENCED = 10258353; CMS$_STARTHIS = 10258362; CMS$_STOPPED = 10258369; CMS$_SYSTIMERR = 10258378; CMS$_SYSTIMDIF = 10258386; CMS$_TIMEORDER = 10258394; CMS$_TOOLONG = 10258402; CMS$_TRYAGNLAT = 10258410; CMS$_UNDEFLIB = 10258416; CMS$_UNFOUT = 10258426; CMS$_UNRECTYPE = 10258436; CMS$_UNRESERVED = 10258441; CMS$_UNRESERVES = 10258449; CMS$_UNSUPFRMT = 10258458; CMS$_USERECOVER = 10258466; CMS$_USEREPAIR = 10258474; CMS$_USERERR = 10258482; CMS$_USESETLIB = 10258490; CMS$_VARLETTER = 10258498; CMS$_VER2 = 10258507; CMS$_VERARC = 10258515; CMS$_VERCLS = 10258523; CMS$_VERCON = 10258531; CMS$_VEREDF = 10258539; CMS$_VEREDFERR = 10258546; CMS$_VEREDFS = 10258555; CMS$_VERELE = 10258563; CMS$_VERFRE = 10258571; CMS$_VERGRP = 10258579; CMS$_VERIFIED = 10258585; CMS$_VERLMTERR = 10258594; CMS$_VERRES = 10258603; CMS$_VERSTR = 10258611; CMS$_WAITING = 10258619; CMS$_WILDCONFLICT = 10258626; CMS$_WILDMATCH = 10258635; CMS$_WILDNOMATCH = 10258642; CMS$_WILDVER = 10258650; CMS$_WRITEERR = 10258658; CMS$_ZEROADD = 10258666; CMS$_ZLENBLK = 10258674; CMS$_ERRHISLINE = 10258682; CMS$_GENRECSIZE = 10258690; CMS$_NOHISNOTES = 10258699; CMS$_SIZEMISMAT = 10258706; CMS$_CONTROLC = 10258712; CMS$_INVFIXMRS = 10258722; CMS$_REPGENMRS = 10258731; CMS$_NOREPGENMRS = 10258738; CMS$_GENNOTANC = 10258746; CMS$_ERRPAREXP = 10258754; CMS$_LIBALRINLIS = 10258762; CMS$_LIBINSLIS = 10258771; CMS$_LIBLISMOD = 10258779; CMS$_LIBLISNOTMOD = 10258786; CMS$_LIBNOTINLIS = 10258794; CMS$_LIBREMLIS = 10258803; CMS$_MSGUPDATE = 10258811; CMS$_NOCOMMALIST = 10258818; CMS$_NODELETIONS = 10258826; CMS$_TOOMANYLIBS = 10258834; CMS$_WILDNEEDED = 10258842; CMS$_NOACCESS = 10258850; CMS$_CONVNOTNEC = 10258858; CMS$_MODACL = 10258865; CMS$_NOMODACL = 10258874; CMS$_MODACLS = 10258881; CMS$_ERRMODACLS = 10258890; CMS$_ILLSUBTYP = 10258898; CMS$_ILLOBJTYP = 10258906; CMS$_NOOBJTYP = 10258914; CMS$_NODEFACL = 10258922; CMS$_NOACE = 10258928; CMS$_NOCMD = 10258936; CMS$_ERRVERCMD = 10258946; CMS$_VERCMD = 10258955; CMS$_NOOBJ = 10258960; CMS$_GENMULTRES = 10258970; CMS$_ELEMULTRES = 10258978; CMS$_IDENTNOTRES = 10258986; CMS$_GENNOTRES = 10258994; CMS$_REVPENDING = 10259002; CMS$_NOREV = 10259008; CMS$_ACCEPTED = 10259017; CMS$_CANCELED = 10259025; CMS$_MARKED = 10259033; CMS$_REJECTED = 10259041; CMS$_REVIEWED = 10259049; CMS$_ACCEPTANCES = 10259057; CMS$_CANCELATIONS = 10259065; CMS$_MARKS = 10259073; CMS$_REJECTIONS = 10259081; CMS$_REVIEWS = 10259089; CMS$_NOACCEPT = 10259098; CMS$_NOCANCEL = 10259106; CMS$_NOMARK = 10259114; CMS$_NOREJECT = 10259122; CMS$_NOREVIEW = 10259130; CMS$_ERRACCEPTANCES = 10259138; CMS$_ERRCANCELATIONS = 10259146; CMS$_ERRMARKS = 10259154; CMS$_ERRREJECTIONS = 10259162; CMS$_ERRREVIEWS = 10259170; CMS$_ALRDYMARKED = 10259178; CMS$_NOREVPEND = 10259186; CMS$_NOREVSPEND = 10259194; CMS$_ILLACT = 10259202; CMS$_AUTOREC = 10259211; CMS$_AUTORECSUC = 10259219; CMS$_GENDELETED = 10259225; CMS$_NOGENDELETED = 10259234; CMS$_GENDELETIONS = 10259241; CMS$_ERRGENDELETIONS = 10259250; CMS$_NOTDIRDES = 10259258; CMS$_VARINRANGE = 10259266; CMS$_GENRESREV = 10259274; CMS$_INCRANGSPEC = 10259282; CMS$_NODELGEN1 = 10259290; CMS$_NOGENS = 10259298; CMS$_BADFORMAT = 10259306; CMS$_OPENARC = 10259314; CMS$_NORETRIEVE = 10259322; CMS$_RETRIEVALS = 10259329; CMS$_RETRIEVED = 10259337; CMS$_ILLARCREC = 10259346; CMS$_ERRETRIEVALS = 10259354; CMS$_NOREFDIR = 10259362; CMS$_DUPREF = 10259370; CMS$_REFMISS = 10259378; CMS$_NOREFELE = 10259386; CMS$_REPREF = 10259395; CMS$_NOREPREF = 10259402; CMS$_VERREF = 10259411; CMS$_VERREFERR = 10259418; CMS$_VERREFS = 10259427; CMS$_ERRVERREFS = 10259434; CMS$_BADREF = 10259442; CMS$_REFREPAIR = 10259448; CMS$_NOTNOREF = 10259458; CMS$_VERREFERRW = 10259464; CMS$_REPCMD = 10259475; CMS$_NOREPCMD = 10259482; CMS$_REFMISMAT = 10259490; CMS$_SUPERSEDE = 10259499; CMS$_TOODEEP = 10259506; (* *) CMS$_EDFINWRONGDIR = 10259514; CMS$_INVGENLRL = 10259522; CMS$_NOEDFIWDREPAIR = 10259530; CMS$_NOREPGENLRL = 10259538; CMS$_REPGENLRL = 10259547; CMS$_GENTOODEEP = 10259554; CMS$_ANNSIGNAL = 10259563; CMS$_VERILLDATREC = 10259570; CMS$_REPILLDATREC = 10259579; CMS$_SEQMISMAT = 10259586; CMS$_NOREPSEQDATA = 10259592; CMS$_MANCONLIB = 10259602; CMS$_EXTFOUND = 10259610; CMS$_EXTENDEDLIB = 10259618; CMS$_NOEXTENDED = 10259626; CMS$_NOEXTENDEDREF = 10259634; CMS$_BADLST = 10259642; CMS$_BADREFHDR = 10259650; CMS$_DIFFCLASS = 10259659; CMS$_ERRVERGEN = 10259666; CMS$_FREBLKCON = 10259675; CMS$_IDENTCLASS = 10259681; CMS$_INCLIBVER = 10259690; CMS$_LONGVARFOUND = 10259698; CMS$_NOBCKPTR = 10259706; CMS$_NODELACCESS = 10259714; CMS$_NOGENBEFORE = 10259722; CMS$_NOREPBCKPTR = 10259730; CMS$_REPBADLST = 10259739; CMS$_REPBADTYP = 10259747; CMS$_REPBCKPTR = 10259755; CMS$_REPCNTSTR = 10259763; CMS$_REPENDPTR = 10259771; CMS$_REPMISBLK = 10259779; CMS$_TRUNCLST = 10259786; END.