COMPILATION LISTING OF SEGMENT kermit_get_filenames_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 03/01/89 1434.9 mst Wed Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(88-05-16,Huen), approve(88-05-16,MCR7841), audit(88-05-25,RWaters), 13* install(88-07-05,MR12.2-1054): 14* Fix kermit 15, 16, 17, and 18. 15* 2) change(89-01-02,Huen), approve(89-01-02,MCR8036), audit(89-01-25,Lee), 16* install(89-03-01,MR12.3-1020): 17* Fix kermit bug: PC_File_Transfer 24 - kermit is being changed to correctly 18* handle links to multisegment files. 19* END HISTORY COMMENTS */ 20 21 22 kermit_get_filenames_: 23 proc (infop, argument, filenames_areap, reason, ec); 24 25 26 /**********************************************************************/ 27 /* */ 28 /*n Name: kermit_get_filenames_ internal */ 29 /*i Input: argument, filenames_areap */ 30 /*f Function: Gets the filenames and stores them in the */ 31 /*f area pointed to filenames_areap. */ 32 /*o Output: reason, ec */ 33 /* */ 34 /*l Written: 84-10-23 by Maureen Mallmes */ 35 /*l Modified: 84-11-05 to add archive support */ 36 /*l Modified: 87-06-24 by Don Kozlowski - Support msf file */ 37 /*l (kermit 17) */ 38 /*l Modified: 89-01-02 by S Huen - Handle links to multisegment*/ 39 /*l file correctly. (pc_24) */ 40 /* */ 41 /**********************************************************************/ 42 43 /* constants */ 44 45 dcl All_match_star_name fixed bin internal static options (constant) init (2); 46 dcl Non_star_name fixed bin internal static options (constant) init (0); 47 dcl Star_name fixed bin internal static options (constant) init (1); 48 49 /* parameters */ 50 51 dcl argument char (*); 52 dcl infop ptr; 53 dcl filenames_areap ptr; 54 dcl reason char (*); 55 dcl ec fixed bin (35); 56 57 /* Automatic */ 58 59 dcl bit_count fixed bin (24); 60 dcl idx fixed binary; 61 dcl ename char (32); 62 dcl kermit_scip ptr; 63 dcl select_sw fixed binary (2); 64 dcl segp ptr; 65 dcl source_component char (32); 66 dcl source_dir character (168); 67 dcl source_ename character (32); 68 dcl source_stars fixed binary (35); 69 dcl system_area_ptr ptr; 70 71 /* Based */ 72 73 dcl 01 filenames like kermit_filenames based (filenames_areap); 74 dcl 01 ki like kermit_info based (infop); 75 76 /* Builtin */ 77 78 dcl (null, sum) builtin; 79 80 /* Areas */ 81 82 dcl system_area area based (system_area_ptr); 83 84 /* Externals */ 85 86 dcl error_table_$dirseg fixed bin (35) ext static; 87 dcl kermit_et_$archive_star 88 fixed bin (35) ext static; 89 90 /* Procedures */ 91 92 dcl expand_pathname_$component 93 entry (char (*), char (*), char (*), char (*), fixed bin (35)); 94 dcl check_star_name_$entry entry (char (*), fixed bin (35)); 95 dcl get_system_free_area_ entry () returns (pointer); 96 dcl hcs_$star_ entry (char (*), char (*), fixed bin (2), ptr, fixed bin, ptr, ptr, fixed bin (35)); 97 dcl hcs_$status_minf entry (char (*), char (*), fixed bin (1), fixed bin (2), fixed bin (24), fixed bin (35)); 98 dcl initiate_file_$component 99 entry (char(*), char(*), char(*), bit(*), ptr, fixed bin(24), fixed bin(35)); 100 dcl pathname_$component entry (char (*), char (*), char (*)) returns (char (194)); 101 dcl terminate_file_ entry (ptr, fixed bin(24), bit(*), fixed bin(35)); 102 103 /* conditions */ 104 105 dcl cleanup condition; 106 107 /* Include files */ 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 108 109 2 1 /* START OF: kermit_info.incl.pl1 * * * * * */ 2 2 2 3 2 4 2 5 2 6 /****^ HISTORY COMMENTS: 2 7* 1) change(88-05-16,Huen), approve(88-05-16,MCR7841), audit(88-05-25,RWaters), 2 8* install(88-07-05,MR12.2-1054): 2 9* Fix kermit 15, 16, 17, and 18. 2 10* END HISTORY COMMENTS */ 2 11 2 12 2 13 /********************************************************************/ 2 14 /* */ 2 15 /*n kermit_constants */ 2 16 /* */ 2 17 /*d This structure contains the constant definitions of CR, */ 2 18 /*d and NL characters which are coded as bit strings with */ 2 19 /*d overlays. */ 2 20 /* */ 2 21 /*l Written: 87-06-19 by Don Kozlowski */ 2 22 /*l Modified: 87-06-19 by Don Kozlowski - CR and NL are coded */ 2 23 /*l as bit strings with overlays (kermit 15)*/ 2 24 /* */ 2 25 /********************************************************************/ 2 26 2 27 dcl 01 kermit_bit_constants internal static options (constant), 2 28 02 CR_bit bit (9) unaligned init ("015"b3), 2 29 02 NL_bit bit (9) unaligned init ("012"b3); 2 30 2 31 dcl 01 kermit_char_constants based (addr (kermit_bit_constants)), 2 32 02 CR char (1) unaligned, 2 33 02 NL char (1) unaligned; 2 34 2 35 dcl 01 kermit_fixed_constants based (addr (kermit_bit_constants)), 2 36 02 CR_fixed fixed bin (9) unsigned unaligned, 2 37 02 NL_fixed fixed bin (9) unsigned unaligned; 2 38 2 39 2 40 /********************************************************************/ 2 41 /* */ 2 42 /*n kermit_info */ 2 43 /* */ 2 44 /*d This data structure is the subsystem info structure used */ 2 45 /*d when creating a kermit invocation. It is used to find the */ 2 46 /*d three kermit databases. */ 2 47 /* */ 2 48 /*l Written: 84-10-11 by Dean Elhard */ 2 49 /* */ 2 50 /********************************************************************/ 2 51 2 52 dcl 01 kermit_info aligned based (kermit_infop), 2 53 02 version char (8), 2 54 02 sci_ptr ptr, /* ssu_ sci_ptr */ 2 55 02 perm_modesp ptr, /* ptr to permanent modes db */ 2 56 02 temp_modesp ptr, /* ptr to temporary modes db */ 2 57 02 log_infop ptr, /* ptr to log info db */ 2 58 02 comm_infop ptr; /* ptr to comm info db */ 2 59 2 60 dcl kermit_infop ptr; 2 61 dcl kermit_info_version char (8) static options (constant) 2 62 init ("ki 1.0"); 2 63 2 64 /********************************************************************/ 2 65 /* */ 2 66 /*n kermit_perm_modes */ 2 67 /* */ 2 68 /*d This data structure contains the array of 9-bit values that */ 2 69 /*d represent the permanent kermit modes. */ 2 70 /* */ 2 71 /*l Written: 84-10-11 by Dean Elhard */ 2 72 /*l Modified: 87-06-12 by Don Kozlowski - Increase mode_counts */ 2 73 /*l (kermit 16) */ 2 74 /* */ 2 75 /********************************************************************/ 2 76 2 77 dcl 01 kermit_perm_modes aligned based (kermit_perm_modesp), 2 78 02 version char (8), 2 79 02 mode (1:kermit_perm_mode_count) 2 80 bit (9) unaligned; 2 81 2 82 dcl kermit_perm_modesp ptr; 2 83 dcl kermit_perm_mode_count fixed bin static options (constant) init (20); 2 84 dcl kermit_perm_modes_version 2 85 char (8) static options (constant) 2 86 init ("kpm 1.1"); 2 87 2 88 /********************************************************************/ 2 89 /* */ 2 90 /*n kermit_temp_modes */ 2 91 /* */ 2 92 /*d This data structure contains the array of 9-bit values that */ 2 93 /*d represent the temporary kermit modes. */ 2 94 /* */ 2 95 /*l Written: 84-10-11 by Dean Elhard */ 2 96 /* */ 2 97 /********************************************************************/ 2 98 2 99 dcl 01 kermit_temp_modes aligned based (kermit_temp_modesp), 2 100 02 version char (8), 2 101 02 mode (1:kermit_temp_mode_count) 2 102 bit (9) unaligned; 2 103 2 104 dcl kermit_temp_modesp ptr; 2 105 dcl kermit_temp_mode_count fixed bin static options (constant) init (23); 2 106 dcl kermit_temp_modes_version 2 107 char (8) static options (constant) 2 108 init ("ktm 1.1"); 2 109 2 110 /********************************************************************/ 2 111 /* */ 2 112 /*n kermit_log_info */ 2 113 /* */ 2 114 /*d This data structure contains 2 types of logging info: */ 2 115 /*d - data concerning the logging state and log_file */ 2 116 /*d - statistics on the last completed file-transfer */ 2 117 /* */ 2 118 /*l Written: 84-10-11 by Dean Elhard */ 2 119 /* */ 2 120 /********************************************************************/ 2 121 2 122 dcl 01 kermit_log_info aligned based (kermit_log_infop), 2 123 02 version char (8), 2 124 02 log_file aligned, /* log_file info */ 2 125 03 iocbp ptr, /* iocb ptr */ 2 126 03 flags aligned, 2 127 04 enabled bit (1) unaligned, /* enabled flag */ 2 128 04 stats_valid bit (1) unaligned, /* stats are set */ 2 129 04 mbz bit (34) unaligned, 2 130 02 statistics aligned like kermit_stats_info; 2 131 2 132 dcl kermit_log_infop ptr; 2 133 dcl kermit_log_info_version char (8) static options (constant) 2 134 init ("kli 1.0"); 2 135 2 136 /********************************************************************/ 2 137 /* */ 2 138 /*n kermit_stats_info */ 2 139 /* */ 2 140 /*d This structure is the statistics information passed to the */ 2 141 /*d log manager and stored as the statistics. */ 2 142 /* */ 2 143 /*l Written: 84-10-25 by Dean Elhard */ 2 144 /* */ 2 145 /********************************************************************/ 2 146 2 147 dcl 01 kermit_stats_info aligned based (kermit_stats_infop), 2 148 02 caller char (32), /* send or receive */ 2 149 02 status fixed bin (35), /* status of F-T */ 2 150 02 filename char (194) unal, /* name of file */ 2 151 02 file_len fixed bin (21), /* len in chars */ 2 152 02 char_count fixed bin (21), /* number sent */ 2 153 02 packet_chars fixed bin (21), /* after encoding */ 2 154 02 packet_count fixed bin (21), /* num of packets */ 2 155 02 packet_retries fixed bin (21), /* retries done */ 2 156 02 start_time fixed bin (71), /* time F-T started */ 2 157 02 end_time fixed bin (71), /* time F-T done */ 2 158 02 error_message char (94); /* rcvd error msg */ 2 159 2 160 dcl kermit_stats_infop ptr; 2 161 2 162 /********************************************************************/ 2 163 /* */ 2 164 /*n kermit_comm_info */ 2 165 /* */ 2 166 /*d This data structure contains information regarding the */ 2 167 /*d communications channel over which the file transfer takes */ 2 168 /*d place. */ 2 169 /* */ 2 170 /*l Written: 84-10-12 by Dean Elhard */ 2 171 /*l Modified: 86-10-09 by Don Kozlowski Add transfer_modes_set */ 2 172 /*l and server indicators. (kermit 13) */ 2 173 /* */ 2 174 /********************************************************************/ 2 175 2 176 dcl 01 kermit_comm_info aligned based (kermit_comm_infop), 2 177 02 version char (8), 2 178 02 ft_iocbp ptr, /* transfer iocbp */ 2 179 02 debug_segp ptr, /* debug segment */ 2 180 02 debug_segl fixed bin (21), 2 181 02 input_buffer aligned, /* input buffer */ 2 182 03 bufferp ptr, 2 183 03 bufferl fixed bin (21), 2 184 02 old_modes char (512) unal, /* ft switch modes */ 2 185 02 old_framing_chars aligned, /* saved frm chars */ 2 186 03 start_char char (1) unaligned, 2 187 03 end_char char (1) unaligned, 2 188 03 server bit (1) unaligned, /* In server mode */ 2 189 03 transfer_modes_set bit (1) unaligned, 2 190 03 pad bit (16) unaligned, 2 191 02 old_wake_table aligned, /* saved wake table */ 2 192 03 breaks (0:127) bit (1) unaligned, 2 193 03 mbz bit (16) unaligned, 2 194 02 old_delays aligned, /* saved delay info */ 2 195 03 version fixed bin, 2 196 03 default fixed bin, 2 197 03 delay, 2 198 04 vert_nl fixed bin, 2 199 04 horz_nl fixed bin, 2 200 04 const_tab float bin, 2 201 04 var_tab fixed bin, 2 202 04 backspace fixed bin, 2 203 04 vt_ff fixed bin; 2 204 2 205 dcl kermit_comm_infop ptr; 2 206 dcl kermit_comm_info_version 2 207 char (8) static options (constant) 2 208 init ("kci 1.0"); 2 209 2 210 /* END OF: kermit_info.incl.pl1 * * * * * */ 110 111 3 1 /* START OF: kermit_transfer_info.incl.pl1 * * * * * */ 3 2 3 3 3 4 3 5 /****^ HISTORY COMMENTS: 3 6* 1) change(88-05-16,Huen), approve(88-05-16,MCR7841), audit(88-05-25,RWaters), 3 7* install(88-07-05,MR12.2-1054): 3 8* Fix kermit 15, 16, 17, and 18. 3 9* END HISTORY COMMENTS */ 3 10 3 11 3 12 /********************************************************************/ 3 13 /* */ 3 14 /*n kermit_transfer_info */ 3 15 /* */ 3 16 /*d This data structure is the info structure used */ 3 17 /*d during file transfer. */ 3 18 /* */ 3 19 /*l Written: 84-10-11 by Maureen Mallmes */ 3 20 /*l Modified: 87-06-19 by Don Kozlowski - Add flags in kti */ 3 21 /*l structure. (kermit 15) */ 3 22 /*l Modified: 87-07-22 by Don Kozlowski - Add msf flag in */ 3 23 /*l kti structure. (kermit 17) */ 3 24 /* */ 3 25 /********************************************************************/ 3 26 3 27 dcl 01 kermit_transfer_info aligned based (transfer_infop), 3 28 02 retry_count fixed bin (21), /* for current packet */ 3 29 02 retry_threshold fixed bin (8) unal, /* maximum retries */ 3 30 02 sequence_n fixed bin, /* sequence number */ 3 31 02 filenamesp ptr, /* ptr to filenames */ 3 32 02 filenames_idx fixed bin, /* current filename */ 3 33 02 filep ptr, /* start of file ptr */ 3 34 02 buffp ptr, /* file data ptr */ 3 35 02 msf_count fixed bin (21), /* msf segments to send */ 3 36 02 msf_current fixed bin (21), /* current msf module */ 3 37 02 file_count fixed bin, /* per transaction */ 3 38 02 statisticsp ptr, /* statistics info ptr */ 3 39 02 flags, 3 40 03 msf bit (1), /* Is this an MSF */ 3 41 03 owe_a_cr bit (1), /* Holding back a CR */ 3 42 03 pad bit (34), 3 43 02 iocb_ptr ptr; /* for vfile_ */ 3 44 3 45 3 46 3 47 dcl transfer_infop ptr; 3 48 dcl kermit_transfer_info_version 3 49 char (9) static options (constant) 3 50 init ("kti 1.1"); 3 51 3 52 3 53 3 54 3 55 /********************************************************************/ 3 56 /* */ 3 57 /*n kermit_filenames */ 3 58 /* */ 3 59 /*d This data structure defines the overlay for the filenames. */ 3 60 /* */ 3 61 /*l Written: 84-10-11 by Maureen Mallmes */ 3 62 /*l Modified: 84-11-05 by Dean Elhard to add archive support */ 3 63 /* */ 3 64 /********************************************************************/ 3 65 3 66 dcl 01 kermit_filenames aligned based (kermit_transfer_info.filenamesp), 3 67 02 n_paths fixed bin, 3 68 02 pathname (0 refer (kermit_filenames.n_paths)) aligned, 3 69 03 directory char (168) unal, 3 70 03 entry_name char (32) unal, 3 71 03 component char (32) unal; 3 72 3 73 3 74 /********************************************************************/ 3 75 /* */ 3 76 /*n kermit_packets */ 3 77 /* */ 3 78 /*d This data defines the packet types. */ 3 79 /* */ 3 80 /*l Written: 84-10-11 by Maureen Mallmes */ 3 81 /* */ 3 82 /********************************************************************/ 3 83 3 84 3 85 dcl Data_packet char (1) internal static options (constant) init ("D"); 3 86 dcl Ack_packet char (1) internal static options (constant) init ("Y"); 3 87 dcl Nak_packet char (1) internal static options (constant) init ("N"); 3 88 dcl Send_init_packet char (1) internal static options (constant) init ("S"); 3 89 dcl Eot_packet char (1) internal static options (constant) init ("B"); 3 90 dcl File_header_packet char (1) internal static options (constant) init ("F"); 3 91 dcl Eof_packet char (1) internal static options (constant) init ("Z"); 3 92 dcl Error_packet char (1) internal static options (constant) init ("E"); 3 93 dcl Reserved_packet char (1) internal static options (constant) init ("T"); 3 94 3 95 3 96 /********************************************************************/ 3 97 /* */ 3 98 /*n kermit_states */ 3 99 /* */ 3 100 /*d This data defines the transfer states. */ 3 101 /* */ 3 102 /*l Written: 84-10-11 by Maureen Mallmes */ 3 103 /* */ 3 104 /********************************************************************/ 3 105 3 106 dcl Rec_init fixed bin internal static options (constant) init (0); 3 107 dcl Rec_file_header fixed bin internal static options (constant) init (1); 3 108 dcl Rec_data fixed bin internal static options (constant) init (2); 3 109 dcl Rec_file_abort fixed bin internal static options (constant) init (3); 3 110 dcl Rec_abort fixed bin internal static options (constant) init (4); 3 111 dcl Rec_complete fixed bin internal static options (constant) init (5); 3 112 3 113 dcl Send_init fixed bin internal static options (constant) init (0); 3 114 dcl Send_file_header fixed bin internal static options (constant) init (1); 3 115 dcl Send_data fixed bin internal static options (constant) init (2); 3 116 dcl Send_eof fixed bin internal static options (constant) init (3); 3 117 dcl Send_break fixed bin internal static options (constant) init (4); 3 118 dcl Send_abort fixed bin internal static options (constant) init (5); 3 119 dcl Send_complete fixed bin internal static options (constant) init (6); 3 120 3 121 3 122 /* END OF: kermit_transfer_info.incl.pl1 * * * * * */ 112 113 4 1 /* BEGIN INCLUDE FILE . . . star_structures.incl.pl1 */ 4 2 4 3 /* This include file contains structures for the hcs_$star_, 4 4* hcs_$star_list_ and hcs_$star_dir_list_ entry points. 4 5* 4 6* Written 23 October 1978 by Monte Davidoff. 4 7* Modified January 1979 by Michael R. Jordan to use unsigned and different pointers for different structures. 4 8* Modified June 1981 by C. Hornig to count link pathnames more efficiently. 4 9**/ 4 10 4 11 /* automatic */ 4 12 4 13 declare star_branch_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching branch count */ 4 14 declare star_entry_count fixed binary; /* hcs_$star_: number of matching entries */ 4 15 declare star_entry_ptr pointer; /* hcs_$star_: pointer to array of entry information */ 4 16 declare star_list_branch_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to array of info */ 4 17 declare star_link_count fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: matching link count */ 4 18 declare star_linkx fixed binary; /* hcs_$star_list_, hcs_$star_dir_list_: index into star_links */ 4 19 declare star_names_ptr pointer; /* hcs_$star_: pointer to array of entry names */ 4 20 declare star_list_names_ptr pointer; /* hcs_$star_list_, hcs_$star_dir_list_: ptr to entry names */ 4 21 declare star_select_sw fixed binary (3); /* hcs_$star_list_, hcs_$star_dir_list_: what info to return */ 4 22 4 23 /* based */ 4 24 4 25 /* hcs_$star_ entry structure */ 4 26 4 27 declare 1 star_entries (star_entry_count) aligned based (star_entry_ptr), 4 28 2 type fixed binary (2) unsigned unaligned, 4 29 /* storage system type */ 4 30 2 nnames fixed binary (16) unsigned unaligned, 4 31 /* number of names of entry that match star_name */ 4 32 2 nindex fixed binary (18) unsigned unaligned; 4 33 /* index of first name in star_names */ 4 34 4 35 /* hcs_$star_ name structure */ 4 36 4 37 declare star_names (sum (star_entries (*).nnames)) char (32) based (star_names_ptr); 4 38 4 39 /* hcs_$star_list_ branch structure */ 4 40 4 41 declare 1 star_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 4 42 2 type fixed binary (2) unsigned unaligned, 4 43 /* storage system type */ 4 44 2 nnames fixed binary (16) unsigned unaligned, 4 45 /* number of names of entry that match star_name */ 4 46 2 nindex fixed binary (18) unsigned unaligned, 4 47 /* index of first name in star_list_names */ 4 48 2 dtcm bit (36) unaligned, /* date-time contents of branch were last modified */ 4 49 2 dtu bit (36) unaligned, /* date-time branch was last used */ 4 50 2 mode bit (5) unaligned, /* user's access mode to the branch */ 4 51 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 4 52 2 master_dir bit (1) unaligned, /* is branch a master directory */ 4 53 2 pad bit (7) unaligned, 4 54 2 records fixed binary (18) unsigned unaligned; 4 55 /* records used by branch */ 4 56 4 57 /* hcs_$star_dir_list_ branch structure */ 4 58 4 59 declare 1 star_dir_list_branch (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 4 60 2 type fixed binary (2) unsigned unaligned, 4 61 /* storage system type */ 4 62 2 nnames fixed binary (16) unsigned unaligned, 4 63 /* number of names of entry that match star_name */ 4 64 2 nindex fixed binary (18) unsigned unaligned, 4 65 /* index of first name in star_list_names */ 4 66 2 dtem bit (36) unaligned, /* date-time directory entry of branch was last modified */ 4 67 2 pad bit (36) unaligned, 4 68 2 mode bit (5) unaligned, /* user's access mode to the branch */ 4 69 2 raw_mode bit (5) unaligned, /* user's ACL access mode */ 4 70 2 master_dir bit (1) unaligned, /* is branch a master directory */ 4 71 2 bit_count fixed binary (24) unaligned; 4 72 /* bit count of the branch */ 4 73 4 74 /* hcs_$star_list_ and hcs_$star_dir_list_ link structure */ 4 75 4 76 declare 1 star_links (star_branch_count + star_link_count) aligned based (star_list_branch_ptr), 4 77 2 type fixed binary (2) unsigned unaligned, 4 78 /* storage system type */ 4 79 2 nnames fixed binary (16) unsigned unaligned, 4 80 /* number of names of entry that match star_name */ 4 81 2 nindex fixed binary (18) unsigned unaligned, 4 82 /* index of first name in star_list_names */ 4 83 2 dtem bit (36) unaligned, /* date-time link was last modified */ 4 84 2 dtd bit (36) unaligned, /* date-time the link was last dumped */ 4 85 2 pathname_len fixed binary (18) unsigned unaligned, 4 86 /* length of the pathname of the link */ 4 87 2 pathname_index fixed binary (18) unsigned unaligned; 4 88 /* index of start of pathname in star_list_names */ 4 89 4 90 /* hcs_$star_list_ and hcs_$star_dir_list_ name array */ 4 91 4 92 declare star_list_names char (32) based (star_list_names_ptr) 4 93 dimension (star_links (star_branch_count + star_link_count).nindex 4 94 + star_links (star_branch_count + star_link_count).nnames 4 95 + divide (star_links (star_branch_count + star_link_count).pathname_len + 31, 32, 17, 0) 4 96 * binary ( 4 97 (star_links (star_branch_count + star_link_count).type = star_LINK) 4 98 & (star_select_sw >= star_LINKS_ONLY_WITH_LINK_PATHS), 1)); 4 99 4 100 /* hcs_$star_list_ and hcs_$star_dir_list_ link pathname */ 4 101 4 102 declare star_link_pathname char (star_links (star_linkx).pathname_len) 4 103 based (addr (star_list_names (star_links (star_linkx).pathname_index))); 4 104 4 105 /* internal static */ 4 106 4 107 /* star_select_sw values */ 4 108 4 109 declare star_LINKS_ONLY fixed binary (2) internal static options (constant) initial (1); 4 110 declare star_BRANCHES_ONLY fixed binary (2) internal static options (constant) initial (2); 4 111 declare star_ALL_ENTRIES fixed binary (2) internal static options (constant) initial (3); 4 112 declare star_LINKS_ONLY_WITH_LINK_PATHS 4 113 fixed binary (3) internal static options (constant) initial (5); 4 114 declare star_ALL_ENTRIES_WITH_LINK_PATHS 4 115 fixed binary (3) internal static options (constant) initial (7); 4 116 4 117 /* storage system types */ 4 118 4 119 declare star_LINK fixed binary (2) unsigned internal static options (constant) initial (0); 4 120 declare star_SEGMENT fixed binary (2) unsigned internal static options (constant) initial (1); 4 121 declare star_DIRECTORY fixed binary (2) unsigned internal static options (constant) initial (2); 4 122 4 123 /* END INCLUDE FILE . . . star_structures.incl.pl1 */ 114 115 5 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 5 2 /* format: style2,^inddcls,idind32 */ 5 3 5 4 declare 1 terminate_file_switches based, 5 5 2 truncate bit (1) unaligned, 5 6 2 set_bc bit (1) unaligned, 5 7 2 terminate bit (1) unaligned, 5 8 2 force_write bit (1) unaligned, 5 9 2 delete bit (1) unaligned; 5 10 5 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 5 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 5 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 5 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 5 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 5 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 5 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 5 18 5 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 116 117 118 kermit_scip = ki.sci_ptr; 119 select_sw = star_BRANCHES_ONLY; 120 star_entry_ptr, star_names_ptr = null; 121 122 /* Get the pathname */ 123 call expand_pathname_$component (argument, source_dir, source_ename, source_component, ec); 124 if ec ^= 0 then do; 125 reason = argument; 126 return; 127 end; 128 129 130 call check_star_name_$entry (source_ename, source_stars); 131 if (source_stars ^= Non_star_name) & (source_stars ^= Star_name) & (source_stars ^= All_match_star_name) 132 then do; 133 reason = pathname_$component (source_dir, source_ename, source_component); 134 ec = source_stars; 135 return; 136 end; 137 138 if source_stars = Non_star_name then do; /* not a star name */ 139 140 /* see if we can find the segment/component */ 141 142 call initiate_file_$component (source_dir, source_ename, source_component, R_ACCESS, segp, bit_count, ec); 143 if ec = error_table_$dirseg & source_component = "" 144 then do; 145 call hcs_$status_minf (source_dir, 146 source_ename, (1), (0), bit_count , ec); 147 if bit_count ^= 0 then do; 148 call initiate_file_$component ( 149 pathname_$component (source_dir, source_ename, ""), 150 "0", "", R_ACCESS, segp, bit_count, ec); 151 end; 152 else ec = error_table_$dirseg; 153 end; 154 if ec ^= 0 then do; 155 reason = pathname_$component (source_dir, source_ename, source_component); 156 return; 157 end; 158 159 /* clean up the address space */ 160 161 if segp ^= null then 162 call terminate_file_ (segp, bit_count, TERM_FILE_TERM, ec); 163 164 /* Save the filename */ 165 166 filenames.n_paths = filenames.n_paths + 1; 167 filenames.pathname.directory (filenames.n_paths) = source_dir; 168 filenames.pathname.entry_name (filenames.n_paths) = source_ename; 169 filenames.pathname.component (filenames.n_paths) = source_component; 170 return; 171 end; 172 173 else do; /* get star names */ 174 175 if source_component ^= "" then do; 176 ec = kermit_et_$archive_star; 177 reason = pathname_$component (source_dir, source_ename, source_component); 178 return; 179 end; 180 181 system_area_ptr = get_system_free_area_ (); 182 on cleanup call filenames_cleanup; 183 184 call hcs_$star_ (source_dir, source_ename, select_sw, system_area_ptr, 185 star_entry_count, star_entry_ptr, star_names_ptr, ec); 186 if ec ^= 0 then do; 187 reason = pathname_$component (source_dir, source_ename, source_component); 188 return; 189 end; 190 191 192 /* Save the filenames */ 193 do idx = 1 to star_entry_count; 194 ename = star_names (star_entries (idx).nindex); 195 filenames.n_paths = filenames.n_paths + 1; 196 filenames.pathname.directory (filenames.n_paths) = source_dir; 197 filenames.pathname.entry_name (filenames.n_paths) = ename; 198 filenames.pathname.component (filenames.n_paths) = ""; 199 end; 200 end; 201 call filenames_cleanup; 202 return; 203 204 /* cleanup star names area */ 205 206 filenames_cleanup: 207 proc; 208 209 if star_names_ptr ^= null 210 then do; 211 free star_names in (system_area); 212 star_names_ptr = null; 213 end; 214 215 if star_entry_ptr ^= null 216 then do; 217 free star_entries in (system_area); 218 star_entry_ptr = null; 219 end; 220 221 return; 222 end filenames_cleanup; 223 224 end kermit_get_filenames_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/01/89 1434.9 kermit_get_filenames_.pl1 >spec>install>1020>kermit_get_filenames_.pl1 108 1 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 110 2 07/07/88 2041.4 kermit_info.incl.pl1 >ldd>include>kermit_info.incl.pl1 112 3 07/07/88 2041.4 kermit_transfer_info.incl.pl1 >ldd>include>kermit_transfer_info.incl.pl1 114 4 06/10/82 1045.5 star_structures.incl.pl1 >ldd>include>star_structures.incl.pl1 116 5 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. All_match_star_name constant fixed bin(17,0) initial dcl 45 ref 131 Non_star_name constant fixed bin(17,0) initial dcl 46 ref 131 138 R_ACCESS 000001 constant bit(3) initial packed unaligned dcl 1-11 set ref 142* 148* Star_name constant fixed bin(17,0) initial dcl 47 ref 131 TERM_FILE_TERM 000000 constant bit(3) initial packed unaligned dcl 5-14 set ref 161* argument parameter char packed unaligned dcl 51 set ref 22 123* 125 bit_count 000100 automatic fixed bin(24,0) dcl 59 set ref 142* 145* 147 148* 161* check_star_name_$entry 000016 constant entry external dcl 94 ref 130 cleanup 000216 stack reference condition dcl 105 ref 182 component 63 based char(32) array level 3 packed packed unaligned dcl 73 set ref 169* 198* directory 1 based char(168) array level 3 packed packed unaligned dcl 73 set ref 167* 196* ec parameter fixed bin(35,0) dcl 55 set ref 22 123* 124 134* 142* 143 145* 148* 152* 154 161* 176* 184* 186 ename 000102 automatic char(32) packed unaligned dcl 61 set ref 194* 197 entry_name 53 based char(32) array level 3 packed packed unaligned dcl 73 set ref 168* 197* error_table_$dirseg 000010 external static fixed bin(35,0) dcl 86 ref 143 152 expand_pathname_$component 000014 constant entry external dcl 92 ref 123 filenames based structure level 1 unaligned dcl 73 filenames_areap parameter pointer dcl 53 ref 22 166 166 167 167 168 168 169 169 195 195 196 196 197 197 198 198 get_system_free_area_ 000020 constant entry external dcl 95 ref 181 hcs_$star_ 000022 constant entry external dcl 96 ref 184 hcs_$status_minf 000024 constant entry external dcl 97 ref 145 idx 000101 automatic fixed bin(17,0) dcl 60 set ref 193* 194* infop parameter pointer dcl 52 ref 22 118 initiate_file_$component 000026 constant entry external dcl 98 ref 142 148 kermit_et_$archive_star 000012 external static fixed bin(35,0) dcl 87 ref 176 kermit_filenames based structure level 1 dcl 3-66 kermit_info based structure level 1 dcl 2-52 kermit_scip 000112 automatic pointer dcl 62 set ref 118* kermit_stats_info based structure level 1 dcl 2-147 ki based structure level 1 unaligned dcl 74 n_paths based fixed bin(17,0) level 2 dcl 73 set ref 166* 166 167 168 169 195* 195 196 197 198 nindex 0(18) based fixed bin(18,0) array level 2 packed packed unsigned unaligned dcl 4-27 ref 194 nnames 0(02) based fixed bin(16,0) array level 2 packed packed unsigned unaligned dcl 4-27 ref 211 null builtin function dcl 78 ref 120 161 209 212 215 218 pathname 1 based structure array level 2 dcl 73 pathname_$component 000030 constant entry external dcl 100 ref 133 148 148 155 177 187 reason parameter char packed unaligned dcl 54 set ref 22 125* 133* 155* 177* 187* sci_ptr 2 based pointer level 2 dcl 74 ref 118 segp 000116 automatic pointer dcl 64 set ref 142* 148* 161 161* select_sw 000114 automatic fixed bin(2,0) dcl 63 set ref 119* 184* source_component 000120 automatic char(32) packed unaligned dcl 65 set ref 123* 133* 142* 143 155* 169 175 177* 187* source_dir 000130 automatic char(168) packed unaligned dcl 66 set ref 123* 133* 142* 145* 148* 148* 155* 167 177* 184* 187* 196 source_ename 000202 automatic char(32) packed unaligned dcl 67 set ref 123* 130* 133* 142* 145* 148* 148* 155* 168 177* 184* 187* source_stars 000212 automatic fixed bin(35,0) dcl 68 set ref 130* 131 131 131 134 138 star_BRANCHES_ONLY constant fixed bin(2,0) initial dcl 4-110 ref 119 star_entries based structure array level 1 dcl 4-27 ref 217 star_entry_count 000224 automatic fixed bin(17,0) dcl 4-14 set ref 184* 193 211 217 star_entry_ptr 000226 automatic pointer dcl 4-15 set ref 120* 184* 194 211 215 217 218* star_names based char(32) array packed unaligned dcl 4-37 ref 194 211 star_names_ptr 000230 automatic pointer dcl 4-19 set ref 120* 184* 194 209 211 212* sum builtin function dcl 78 ref 211 system_area based area(1024) dcl 82 ref 211 217 system_area_ptr 000214 automatic pointer dcl 69 set ref 181* 184* 211 217 terminate_file_ 000032 constant entry external dcl 101 ref 161 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Ack_packet internal static char(1) initial packed unaligned dcl 3-86 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-33 Data_packet internal static char(1) initial packed unaligned dcl 3-85 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Eof_packet internal static char(1) initial packed unaligned dcl 3-91 Eot_packet internal static char(1) initial packed unaligned dcl 3-89 Error_packet internal static char(1) initial packed unaligned dcl 3-92 File_header_packet internal static char(1) initial packed unaligned dcl 3-90 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Nak_packet internal static char(1) initial packed unaligned dcl 3-87 REW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Rec_abort internal static fixed bin(17,0) initial dcl 3-110 Rec_complete internal static fixed bin(17,0) initial dcl 3-111 Rec_data internal static fixed bin(17,0) initial dcl 3-108 Rec_file_abort internal static fixed bin(17,0) initial dcl 3-109 Rec_file_header internal static fixed bin(17,0) initial dcl 3-107 Rec_init internal static fixed bin(17,0) initial dcl 3-106 Reserved_packet internal static char(1) initial packed unaligned dcl 3-93 SA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 Send_abort internal static fixed bin(17,0) initial dcl 3-118 Send_break internal static fixed bin(17,0) initial dcl 3-117 Send_complete internal static fixed bin(17,0) initial dcl 3-119 Send_data internal static fixed bin(17,0) initial dcl 3-115 Send_eof internal static fixed bin(17,0) initial dcl 3-116 Send_file_header internal static fixed bin(17,0) initial dcl 3-114 Send_init internal static fixed bin(17,0) initial dcl 3-113 Send_init_packet internal static char(1) initial packed unaligned dcl 3-88 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 5-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 5-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 5-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 5-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 5-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 5-15 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 kermit_bit_constants internal static structure level 1 packed packed unaligned dcl 2-27 kermit_char_constants based structure level 1 packed packed unaligned dcl 2-31 kermit_comm_info based structure level 1 dcl 2-176 kermit_comm_info_version internal static char(8) initial packed unaligned dcl 2-206 kermit_comm_infop automatic pointer dcl 2-205 kermit_fixed_constants based structure level 1 packed packed unaligned dcl 2-35 kermit_info_version internal static char(8) initial packed unaligned dcl 2-61 kermit_infop automatic pointer dcl 2-60 kermit_log_info based structure level 1 dcl 2-122 kermit_log_info_version internal static char(8) initial packed unaligned dcl 2-133 kermit_log_infop automatic pointer dcl 2-132 kermit_perm_mode_count internal static fixed bin(17,0) initial dcl 2-83 kermit_perm_modes based structure level 1 dcl 2-77 kermit_perm_modes_version internal static char(8) initial packed unaligned dcl 2-84 kermit_perm_modesp automatic pointer dcl 2-82 kermit_stats_infop automatic pointer dcl 2-160 kermit_temp_mode_count internal static fixed bin(17,0) initial dcl 2-105 kermit_temp_modes based structure level 1 dcl 2-99 kermit_temp_modes_version internal static char(8) initial packed unaligned dcl 2-106 kermit_temp_modesp automatic pointer dcl 2-104 kermit_transfer_info based structure level 1 dcl 3-27 kermit_transfer_info_version internal static char(9) initial packed unaligned dcl 3-48 star_ALL_ENTRIES internal static fixed bin(2,0) initial dcl 4-111 star_ALL_ENTRIES_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 4-114 star_DIRECTORY internal static fixed bin(2,0) initial unsigned dcl 4-121 star_LINK internal static fixed bin(2,0) initial unsigned dcl 4-119 star_LINKS_ONLY internal static fixed bin(2,0) initial dcl 4-109 star_LINKS_ONLY_WITH_LINK_PATHS internal static fixed bin(3,0) initial dcl 4-112 star_SEGMENT internal static fixed bin(2,0) initial unsigned dcl 4-120 star_branch_count automatic fixed bin(17,0) dcl 4-13 star_dir_list_branch based structure array level 1 dcl 4-59 star_link_count automatic fixed bin(17,0) dcl 4-17 star_link_pathname based char packed unaligned dcl 4-102 star_links based structure array level 1 dcl 4-76 star_linkx automatic fixed bin(17,0) dcl 4-18 star_list_branch based structure array level 1 dcl 4-41 star_list_branch_ptr automatic pointer dcl 4-16 star_list_names based char(32) array packed unaligned dcl 4-92 star_list_names_ptr automatic pointer dcl 4-20 star_select_sw automatic fixed bin(3,0) dcl 4-21 terminate_file_switches based structure level 1 packed packed unaligned dcl 5-4 transfer_infop automatic pointer dcl 3-47 NAMES DECLARED BY EXPLICIT CONTEXT. filenames_cleanup 001004 constant entry internal dcl 206 ref 182 201 kermit_get_filenames_ 000033 constant entry external dcl 22 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1252 1306 1062 1262 Length 1606 1062 34 264 167 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME kermit_get_filenames_ 266 external procedure is an external procedure. on unit on line 182 64 on unit filenames_cleanup 64 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME kermit_get_filenames_ 000100 bit_count kermit_get_filenames_ 000101 idx kermit_get_filenames_ 000102 ename kermit_get_filenames_ 000112 kermit_scip kermit_get_filenames_ 000114 select_sw kermit_get_filenames_ 000116 segp kermit_get_filenames_ 000120 source_component kermit_get_filenames_ 000130 source_dir kermit_get_filenames_ 000202 source_ename kermit_get_filenames_ 000212 source_stars kermit_get_filenames_ 000214 system_area_ptr kermit_get_filenames_ 000224 star_entry_count kermit_get_filenames_ 000226 star_entry_ptr kermit_get_filenames_ 000230 star_names_ptr kermit_get_filenames_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mpfx2 enable_op ext_entry_desc int_entry op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_$entry expand_pathname_$component get_system_free_area_ hcs_$star_ hcs_$status_minf initiate_file_$component pathname_$component terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$dirseg kermit_et_$archive_star LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 22 000026 118 000053 119 000060 120 000062 123 000065 124 000114 125 000117 126 000126 130 000127 131 000144 133 000152 134 000204 135 000206 138 000207 142 000211 143 000252 145 000263 147 000322 148 000324 151 000415 152 000416 154 000422 155 000425 156 000457 161 000460 166 000511 167 000514 168 000523 169 000527 170 000533 175 000534 176 000540 177 000544 178 000575 181 000576 182 000605 184 000627 186 000673 187 000676 188 000730 193 000731 194 000741 195 000752 196 000755 197 000764 198 000770 199 000774 201 000776 202 001002 206 001003 209 001011 211 001016 212 001045 215 001050 217 001054 218 001056 221 001061 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved