THIS FILE IS DAMAGED COMPILATION LISTING OF SEGMENT mtape_get_defaults Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/09/85 1303.0 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 /* format: style4,inddcls,^ifthendo,^indproc,indcom,^indblkcom,declareind8,dclind4 */ 7 mtape_get_defaults: proc (); 8 9 /* DESCRIPTION: 10* 11* This command prints out default arguments that have been set 12* by the mtape_set_defaults command. It prints out the 13* defaults associated with a particular tape processing operation 14* and volume type. It can print out either the default linear 15* form or the defaults from a specified value segment. 16* 17* The default linear form is the final set of defaults that 18* apply after all of the applicable defaults have been 19* gathered from the search list and processed. We don't 20* have to worry about constructing the default linear form 21* because there is an entry in the mtape_ argument processing 22* routine that does this. 23* 24* */ 25 26 /* HISTORY: 27* 28* Written 09/13/83 by S. Krupp. 29* */ 30 31 /* START OF DECLARATIONS */ 32 33 /* Automatic */ 34 35 dcl arg_list_ptr ptr; 36 dcl based_varying_char_ptr ptr; 37 dcl code fixed bin(35); 38 dcl db_entryname char(32); 39 dcl db_dirname char(168); 40 dcl db_full_pathname char(168) var; 41 dcl db_rel_pathname char(168) var; 42 dcl default_linear_form char(4096) var; 43 dcl definition_ptr ptr; 44 dcl found_option bit(4); 45 dcl idx fixed bin; 46 dcl n_data_words fixed bin(18); 47 dcl nargs fixed bin; 48 dcl operation char(32) var; 49 dcl program_name char(64) var; 50 dcl result_ptr ptr; 51 dcl use_search_list bit(1) aligned; 52 dcl value_seg_ptr ptr; 53 dcl volume_type char(32) var; 54 55 dcl 1 auto_area_info like area_info; 56 57 /* Based */ 58 59 dcl based_varying_char char(sys_info$max_seg_size) var based(based_varying_char_ptr); 60 dcl found_option_array(4) bit(1) unaligned based(addr(found_option)); 61 62 /* Builtin */ 63 64 dcl (addr, hbound, null, unspec) builtin; 65 66 /* Condition */ 67 68 dcl cleanup condition; 69 70 /* Entries */ 71 72 dcl com_err_ entry() options(variable); 73 dcl cu_$arg_count entry (fixed bin, fixed bin(35)); 74 dcl cu_$arg_list_ptr entry (ptr); 75 dcl define_area_ entry (ptr, fixed bin(35)); 76 dcl expand_pathname_$add_suffix entry (char(*), char(*), char(*), char(*), fixed bin(35)); 77 dcl initiate_file_ entry (char(*), char(*), bit(*), ptr, fixed bin(24), fixed bin(35)); 78 dcl ioa_ entry() options(variable); 79 dcl ioa_$rsnnl entry() options(variable); 80 dcl pathname_ entry (char(*), char(*)) returns(char(168)); 81 dcl process_arguments_$argument_list entry(char(*), fixed bin, ptr, fixed bin, ptr, ptr, ptr, fixed bin(35)); 82 dcl process_arguments_$cv_result_to_linear_form entry(ptr, ptr, char(*) varying, fixed bin(35)); 83 dcl process_arguments_$get_option_value entry() options(variable); 84 dcl release_area_ entry (ptr); 85 dcl term_$seg_ptr entry (ptr, fixed bin(35)); 86 dcl value_$get_data entry (ptr, bit(36) aligned, char(*), ptr, ptr, fixed bin(18), fixed bin(35)); 87 88 /* Static */ 89 90 dcl (ARG_PROCESSING_MODE init(0), 91 FIRST_ARG_TO_PROCESS init(1) 92 ) fixed bin internal static options(constant); 93 94 dcl (MYNAME init("mtape_get_defaults"), 95 PROGRAM_NAME_PREFIX init("mtape_") 96 ) char(32) var internal static options(constant); 97 98 dcl (OPERATION_OPTION_IDX init(1), 99 VOLUME_TYPE_OPTION_IDX init(2), 100 PATHNAME_OPTION_IDX init(3), 101 USE_SEARCH_LIST_OPTION_IDX init(4) 102 ) fixed bin internal static options(constant); 103 104 dcl PERMANENT_VALUE bit(2) aligned init("01"b) internal static options(constant); 105 dcl VALUE_SUFFIX char(5) init("value") internal static options(constant); 106 107 dcl (OPERATION_OPTION_NAME init("operation"), 108 VOLUME_TYPE_OPTION_NAME init("volume_type"), 109 PATHNAME_OPTION_NAME init("pathname"), 110 USE_SEARCH_LIST_OPTION_NAME init("user_search_list") 111 ) char(32) var internal static options(constant); 112 113 dcl LONG_OPTION_REFNAME(4) char(32) var int static options(constant) 114 init("operation", "-volume_type", "-pathname", "-use_search_list"); 115 116 dcl (ATTACH_IDX init(1), 117 OPEN_IDX init(2), 118 CLOSE_IDX init(3), 119 DETACH_IDX init(4) 120 ) fixed bin internal static options(constant); 121 122 dcl OPERATIONS(4) char(6) internal static options(constant) 123 init("attach", "open", "close", "detach"); 124 125 dcl VOLUME_TYPES(2) char(32) var internal static options(constant) 126 init("ansi", "ibm"); 127 128 dcl (error_table_$bad_arg, 129 error_table_$noarg, 130 error_table_$oldnamerr 131 )fixed bin(35) ext static; 132 133 dcl sys_info$max_seg_size fixed bin(35) ext static; 134 135 /* Include */ 136 137 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_ACPItani Multics khSg:.@4"Elliott Multics { wS86\&nMikulecky Multics l^S07 Gratton Office |SaT:Maryniuk Multics D @XSQ|jZwick Multics SWx&N<Elhard Multics S#BT Fudge SysAdmin SЁpSchroth SysMaint jA@S,NMcGirr Multics oST"Collin Multics 5S;  hV Clayton Multics RSxYW(:: (!Gray Multics r@BSMVh !"Wong Multics &u@ SP"#Mallmes Multics 53S:N|#$Gee Multics 4wSD"$p%Mayes Office t`ST55 T%B&Neil Multics SZu<N&&'Sieber Multics &S!j|'(Lam Multics 3@.SHf'()Radlowsky Multics [OT.)ults OPERATION {-control_args}""", ""); 167 168 on cleanup call CLEANUP(); 169 170 call define_area_(addr(auto_area_info), code); 171 if code ^= 0 172 then call ABORT(code, "Unable to allocate a work area.", ""); 173 174 /* Get mtape_get_default's argument list. */ 175 176 call cu_$arg_list_ptr(arg_list_ptr); 177 178 /* Process mtape_get_defaults's arguments. */ 179 180 call process_arguments_$argument_list((MYNAME), ARG_PROCESSING_MODE, 181 arg_list_ptr, FIRST_ARG_TO_PROCESS, null, auto_area_info.areap, 182 result_ptr, code); 183 if code ^= 0 184 then call ABORT_SILENT(); /* Error msg already printed. */ 185 186 /* Get information needed to locate the arguments that are the 187* subject of the command line (i.e., the arguments that are 188* the defaults for the specified tape processing operation and 189* volume type). */ 190 191 call process_arguments_$get_option_value(result_ptr, 192 auto_area_info.areap, found_option, OPERATION_OPTION_NAME, 193 operation, VOLUME_TYPE_OPTION_NAME, volume_type, 194 PATHNAME_OPTION_NAME, db_rel_pathname, USE_SEARCH_LIST_OPTION_NAME, 195 use_search_list); 196 197 if ^found_option_array(OPERATION_OPTION_IDX) 198 then call ABORT(error_table_$noarg, "Missing ""^a"" option.", 199 (LONG_OPTION_REFNAME(OPERATION_OPTION_IDX))); 200 201 do idx = 1 to hbound(OPERATIONS, 1) while(OPERATIONS(idx) ^= operation); 202 end; 203 204 if idx > hbound(OPERATIONS, 1) 205 then call ABORT(error_table_$bad_arg, "Unknown operation specified: ""^a"".", (operation)); 206 207 if found_option_array(VOLUME_TYPE_OPTION_IDX) 208 then do; 209 do idx = 1 to hbound(VOLUME_TYPES, 1) while(VOLUME_TYPES(idx) ^= volume_type); 210 end; 211 212 if idx > hbound(VOLUME_TYPES, 1) 213 then call ABORT(error_table_$bad_arg, "Unknown volume type specified: ""^a"".", (volume_type)); 214 215 if operation = OPERATIONS(ATTACH_IDX) | operation = OPERATIONS(DETACH_IDX) 216 then call ABORT(error_table_$bad_arg, "Cannot specify the volume type """ || 217 volume_type || """ with the ""^a"" operation.", (operation)); 218 end; 219 220 /* Build the program name from the specified tape processing operation and 221* volume type. */ 222 223 call ioa_$rsnnl("^a.^a^[.^a^;^]", program_name, (0), PROGRAM_NAME_PREFIX, 224 operation, found_option_array(VOLUME_TYPE_OPTION_IDX), volume_type); 225 226 /* Now we either search a value seg for defaults or we call the mtape_ 227* argument processing routine to construct the default linear form. */ 228 229 if found_option_array(PATHNAME_OPTION_IDX) 230 then do; 231 call expand_pathname_$add_suffix((db_rel_pathname), VALUE_SUFFIX, db_dirname, db_entryname, code); 232 if code ^= 0 233 then call ABORT(code, "^a", (db_rel_pathname)); 234 235 db_full_pathname = pathname_(db_dirname, db_entryname); 236 237 call initiate_file_(db_dirname, db_entryname, R_ACCESS, value_seg_ptr, (0), code); 238 if code ^= 0 239 then call ABORT(code, "Unable to initiate ^a.", (db_full_pathname)); 240 241 call value_$get_data(value_seg_ptr, (PERMANENT_VALUE), DEFAULT_LINEAR_FORM_PREFIX || 242 "." || program_name, auto_area_info.areap, based_varying_char_ptr, n_data_words, code); 243 if code = error_table_$oldnamerr 244 then call ABORT((0), "There are no corresponding default arguments^/in @ ~2rr>j@=LSwX\x&H &z&JNƿzzar,Attendees JRyGL)Lab*@JRoe b6j*@JjTMabey Multics r&DIpSaTransactions DQMGQa*@D6L>*@J&NIpSa.Proceedings.1 NQ=Go..a*@N*@JTAuthier *@J>Kallstrom T*@JMcGirr j*@J 215 OPERATION_OPTION_IDX constant fixed bin(17,0) initial dcl 98 ref 197 197 OPERATION_OPTION_NAME 000140 constant varying char(32) initial dcl 107 set ref 191* PATHNAME_OPTION_IDX constant fixed bin(17,0) initial dcl 98 ref 229 266 PATHNAME_OPTION_NAME 000116 constant varying char(32) initial dcl 107 set ref 191* PERMANENT_VALUE constant bit(2) initial dcl 104 ref 241 PROGRAM_NAME_PREFIX 000154 constant varying char(32) initial dcl 94 set ref 223* R_ACCESS 000240 constant bit(3) initial unaligned dcl 1-11 set ref 237* USE_SEARCH_LIST_OPTION_NAME 000105 constant varying char(32) initial dcl 107 set ref 191* VALUE_SUFFIX 000152 constant char(5) initial unaligned dcl 105 set ref 231* VOLUME_TYPES 000011 constant varying char(32) initial array dcl 125 ref 209 209 212 VOLUME_TYPE_OPTION_IDX constant fixed bin(17,0) initial dcl 98 ref 207 223 263 VOLUME_TYPE_OPTION_NAME 000127 constant varying char(32) initial dcl 107 set ref 191* addr builtin function dcl 64 ref 170 170 197 207 223 229 260 263 266 area_control based structure level 1 dcl 2-20 area_info based structure level 1 dcl 2-7 area_info_version_1 constant fixed bin(17,0) initial dcl 2-3 ref 154 areap 16 002376 automatic pointer level 2 dcl 55 set ref 155* 180* 191* 241* 251* 279 279* arg_list_ptr 000100 automatic pointer dcl 35 set ref 176* 180* auto_area_info 002376 automatic structure level 1 unaligned dcl 55 set ref 153* 170 170 based_varying_char based varying char dcl 59 set ref 266* 268* based_varying_char_ptr 000102 automatic pointer dcl 36 set ref 241* 260* 266 268 cleanup 002422 stack reference condition dcl 68 ref 168 code 000104 automatic fixed bin(35,0) dcl 37 in procedure "mtape_get_defaults" set ref 161* 162 162* 170* 171 171* 180* 183 231* 232 232* 237* 238 238* 241* 243 245 245* 251* 253 256* 257 257* 282* code parameter fixed bin(35,0) dcl 292 in procedure "ABORT" set ref 288 296* com_err_ 000010 constant entry external dcl 72 ref 296 control 1 002376 automatic structure level 2 dcl 55 cu_$arg_count 000012 constant entry external dcl 73 ref 161 cu_$arg_list_ptr 000014 constant entry external dcl 74 ref 176 db_dirname 000115 automatic char(168) unaligned dcl 39 set ref 231* 235* 237* db_entryname 000105 automatic char(32) unaligned dcl 38 set ref 231* 235* 237* db_full_pathname 000167 automatic varying char(168) dcl 40 set ref 235* 238 243 245 266* db_rel_pathname 000242 automatic varying char(168) dcl 41 set ref 191* 231 232 default_linear_form Collin ~8process_overseer_ >user_dir_dir>Multics>Collin  qPTmnoneTno`qO PAEwT>Xɦ @ @DGHowe  ~8process_overseer_ >user_dir_dir>Multics>DGHowe  35PTNnone`T 35RM$ Rv(35*T>Xɦ @ @Elhard ~8process_overseer_ >user_dir_dir>Multics>Elhard  PTˠgnoneTT˴DT> #Xɦ @ @Elliott ~8process_overseer_ >user_dir_dir>Multics>Elliott   PTo;Inone`T7  \.Xr*BMd*T>lXɦ @ @Donaldson ~8process_overseer_ >user_dir_dir>Multics>Donaldson  QdTBV'none`TB^T>>LXɦ @ @3Fudge ~8process_overseer_ >user_dir_dir>Multics>Fudge  P T>Xɦ @ @Gray ~8process_overseer_ >user_dir_dir>Multics>Gray   PTL^JnoneZT/_ & JkfRTRIqT>lXɦ @ @Gee ~8process_overseer_ >user_dir_dir>Multics>Gee   PTnone`TaX  < %7OT>j3Xɦ @ @stant entry internal dcl 304 ref 183 253 CLEANUP 002303 constant entry internal dcl 277 ref 168 271 297 306 RETURN 002301 constant label dcl 273 ref 299 308 mtape_get_defaults 000474 constant entry external dcl 7 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2714 2772 2427 2724 Length 3270 2427 56 261 265 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mtape_get_defaults 1445 external procedure is an external procedure. on unit on line 168 64 on unit CLEANUP 74 internal procedure is called by several nonquick procedures. ABORT 84 internal procedure is called during a stack extension. ABORT_SILENT internal procedure shares stack frame of external procedure mtape_get_defaults. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME mtape_get_defaults 000100 arg_list_ptr mtape_get_defaults 000102 based_varying_char_ptr mtape_get_defaults 000104 code mtape_get_defaults 000105 db_entryname mtape_get_defaults 000115 db_dirname mtape_get_defaults 000167 db_full_pathname mtape_get_defaults 000242 db_rel_pathname mtape_get_defaults 000315 default_linear_form mtape_get_defaults 002316 definition_ptr mtape_get_defaults 002320 found_option mtape_get_defaults 002321 idx mtape_get_defaults 002322 n_data_words mtape_get_defaults 002323 nargs mtape_get_defaults 002324 operation mtape_get_defaults 002335 program_name mtape_get_defaults 002356 result_ptr mtape_get_defaults 002360 use_search_list mtape_get_defaults 002362 value_seg_ptr mtape_get_defaults 002364 volume_type mtape_get_defaults 002376 auto_area_info mtape_get_defaults THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return tra_ext enable shorten_stack ext_entry int_entry int_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_list_ptr define_area_ expand_pathname_$add_suffix initiate_file_ ioa_ ioa_$rsnnl pathname_ process_arguments_$argument_list process_arguments_$cv_result_to_linear_form process_arguments_$get_option_value release_area_ term_$seg_ptr value_$get_data THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$noarg error_table_$oldnamerr sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000473 151 000501 153 000503 154 000506 155 000510 156 000512 157 000516 158 000520 159 000522 161 000524 162 000534 165 000561 168 000607 170 000631 171 000644 176 000671 180 000700 183 000752 191 000756 197 001031 201 001100 202 001115 204 001117 207 001156 209 001164 210 001201 212 001203 215 001242 218 001335 223 001336 229 001405 231 001412 232 001453 235 001510 237 001536 238 001574 241 001631 243 001720 245 001762 247 002020 249 002022 251 002024 253 002100 256 002104 257 002130 260 002155 263 002157 266 002213 268 002251 271 002275 273 002301 277 002302 279 002310 282 002323 285 002341 288 002342 296 002363 297 002410 299 002415 304 002420 306 002421 308 002425 ----------------------------------------------------------- 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