COMPILATION LISTING OF SEGMENT dm_set_system_dir Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0932.3 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* dm_set_system_dir is an unprivileged command to change the DM 10* system directory for a process. The subroutine it calls requires the 11* user not be using a DMS and the directory must exist. This directory 12* will then be used for all further DM use, such as finding the current 13* DM AIM directory for the process. 14* 15* Syntax: dm_set_system_dir dir_path {-ctl_args} 16**/ 17 18 /* HISTORY: 19* 20*Written by J. Bongiovanni, 08/15/82. 21*Modified: 22*09/16/82 by M. Pandolf: for modified call to dm_priv_$initialize_system. 23*06/10/83 by Lee A. Newcomb: to remove init_dm_system entry, better ways 24* exist. 25*10/07/83 by Lee A. Newcomb: to use dm_daemon_gate_, not the obsolete 26* dm_priv_ gate. 27*10/10/84 by R. Michael Tague: Fixed auditing comments. Added -auth argument 28* to set_dm_aim_dir.pl1. Changed set_dm_aim_dir to call through tv 29* and to call $create_aim_control_seg. 30*11/22/84 by Lee A. Newcomb: Removed the obsolete set_dm_aim_dir cmd. 31* AIM directories are now found via the use of 32* convert_authorization_$encode, with the system_low dir 33* being the same as the system dir. 34*02/21/85 by Lee A. Newcomb: Added the control args -brief and -long 35* (MCR7018), and changed to use the ERROR_RETURN, FINISH, 36* PROCESS_ARGUMENT, etc. mechanisms. 37**/ 38 39 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo,^inddcls,dclind5,idind35,linecom */ 40 41 dm_set_system_dir: 42 proc options (variable); 43 44 /* START OF DECLARATIONS */ 45 46 /* Parameter */ 47 /* Automatic */ 48 dcl ( 49 accept_control_argument bit (1) aligned init (YES), 50 arg_idx fixed bin init (0), 51 arg_len fixed bin (21) init (0), 52 arg_list_ptr ptr init (null), 53 arg_ptr ptr init (null), 54 code fixed bin (35) init (0), 55 control_argument_idx fixed bin init (1), /* 1 ==> accept pathname */ 56 dir_name char (168) init (BAD_DIR_PATHNAME), 57 force_interpretation_as_argument bit (1) aligned init (NO), 58 is_active_function bit (1) aligned init (NO), 59 number_of_args fixed bin init (-1), 60 print_confirmation_of_setting bit (1) aligned init (YES), 61 sci_ptr ptr init (null) 62 ) automatic; 63 64 /* Based */ 65 dcl arg char (arg_len) based (arg_ptr); 66 67 /* Builtin */ 68 dcl (addr, hbound, index, null, substr) 69 builtin; 70 71 /* Condition */ 72 dcl cleanup condition; 73 74 /* Constant */ 75 dcl ( 76 ARGUMENT_TYPE (6) char (64) varying 77 init ("system dir pathname", 78 "system dir pathname", "", "", "", ""), 79 BAD_DIR_PATHNAME char (2) init ("><"), 80 CONTROL_ARGUMENT (6) char (64) varying 81 init ("", "", "-brief", "-bf", "-long", 82 "-lg"), 83 IOA_GENERAL_RS_NO_NEW_LINE bit (1) aligned init (""b), 84 IOA_GENERAL_RS_DONT_PAD bit (1) aligned init (""b), 85 NO bit (1) aligned init (""b), 86 SSU_INVOCATION_ERR_MSG char (49) 87 init ( 88 "Cannot establish standalone subsystem invocation." 89 ), 90 YES bit (1) aligned init ("1"b), 91 myname char (32) init ("dm_set_system_dir") 92 ) internal static options (constant); 93 94 /* Entry */ 95 dcl ( 96 absolute_pathname_ entry (char (*), char (*), 97 fixed bin (35)), 98 com_err_ entry options (variable), 99 cu_$arg_list_ptr entry (ptr), 100 dm_misc_util_$set_system_dir entry (char (*)), 101 ioa_ entry options (variable), 102 ioa_$general_rs entry (ptr, fixed bin, fixed bin, 103 char (*), fixed bin (21), 104 bit (1) aligned, bit (1) aligned), 105 ssu_$abort_line entry () options (variable), 106 ssu_$arg_ptr entry (ptr, fixed bin, ptr, 107 fixed bin (21)), 108 ssu_$destroy_invocation entry (ptr), 109 ssu_$return_arg entry (ptr, fixed bin, bit (1) aligned, 110 ptr, fixed bin (21)), 111 ssu_$standalone_invocation entry (ptr, char (*), char (*), ptr, 112 entry, fixed bin (35)) 113 ) external; 114 115 /* External */ 116 dcl ( 117 error_table_$active_function, 118 error_table_$bad_arg, 119 error_table_$badopt, 120 error_table_$noarg 121 ) fixed bin (35) external; 122 123 /* END OF DECLARATIONS */ 124 125 /* dm_set_system_dir: repeat for reader */ 126 /* proc options (variable); */ 127 128 SETUP_INVOCATION: 129 do; 130 call cu_$arg_list_ptr (arg_list_ptr); 131 on cleanup call CLEAN_UP (); 132 133 call ssu_$standalone_invocation (sci_ptr, myname, "", arg_list_ptr, 134 ABORT_ENTRY, code); 135 if code ^= 0 then /* should be VERY rare */ 136 call ERROR_RETURN_FROM_SSU_SETUP (code); 137 138 call ssu_$return_arg (sci_ptr, number_of_args, is_active_function, 139 (null ()), (0)); /* don't care what AF return info is */ 140 141 if is_active_function then 142 call ERROR_RETURN (error_table_$active_function); 143 end SETUP_INVOCATION; 144 145 146 ARG_PROCESSING_LOOP: 147 do arg_idx = 1 to number_of_args; 148 call ssu_$arg_ptr (sci_ptr, arg_idx, arg_ptr, arg_len); 149 if index (arg, "-") ^= 1 | force_interpretation_as_argument = YES then 150 call PROCESS_ARGUMENT (arg, control_argument_idx, 151 accept_control_argument); 152 else if accept_control_argument = YES then 153 call PROCESS_CONTROL_ARGUMENT (arg, control_argument_idx, 154 accept_control_argument, force_interpretation_as_argument); 155 else call REPORT_MISSING_ARGUMENT (control_argument_idx); 156 end ARG_PROCESSING_LOOP; 157 158 if control_argument_idx >= 0 & accept_control_argument = NO then 159 call REPORT_MISSING_ARGUMENT (control_argument_idx); 160 161 /* set it */ 162 if dir_name = BAD_DIR_PATHNAME then 163 call ERROR_RETURN (error_table_$noarg, "No directory path given."); 164 call dm_misc_util_$set_system_dir (dir_name); 165 166 if print_confirmation_of_setting then /* tell user we did it */ 167 call ioa_ ("^a: Data Management Per-System directory set to ^a", myname, 168 dir_name); 169 170 call RETURN (); /* and go home */ 171 172 MAIN_RETURN: 173 return; 174 175 RETURN: 176 proc (); 177 ABORT_ENTRY: 178 entry (); /* ABORT currently same as RETURN */ 179 180 call FINISH (); 181 go to MAIN_RETURN; 182 183 end RETURN; 184 185 FINISH: 186 proc (); 187 CLEAN_UP: 188 entry (); /* CLEAN_UP currently same as FINISH */ 189 190 call ssu_$destroy_invocation (sci_ptr); 191 192 return; 193 194 end FINISH; 195 196 PROCESS_ARGUMENT: 197 proc (pa_p_arg, pa_p_control_argument_idx, pa_p_accept_control_argument); 198 199 dcl pa_p_arg char (*) parm; 200 dcl pa_p_control_argument_idx fixed bin parm; 201 dcl pa_p_accept_control_argument bit (1) aligned parm; 202 203 dcl pa_code fixed bin (35) init (0); 204 205 206 goto ARGUMENT (pa_p_control_argument_idx); 207 208 ARGUMENT (-1): 209 call ERROR_RETURN (error_table_$bad_arg, 210 "^/The argument ""^a"" is out of place.", arg); 211 return; 212 213 ARGUMENT (1): /* system dir pathname */ 214 ARGUMENT (2): /* system dir pathname */ 215 if dir_name ^= BAD_DIR_PATHNAME then 216 call ERROR_RETURN (error_table_$bad_arg, 217 "Attempt to use more than one system directory: ^a", arg); 218 call absolute_pathname_ (arg, dir_name, code); 219 if code ^= 0 then 220 call ERROR_RETURN (code, arg); 221 control_argument_idx = 1; 222 accept_control_argument = YES; 223 return; 224 225 end PROCESS_ARGUMENT; 226 227 PROCESS_CONTROL_ARGUMENT: 228 proc (pca_p_arg, pca_p_control_argument_idx, pca_p_accept_control_argument, 229 pca_p_force_interpretation_as_argument); 230 231 232 dcl pca_p_arg char (*) parm; 233 dcl pca_p_control_argument_idx fixed bin parm; 234 dcl pca_p_accept_control_argument bit (1) aligned parm; 235 dcl pca_p_force_interpretation_as_argument 236 bit (1) aligned parm; 237 238 pca_p_control_argument_idx = CONTROL_ARGUMENT_INDEX (pca_p_arg); 239 pca_p_accept_control_argument = YES; 240 pca_p_force_interpretation_as_argument = NO; 241 242 go to CONTROL_ARGUMENT (pca_p_control_argument_idx); 243 244 CONTROL_ARGUMENT (-1): /* not a control argument */ 245 call ERROR_RETURN (error_table_$badopt, pca_p_arg); 246 247 CONTROL_ARGUMENT (1): /* system dir pathname */ 248 CONTROL_ARGUMENT (2): /* system dir pathname */ 249 pca_p_accept_control_argument = NO; 250 return; 251 252 253 CONTROL_ARGUMENT (3): /* -brief */ 254 CONTROL_ARGUMENT (4): /* -bf */ 255 print_confirmation_of_setting = NO; 256 257 pca_p_control_argument_idx = 1; 258 pca_p_accept_control_argument = YES; 259 return; 260 261 262 CONTROL_ARGUMENT (5): /* -long */ 263 CONTROL_ARGUMENT (6): /* -lg */ 264 print_confirmation_of_setting = YES; 265 266 pca_p_control_argument_idx = 1; 267 pca_p_accept_control_argument = YES; 268 return; 269 270 end PROCESS_CONTROL_ARGUMENT; 271 272 CONTROL_ARGUMENT_INDEX: 273 proc (cai_p_arg) returns (fixed bin); 274 275 dcl cai_p_arg char (*); 276 dcl cai_control_argument_idx fixed bin; 277 278 do cai_control_argument_idx = 1 to hbound (CONTROL_ARGUMENT, 1) 279 while (CONTROL_ARGUMENT (cai_control_argument_idx) ^= cai_p_arg); 280 end; 281 if cai_control_argument_idx > hbound (CONTROL_ARGUMENT, 1) then 282 return (-1); 283 else return (cai_control_argument_idx); 284 285 end CONTROL_ARGUMENT_INDEX; 286 287 REPORT_MISSING_ARGUMENT: 288 proc (rma_p_control_argument_idx); 289 290 dcl rma_p_control_argument_idx fixed bin parm; 291 292 call ERROR_RETURN (error_table_$noarg, "^a must be followed by a^[n^] ^a.", 293 CONTROL_ARGUMENT (rma_p_control_argument_idx), 294 ( 295 index ("aeiouh", 296 substr (ARGUMENT_TYPE (rma_p_control_argument_idx), 1, 1)) > 0), 297 ARGUMENT_TYPE (rma_p_control_argument_idx)); 298 299 end REPORT_MISSING_ARGUMENT; 300 301 ERROR_RETURN_FROM_SSU_SETUP: 302 proc (erfss_p_code); 303 304 dcl erfss_p_code fixed bin (35) parameter; 305 306 call com_err_ (erfss_p_code, myname, SSU_INVOCATION_ERR_MSG); 307 308 go to MAIN_RETURN; /* FINISH skipped since nothing to destroy */ 309 310 end ERROR_RETURN_FROM_SSU_SETUP; 311 312 ERROR_RETURN: 313 proc options (variable); 314 315 dcl ( 316 er_arg_list_ptr ptr, 317 er_code fixed bin (35), 318 er_message char (1024), 319 er_message_length fixed bin (21) 320 ) automatic; 321 322 dcl ( 323 er_fixed_bin_35_value fixed bin (35), 324 er_message_overlay char (er_message_length) 325 ) based; 326 327 call cu_$arg_list_ptr (er_arg_list_ptr); 328 er_code = er_arg_list_ptr -> arg_list.arg_ptrs (1) -> er_fixed_bin_35_value; 329 330 if er_arg_list_ptr -> arg_list.arg_count > 1 then do; 331 call ioa_$general_rs (er_arg_list_ptr, 2, 3, er_message, 332 er_message_length, IOA_GENERAL_RS_DONT_PAD, 333 IOA_GENERAL_RS_NO_NEW_LINE); 334 call ssu_$abort_line (sci_ptr, er_code, 335 addr (er_message) -> er_message_overlay); 336 end; 337 else /* no extra info */ 338 call ssu_$abort_line (sci_ptr, er_code); 339 340 end ERROR_RETURN; 341 1 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 1 2* 1 3* James R. Davis 10 May 79 */ 1 4 1 5 dcl 1 arg_list aligned based, 1 6 2 header, 1 7 3 arg_count fixed bin (17) unsigned unal, 1 8 3 pad1 bit (1) unal, 1 9 3 call_type fixed bin (18) unsigned unal, 1 10 3 desc_count fixed bin (17) unsigned unal, 1 11 3 pad2 bit (19) unal, 1 12 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 1 13 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 1 14 1 15 1 16 1 17 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 1 18 2 header, 1 19 3 arg_count fixed bin (17) unsigned unal, 1 20 3 pad1 bit (1) unal, 1 21 3 call_type fixed bin (18) unsigned unal, 1 22 3 desc_count fixed bin (17) unsigned unal, 1 23 3 pad2 bit (19) unal, 1 24 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 1 25 2 envptr ptr, 1 26 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 1 27 1 28 1 29 dcl ( 1 30 Quick_call_type init (0), 1 31 Interseg_call_type init (4), 1 32 Envptr_supplied_call_type 1 33 init (8) 1 34 ) fixed bin (18) unsigned unal int static options (constant); 1 35 1 36 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 1 37* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 1 38* an argument list of the proper size in the user's stack 1 39* 1 40**/ 1 41 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 342 343 344 345 end dm_set_system_dir; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0824.6 dm_set_system_dir.pl1 >spec>on>7192.pbf-04/04/85>dm_set_system_dir.pl1 342 1 10/23/81 1948.6 arg_list.incl.pl1 >ldd>include>arg_list.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. ARGUMENT_TYPE 000207 constant varying char(64) initial array dcl 75 set ref 292 292* BAD_DIR_PATHNAME 001730 constant char(2) initial unaligned dcl 75 ref 48 162 213 CONTROL_ARGUMENT 000041 constant varying char(64) initial array dcl 75 set ref 278 278 281 292* IOA_GENERAL_RS_DONT_PAD 000041 constant bit(1) initial dcl 75 set ref 331* IOA_GENERAL_RS_NO_NEW_LINE 000041 constant bit(1) initial dcl 75 set ref 331* NO constant bit(1) initial dcl 75 ref 48 48 158 240 247 253 SSU_INVOCATION_ERR_MSG 000024 constant char(49) initial unaligned dcl 75 set ref 306* YES constant bit(1) initial dcl 75 ref 48 48 149 152 222 239 258 262 267 absolute_pathname_ 000010 constant entry external dcl 95 ref 218 accept_control_argument 000100 automatic bit(1) initial dcl 48 set ref 48* 149* 152 152* 158 222* addr builtin function dcl 68 ref 334 arg based char unaligned dcl 65 set ref 149 149* 152* 208* 213* 218* 219* arg_count based fixed bin(17,0) level 3 packed unsigned unaligned dcl 1-5 ref 330 arg_idx 000101 automatic fixed bin(17,0) initial dcl 48 set ref 48* 146* 148* arg_len 000102 automatic fixed bin(21,0) initial dcl 48 set ref 48* 148* 149 149 149 152 152 208 208 213 213 218 218 219 219 arg_list based structure level 1 dcl 1-5 arg_list_ptr 000104 automatic pointer initial dcl 48 set ref 48* 130* 133* arg_ptr 000106 automatic pointer initial dcl 48 set ref 48* 148* 149 149 152 208 213 218 219 arg_ptrs 2 based pointer array level 2 dcl 1-5 ref 328 cai_control_argument_idx 000226 automatic fixed bin(17,0) dcl 276 set ref 278* 278* 281 283 cai_p_arg parameter char unaligned dcl 275 ref 272 278 cleanup 000172 stack reference condition dcl 72 ref 131 code 000110 automatic fixed bin(35,0) initial dcl 48 set ref 48* 133* 135 135* 218* 219 219* com_err_ 000012 constant entry external dcl 95 ref 306 control_argument_idx 000111 automatic fixed bin(17,0) initial dcl 48 set ref 48* 149* 152* 155* 158 158* 221* cu_$arg_list_ptr 000014 constant entry external dcl 95 ref 130 327 dir_name 000112 automatic char(168) initial unaligned dcl 48 set ref 48* 162 164* 166* 213 218* dm_misc_util_$set_system_dir 000016 constant entry external dcl 95 ref 164 er_arg_list_ptr 000100 automatic pointer dcl 315 set ref 327* 328 330 331* er_code 000102 automatic fixed bin(35,0) dcl 315 set ref 328* 334* 337* er_fixed_bin_35_value based fixed bin(35,0) dcl 322 ref 328 er_message 000103 automatic char(1024) unaligned dcl 315 set ref 331* 334 er_message_length 000503 automatic fixed bin(21,0) dcl 315 set ref 331* 334 334 er_message_overlay based char unaligned dcl 322 set ref 334* erfss_p_code parameter fixed bin(35,0) dcl 304 set ref 301 306* error_table_$active_function 000036 external static fixed bin(35,0) dcl 116 set ref 141* error_table_$bad_arg 000040 external static fixed bin(35,0) dcl 116 set ref 208* 213* error_table_$badopt 000042 external static fixed bin(35,0) dcl 116 set ref 244* error_table_$noarg 000044 external static fixed bin(35,0) dcl 116 set ref 162* 292* force_interpretation_as_argument 000164 automatic bit(1) initial dcl 48 set ref 48* 149 152* hbound builtin function dcl 68 ref 278 281 header based structure level 2 dcl 1-5 index builtin function dcl 68 ref 149 292 ioa_ 000020 constant entry external dcl 95 ref 166 ioa_$general_rs 000022 constant entry external dcl 95 ref 331 is_active_function 000165 automatic bit(1) initial dcl 48 set ref 48* 138* 141 myname 000014 constant char(32) initial unaligned dcl 75 set ref 133* 166* 306* null builtin function dcl 68 ref 48 48 48 138 number_of_args 000166 automatic fixed bin(17,0) initial dcl 48 set ref 48* 138* 146 pa_code 000210 automatic fixed bin(35,0) initial dcl 203 set ref 203* pa_p_accept_control_argument parameter bit(1) dcl 201 ref 196 pa_p_arg parameter char unaligned dcl 199 ref 196 pa_p_control_argument_idx parameter fixed bin(17,0) dcl 200 ref 196 206 pca_p_accept_control_argument parameter bit(1) dcl 234 set ref 227 239* 247* 258* 267* pca_p_arg parameter char unaligned dcl 232 set ref 227 238* 244* pca_p_control_argument_idx parameter fixed bin(17,0) dcl 233 set ref 227 238* 242 257* 266* pca_p_force_interpretation_as_argument parameter bit(1) dcl 235 set ref 227 240* print_confirmation_of_setting 000167 automatic bit(1) initial dcl 48 set ref 48* 166 253* 262* rma_p_control_argument_idx parameter fixed bin(17,0) dcl 290 ref 287 292 292 292 sci_ptr 000170 automatic pointer initial dcl 48 set ref 48* 133* 138* 148* 190* 334* 337* ssu_$abort_line 000024 constant entry external dcl 95 ref 334 337 ssu_$arg_ptr 000026 constant entry external dcl 95 ref 148 ssu_$destroy_invocation 000030 constant entry external dcl 95 ref 190 ssu_$return_arg 000032 constant entry external dcl 95 ref 138 ssu_$standalone_invocation 000034 constant entry external dcl 95 ref 133 substr builtin function dcl 68 ref 292 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. Envptr_supplied_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 1-29 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 1-29 Quick_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 1-29 arg_list_with_envptr based structure level 1 dcl 1-17 NAMES DECLARED BY EXPLICIT CONTEXT. ABORT_ENTRY 001115 constant entry internal dcl 177 ref 133 133 ARGUMENT 000000 constant label array(-1:2) dcl 208 ref 206 ARG_PROCESSING_LOOP 000654 constant label dcl 146 CLEAN_UP 001142 constant entry internal dcl 187 ref 131 CONTROL_ARGUMENT 000004 constant label array(-1:6) dcl 244 set ref 242 CONTROL_ARGUMENT_INDEX 001421 constant entry internal dcl 272 ref 238 ERROR_RETURN 001566 constant entry internal dcl 312 ref 141 162 208 213 219 244 292 ERROR_RETURN_FROM_SSU_SETUP 001541 constant entry internal dcl 301 ref 135 FINISH 001133 constant entry internal dcl 185 ref 180 MAIN_RETURN 001104 constant label dcl 172 ref 181 308 PROCESS_ARGUMENT 001157 constant entry internal dcl 196 ref 149 PROCESS_CONTROL_ARGUMENT 001331 constant entry internal dcl 227 ref 152 REPORT_MISSING_ARGUMENT 001465 constant entry internal dcl 287 ref 155 158 RETURN 001106 constant entry internal dcl 175 ref 170 SETUP_INVOCATION 000523 constant label dcl 128 dm_set_system_dir 000471 constant entry external dcl 41 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2174 2242 1731 2204 Length 2466 1731 46 210 243 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME dm_set_system_dir 332 external procedure is an external procedure. on unit on line 131 64 on unit RETURN 64 internal procedure is assigned to an entry variable. FINISH 68 internal procedure is called by several nonquick procedures. PROCESS_ARGUMENT internal procedure shares stack frame of external procedure dm_set_system_dir. PROCESS_CONTROL_ARGUMENT internal procedure shares stack frame of external procedure dm_set_system_dir. CONTROL_ARGUMENT_INDEX internal procedure shares stack frame of external procedure dm_set_system_dir. REPORT_MISSING_ARGUMENT internal procedure shares stack frame of external procedure dm_set_system_dir. ERROR_RETURN_FROM_SSU_SETUP internal procedure shares stack frame of external procedure dm_set_system_dir. ERROR_RETURN 360 internal procedure is declared options(variable). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ERROR_RETURN 000100 er_arg_list_ptr ERROR_RETURN 000102 er_code ERROR_RETURN 000103 er_message ERROR_RETURN 000503 er_message_length ERROR_RETURN dm_set_system_dir 000100 accept_control_argument dm_set_system_dir 000101 arg_idx dm_set_system_dir 000102 arg_len dm_set_system_dir 000104 arg_list_ptr dm_set_system_dir 000106 arg_ptr dm_set_system_dir 000110 code dm_set_system_dir 000111 control_argument_idx dm_set_system_dir 000112 dir_name dm_set_system_dir 000164 force_interpretation_as_argument dm_set_system_dir 000165 is_active_function dm_set_system_dir 000166 number_of_args dm_set_system_dir 000167 print_confirmation_of_setting dm_set_system_dir 000170 sci_ptr dm_set_system_dir 000210 pa_code PROCESS_ARGUMENT 000226 cai_control_argument_idx CONTROL_ARGUMENT_INDEX THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_g_a call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return tra_ext enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ com_err_ cu_$arg_list_ptr dm_misc_util_$set_system_dir ioa_ ioa_$general_rs ssu_$abort_line ssu_$arg_ptr ssu_$destroy_invocation ssu_$return_arg ssu_$standalone_invocation THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$active_function error_table_$bad_arg error_table_$badopt error_table_$noarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 41 000470 48 000476 130 000523 131 000531 133 000553 135 000612 138 000616 141 000640 146 000654 148 000663 149 000700 152 000744 155 000777 156 001001 158 001003 162 001012 164 001041 166 001052 170 001100 172 001104 175 001105 177 001113 180 001122 181 001127 185 001132 187 001140 190 001147 192 001156 196 001157 203 001170 206 001171 208 001174 211 001223 213 001224 218 001257 219 001303 221 001324 222 001326 223 001330 227 001331 238 001342 239 001360 240 001363 242 001364 244 001366 247 001404 250 001406 253 001407 257 001410 258 001412 259 001413 262 001414 266 001415 267 001417 268 001420 272 001421 278 001432 280 001451 281 001453 283 001462 287 001465 292 001467 299 001540 301 001541 306 001543 308 001564 312 001565 327 001573 328 001601 330 001604 331 001610 334 001653 336 001700 337 001701 340 001717 ----------------------------------------------------------- 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