COMPILATION LISTING OF SEGMENT print_attach_table Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 02/06/84 1105.0 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* Modified 10/06/83 by Charlie Spitzer. make it pay attention to -open/-att if 12* not doing star names. phx9394 */ 13 14 print_attach_table: 15 pat: proc (); 16 17 dcl (ap, rsp) pointer, 18 (al, rsl, nargs, argno) fixed bin, 19 arg char (al) based (ap), 20 rs char (rsl) varying based (rsp); 21 22 dcl 1 names (100) aligned, 23 2 name char (32) unaligned, 24 2 star bit (1) aligned, 25 2 match bit (1) aligned; 26 dcl name_count fixed bin; 27 28 dcl out_str char (1024) varying; 29 dcl (i, j, k, len1, len2, len3, t1) fixed bin; 30 dcl (af_sw, default, no_names_specified, star_sw, brief_sw, switch_processed) bit (1) aligned; 31 dcl select_type fixed bin; 32 dcl code fixed bin (35); 33 dcl iocb_ptr pointer; 34 dcl attach_desc_ptr pointer; 35 dcl open_desc_ptr pointer; 36 37 dcl varying_string char (4096) varying based; 38 39 dcl cu_$af_return_arg entry (fixed bin, pointer, fixed bin, fixed bin (35)); 40 dcl cu_$arg_ptr entry (fixed bin, pointer, fixed bin, fixed bin (35)); 41 dcl com_err_ entry options (variable); 42 dcl active_fnc_err_ entry options (variable); 43 dcl check_star_name_$entry entry (char (*), fixed bin (35)); 44 dcl match_star_name_ entry (char (*), char (*), fixed bin (35)); 45 dcl iox_$find_iocb_n entry (fixed bin, pointer, fixed bin (35)); 46 dcl iox_$put_chars entry (pointer, pointer, fixed bin, fixed bin (35)); 47 48 dcl complain entry variable options (variable); 49 50 dcl iox_$user_output pointer external; 51 dcl (error_table_$not_act_fnc, 52 error_table_$badopt, 53 error_table_$inconsistent, 54 error_table_$noarg, 55 error_table_$bigarg, 56 error_table_$nomatch) fixed bin (35) external; 57 58 59 dcl whoami char (32) aligned internal static options (constant) init ("print_attach_table"); 60 dcl newline char (1) aligned internal static options (constant) init (" 61 "); 62 dcl spaces char (80) aligned internal static options (constant) init (""); 63 dcl not_attached char (32) varying internal static options (constant) init ("(not attached)"); 64 dcl not_open char (32) varying internal static options (constant) init ("(not open)"); 65 dcl null_string char (0) varying internal static options (constant) init (""); /* open desc for syn_ attachments */ 66 dcl standard_switches (4) char (32) aligned internal static options (constant) init 67 ("user_i/o", "user_output", "user_input", "error_output"); 68 69 dcl (substr, length, rtrim, addr, null) builtin; 70 71 /* */ 72 1 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 1 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 1 3* version number to IOX2. */ 1 4 /* format: style2 */ 1 5 1 6 dcl 1 iocb aligned based, /* I/O control block. */ 1 7 2 version character (4) aligned, /* IOX2 */ 1 8 2 name char (32), /* I/O name of this block. */ 1 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 1 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 1 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 1 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 1 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 1 14 2 reserved bit (72), /* Reserved for future use. */ 1 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 1 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 1 17 /* open(p,mode,not_used,s) */ 1 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 1 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 20 /* get_line(p,bufptr,buflen,actlen,s) */ 1 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 1 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 1 24 /* put_chars(p,bufptr,buflen,s) */ 1 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 1 26 /* modes(p,newmode,oldmode,s) */ 1 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 1 28 /* position(p,u1,u2,s) */ 1 29 2 control entry (ptr, char (*), ptr, fixed (35)), 1 30 /* control(p,order,infptr,s) */ 1 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 1 32 /* read_record(p,bufptr,buflen,actlen,s) */ 1 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 1 34 /* write_record(p,bufptr,buflen,s) */ 1 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 1 36 /* rewrite_record(p,bufptr,buflen,s) */ 1 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 1 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 39 /* seek_key(p,key,len,s) */ 1 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 1 41 /* read_key(p,key,len,s) */ 1 42 2 read_length entry (ptr, fixed (21), fixed (35)), 1 43 /* read_length(p,len,s) */ 1 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 1 45 /* open_file(p,mode,desc,not_used,s) */ 1 46 2 close_file entry (ptr, char (*), fixed bin (35)), 1 47 /* close_file(p,desc,s) */ 1 48 2 detach entry (ptr, char (*), fixed bin (35)); 1 49 /* detach(p,desc,s) */ 1 50 1 51 declare iox_$iocb_version_sentinel 1 52 character (4) aligned external static; 1 53 1 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 73 74 75 /* */ 76 77 call cu_$af_return_arg (nargs, rsp, rsl, code); 78 if code = 0 then do; 79 af_sw = "1"b; 80 rs = ""; 81 complain = active_fnc_err_; 82 end; 83 84 else if code = error_table_$not_act_fnc then do; 85 af_sw = "0"b; 86 rsp = null (); 87 complain = com_err_; 88 end; 89 90 else do; 91 call com_err_ (code, whoami); 92 return; 93 end; 94 95 brief_sw = "0"b; /* default is to mention 4 standard ones */ 96 no_names_specified = "0"b; /* true only if no names are specified */ 97 select_type = 0; 98 99 name_count = 0; /* initialize */ 100 do i = 1 to nargs; /* look through arguments */ 101 call cu_$arg_ptr (i, ap, al, code); 102 if substr (arg, 1, 1) = "-" then do; /* control argument */ 103 if arg = "-brief" | arg = "-bf" then brief_sw = "1"b; 104 else if arg = "-open" then do; 105 if select_type = 0 then select_type = 3; /* set it */ 106 else do; /* otherwise, complina */ 107 only_one_select_type: call complain (error_table_$inconsistent, whoami, 108 "Only one of -open, -attached, or -all is allowed."); 109 return; 110 end; 111 end; 112 113 else if arg = "-attached" | arg = "-att" then do; 114 if select_type = 0 then select_type = 2; 115 else goto only_one_select_type; 116 end; 117 118 else if arg = "-all" | arg = "-a" then do; 119 if select_type = 0 then select_type = 1; 120 else goto only_one_select_type; 121 end; 122 123 else if arg = "-name" | arg = "-nm" then do; /* this one is NOT a starname */ 124 if i = nargs then do; 125 call complain (error_table_$noarg, whoami, "after -name."); 126 return; 127 end; 128 129 i = i + 1; 130 call cu_$arg_ptr (i, ap, al, code); 131 132 call add_to_list (arg, "0"b); /* not a starname */ 133 end; 134 135 else do; 136 call complain (error_table_$badopt, whoami, "^a", arg); 137 return; 138 end; 139 140 end; /* of control argument processing */ 141 142 else do; /* it wasn't a control argument */ 143 call add_to_list (arg, "1"b); /* since it wasn't a control arg, must be a starname */ 144 end; 145 end; 146 147 if select_type = 0 then do; /* if wasn't specified */ 148 select_type = 2; /* only attached switches */ 149 default = "1"b; /* for error msg if no match found */ 150 end; 151 else default = "0"b; 152 153 if name_count = 0 then do; /* he didn't give any, so give the default */ 154 call add_to_list ("**", "1"b); 155 no_names_specified = "1"b; /* remember that we are looking at "all" switches */ 156 end; 157 158 do i = 1 by 1; /* loop through all the switches */ 159 call iox_$find_iocb_n (i, iocb_ptr, code); 160 if code ^= 0 then goto epilogue; /* we've run out of switches */ 161 162 switch_processed = "0"b; /* nothing has been printed for this one yet */ 163 do j = 1 to name_count; /* loop thru all the names we're supposed to look for */ 164 165 if names.star (j) then do; 166 call match_star_name_ ((iocb_ptr -> iocb.name), names.name (j), code); 167 if code ^= 0 then goto next_name; /* didn't match */ 168 169 /* check our other criteria now, like -brief and -all, -open, and -attached */ 170 171 if brief_sw then do k = 1 to hbound (standard_switches, 1); 172 if iocb_ptr -> iocb.name = standard_switches (k) then goto end_loop; /* don't print it */ 173 end; 174 175 if select_type = 3 & (iocb_ptr -> iocb.open_descrip_ptr = null () 176 | iocb_ptr -> iocb.attach_descrip_ptr = null () 177 | iocb_ptr -> iocb.actual_iocb_ptr ^= iocb_ptr) /* special crock for syn_ attachments */ 178 then goto end_loop; /* not open */ 179 if select_type = 2 & iocb_ptr -> iocb.attach_descrip_ptr = null () then goto end_loop; /* not attached */ 180 181 if ^switch_processed then 182 call process_iocb (iocb_ptr); /* it passed all our tests */ 183 names.match (j) = "1"b; /* remember that something matched this one */ 184 switch_processed = "1"b; 185 goto next_name; /* to avoid printing it twice */ 186 end; /* of starname case */ 187 188 else do; /* we're looking for an explicit match */ 189 if names.name (j) ^= iocb_ptr -> iocb.name then goto next_name; /* not this one */ 190 191 if select_type = 3 & (iocb_ptr -> iocb.open_descrip_ptr = null () 192 | iocb_ptr -> iocb.attach_descrip_ptr = null () 193 | iocb_ptr -> iocb.actual_iocb_ptr ^= iocb_ptr) /* special crock for syn_ attachments */ 194 then goto end_loop; /* not open */ 195 if select_type = 2 & iocb_ptr -> iocb.attach_descrip_ptr = null () then goto end_loop; /* not attached */ 196 197 if ^switch_processed then 198 call process_iocb (iocb_ptr); /* process it */ 199 names.match (j) = "1"b; /* remember that we found this one */ 200 switch_processed = "1"b; /* to avoiod printing it more than once */ 201 goto next_name; 202 end; 203 next_name: 204 end; /* of loop through possible names */ 205 206 end_loop: 207 end; /* of loop through IOCB's */ 208 209 epilogue: 210 211 if ^af_sw then do i = 1 to name_count; /* print our error messages */ 212 if names.match (i) = "0"b then do; /* didn't find this one */ 213 if names.star (i) = "1"b then 214 if no_names_specified 215 then if default | select_type = 1 216 then call complain (0, whoami, "No non-standard I/O switches found."); 217 else call complain (0, whoami, "No non-standard ^[attached^;open^] I/O switches found.", select_type=2); 218 219 else if default | select_type = 1 /* complain about a specific starname */ 220 then call complain (0, whoami, "No I/O switches matching the star name ^a.", names.name (i)); 221 else call complain (0, whoami, "No ^[attached^;open^] I/O switches matching the star name ^a.", select_type=2, names.name (i)); 222 223 224 else if default | select_type = 1 225 then call complain (0, whoami, "No I/O switch matching the name ^a.", names.name (i)); 226 else call complain (0, whoami, "No ^[attached^;open^] I/O switch matching the name ^a.", select_type=2, names.name (i)); 227 end; 228 end; /* of error printing loop */ 229 230 main_return: 231 return; /* our work's all done */ 232 233 /* */ 234 235 /* INTERNAL PROCEDURES */ 236 237 add_to_list: proc (P_name, P_star_sw); /* procedure to add a name to the naemes array */ 238 239 dcl (P_name char (*), 240 P_star_sw bit (1) aligned) parameter; 241 242 star_sw = P_star_sw; 243 244 if star_sw then do; /* see if it's valid */ 245 call check_star_name_$entry (P_name, code); 246 if code > 2 then do; 247 call complain (code, whoami, "^a", P_name); 248 goto main_return; 249 end; 250 if code = 0 then star_sw = "0"b; /* wasn't a starname, after all */ 251 end; 252 253 if length (P_name) > 32 then do; 254 call complain (error_table_$bigarg, whoami, "^a", P_name); 255 goto main_return; 256 end; 257 258 if name_count >= hbound (names, 1) then do; /* see if there is room */ 259 call complain (0, whoami, "Too many switch names specified. Maximum = ^d.", hbound (names, 1)); 260 goto main_return; 261 end; 262 263 do j = 1 to name_count; /* make sure he hasn't already specified this name */ 264 if names.name (j) = P_name then do; /* a duplicate */ 265 if names.star (j) = star_sw then do; /* but only if same starname type */ 266 call com_err_ (0, whoami, "Warning -- duplicate switch name ""^a"" ignored.", P_name); 267 return; 268 end; 269 end; 270 end; /* of duplicate elimination loop */ 271 272 name_count = name_count + 1; 273 names.name (name_count) = P_name; 274 names.star (name_count) = star_sw; 275 names.match (name_count) = "0"b; /* initialize to not found state */ 276 return; 277 278 end; /* add_to_list */ 279 280 /* */ 281 282 process_iocb: proc (P_iocb_ptr); 283 284 /* This procedure does the appropriate thing with the selected iocb */ 285 /* depending on af_sw, and on whether the switch is attached or open */ 286 287 dcl P_iocb_ptr pointer parameter; 288 289 if af_sw then do; /* just add it to the return string */ 290 if length (rs) ^= 0 then rs = rs || " "; /* space to separate returned values */ 291 rs = rs || rtrim (P_iocb_ptr -> iocb.name); 292 return; 293 end; 294 295 else attach_desc_ptr = P_iocb_ptr -> iocb.attach_descrip_ptr; 296 if P_iocb_ptr -> iocb.actual_iocb_ptr = iocb_ptr then /* crock for syn_ attachments */ 297 open_desc_ptr = P_iocb_ptr -> iocb.open_descrip_ptr; 298 else open_desc_ptr = addr (null_string); 299 300 if attach_desc_ptr = null () then do; 301 attach_desc_ptr = addr (not_attached); 302 open_desc_ptr = addr (null_string); 303 end; 304 else if open_desc_ptr = null () then open_desc_ptr = addr (not_open); 305 306 len1 = length (rtrim (P_iocb_ptr -> iocb.name)); 307 len2 = length (rtrim (attach_desc_ptr -> varying_string)); 308 len3 = length (rtrim (open_desc_ptr -> varying_string)); 309 310 out_str = substr (P_iocb_ptr -> iocb.name, 1, len1); /* initialize */ 311 312 if len1 < 19 & len2 < 59 then do; /* attach description and name on same line */ 313 out_str = out_str || substr (spaces, 1, 20 - len1); /* yes, same line. columnize */ 314 t1 = 20; /* for test about open description */ 315 end; /* of case for short name */ 316 317 else do; /* definitely goes on a different line */ 318 out_str = out_str || newline; 319 out_str = out_str || substr (spaces, 1, 5); 320 t1 = 5; 321 end; 322 323 out_str = out_str || substr (attach_desc_ptr -> varying_string, 1, len2); 324 325 if len3 > 0 then do; /* only process the open description if there is one */ 326 t1 = t1 + len2; /* t1 is now the last column of attach description */ 327 328 if t1 > 38 then do; /* put the open description on the next line */ 329 out_str = out_str || newline; 330 out_str = out_str || substr (spaces, 1, 10); 331 end; 332 333 else out_str = out_str || substr (spaces, 1, 40 - t1); 334 335 out_str = out_str || substr (open_desc_ptr -> varying_string, 1, len3); 336 end; 337 338 out_str = out_str || newline; /* and a newline to finish it off */ 339 340 call iox_$put_chars (iox_$user_output, addr (substr (out_str, 1, 1)), length (out_str), (0)); 341 return; /* all done */ 342 343 end; /* process_iocb */ 344 345 end; /* print_attach_table */ SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 02/06/84 1102.3 print_attach_table.pl1 >spec>on>6564>print_attach_table.pl1 73 1 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.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. P_iocb_ptr parameter pointer dcl 287 ref 282 291 295 296 296 306 310 P_name parameter char unaligned dcl 239 set ref 237 245* 247* 253 254* 264 266* 273 P_star_sw parameter bit(1) dcl 239 ref 237 242 active_fnc_err_ 000016 constant entry external dcl 42 ref 81 actual_iocb_ptr 12 based pointer level 2 dcl 1-6 ref 175 191 296 addr builtin function dcl 69 ref 298 301 302 304 340 340 af_sw 002470 automatic bit(1) dcl 30 set ref 79* 85* 209 289 al 000104 automatic fixed bin(17,0) dcl 17 set ref 101* 102 103 103 104 113 113 118 118 123 123 130* 132 132 136 136 143 143 ap 000100 automatic pointer dcl 17 set ref 101* 102 103 103 104 113 113 118 118 123 123 130* 132 136 143 arg based char unaligned dcl 17 set ref 102 103 103 104 113 113 118 118 123 123 132* 136* 143* attach_desc_ptr 002502 automatic pointer dcl 34 set ref 295* 300 301* 307 323 attach_descrip_ptr 14 based pointer level 2 dcl 1-6 ref 175 179 191 195 295 brief_sw 002474 automatic bit(1) dcl 30 set ref 95* 103* 171 check_star_name_$entry 000020 constant entry external dcl 43 ref 245 code 002477 automatic fixed bin(35,0) dcl 32 set ref 77* 78 84 91* 101* 130* 159* 160 166* 167 245* 246 247* 250 com_err_ 000014 constant entry external dcl 41 ref 87 91 266 complain 002506 automatic entry variable dcl 48 set ref 81* 87* 107 125 136 213 217 219 221 224 226 247 254 259 cu_$af_return_arg 000010 constant entry external dcl 39 ref 77 cu_$arg_ptr 000012 constant entry external dcl 40 ref 101 130 default 002471 automatic bit(1) dcl 30 set ref 149* 151* 213 219 224 error_table_$badopt 000034 external static fixed bin(35,0) dcl 51 set ref 136* error_table_$bigarg 000042 external static fixed bin(35,0) dcl 51 set ref 254* error_table_$inconsistent 000036 external static fixed bin(35,0) dcl 51 set ref 107* error_table_$noarg 000040 external static fixed bin(35,0) dcl 51 set ref 125* error_table_$not_act_fnc 000032 external static fixed bin(35,0) dcl 51 ref 84 i 002461 automatic fixed bin(17,0) dcl 29 set ref 100* 101* 124 129* 129 130* 158* 159* 209* 212 213 219 221 224 226* iocb based structure level 1 dcl 1-6 iocb_ptr 002500 automatic pointer dcl 33 set ref 159* 166 172 175 175 175 175 179 181* 189 191 191 191 191 195 197* 296 iox_$find_iocb_n 000024 constant entry external dcl 45 ref 159 iox_$put_chars 000026 constant entry external dcl 46 ref 340 iox_$user_output 000030 external static pointer dcl 50 set ref 340* j 002462 automatic fixed bin(17,0) dcl 29 set ref 163* 165 166 183 189 199* 263* 264 265* k 002463 automatic fixed bin(17,0) dcl 29 set ref 171* 172* len1 002464 automatic fixed bin(17,0) dcl 29 set ref 306* 310 312 313 len2 002465 automatic fixed bin(17,0) dcl 29 set ref 307* 312 323 326 len3 002466 automatic fixed bin(17,0) dcl 29 set ref 308* 325 335 length builtin function dcl 69 ref 253 290 306 307 308 340 340 match 11 000107 automatic bit(1) array level 2 dcl 22 set ref 183* 199* 212 275* match_star_name_ 000022 constant entry external dcl 44 ref 166 name 1 based char(32) level 2 in structure "iocb" dcl 1-6 in procedure "pat" ref 166 172 189 291 306 310 name 000107 automatic char(32) array level 2 in structure "names" packed unaligned dcl 22 in procedure "pat" set ref 166* 189 219* 221* 224* 226* 264 273* name_count 002057 automatic fixed bin(17,0) dcl 26 set ref 99* 153 163 209 258 263 272* 272 273 274 275 names 000107 automatic structure array level 1 dcl 22 set ref 258 259 259 nargs 000106 automatic fixed bin(17,0) dcl 17 set ref 77* 100 124 newline 002412 constant char(1) initial dcl 60 ref 318 329 338 no_names_specified 002472 automatic bit(1) dcl 30 set ref 96* 155* 213 not_attached 000051 constant varying char(32) initial dcl 63 set ref 301 not_open 000040 constant varying char(32) initial dcl 64 set ref 304 null builtin function dcl 69 ref 86 175 175 179 191 191 195 300 304 null_string 000120 constant varying char initial dcl 65 set ref 298 302 open_desc_ptr 002504 automatic pointer dcl 35 set ref 296* 298* 302* 304 304* 308 335 open_descrip_ptr 20 based pointer level 2 dcl 1-6 ref 175 191 296 out_str 002060 automatic varying char(1024) dcl 28 set ref 310* 313* 313 318* 318 319* 319 323* 323 329* 329 330* 330 333* 333 335* 335 338* 338 340 340 340 340 rs based varying char dcl 17 set ref 80* 290 290* 290 291* 291 rsl 000105 automatic fixed bin(17,0) dcl 17 set ref 77* 80 290 291 rsp 000102 automatic pointer dcl 17 set ref 77* 80 86* 290 290 290 291 291 rtrim builtin function dcl 69 ref 291 306 307 308 select_type 002476 automatic fixed bin(17,0) dcl 31 set ref 97* 105 105* 114 114* 119 119* 147 148* 175 179 191 195 213 217 219 221 224 226 spaces 002366 constant char(80) initial dcl 62 ref 313 319 330 333 standard_switches 000000 constant char(32) initial array dcl 66 ref 171 172 star 10 000107 automatic bit(1) array level 2 dcl 22 set ref 165 213 265 274* star_sw 002473 automatic bit(1) dcl 30 set ref 242* 244 250* 265 274 substr builtin function dcl 69 ref 102 310 313 319 323 330 333 335 340 340 switch_processed 002475 automatic bit(1) dcl 30 set ref 162* 181 184* 197 200* t1 002467 automatic fixed bin(17,0) dcl 29 set ref 314* 320* 326* 326 328 333 varying_string based varying char(4096) dcl 37 ref 307 308 323 335 whoami 000062 constant char(32) initial dcl 59 set ref 91* 107* 125* 136* 213* 217* 219* 221* 224* 226* 247* 254* 259* 266* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. argno automatic fixed bin(17,0) dcl 17 error_table_$nomatch external static fixed bin(35,0) dcl 51 iox_$iocb_version_sentinel external static char(4) dcl 1-51 NAMES DECLARED BY EXPLICIT CONTEXT. add_to_list 001510 constant entry internal dcl 237 ref 132 143 154 end_loop 001173 constant label dcl 206 ref 172 175 179 191 195 epilogue 001175 constant label dcl 209 ref 160 main_return 001507 constant label dcl 230 ref 248 255 260 next_name 001171 constant label dcl 203 ref 167 185 189 201 only_one_select_type 000472 constant label dcl 107 ref 114 119 pat 000315 constant entry external dcl 14 print_attach_table 000324 constant entry external dcl 14 process_iocb 001775 constant entry internal dcl 282 ref 181 197 NAME DECLARED BY CONTEXT OR IMPLICATION. hbound builtin function ref 171 258 259 259 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2610 2654 2416 2620 Length 3062 2416 44 172 172 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME pat 1526 external procedure is an external procedure. add_to_list internal procedure shares stack frame of external procedure pat. process_iocb internal procedure shares stack frame of external procedure pat. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME pat 000100 ap pat 000102 rsp pat 000104 al pat 000105 rsl pat 000106 nargs pat 000107 names pat 002057 name_count pat 002060 out_str pat 002461 i pat 002462 j pat 002463 k pat 002464 len1 pat 002465 len2 pat 002466 len3 pat 002467 t1 pat 002470 af_sw pat 002471 default pat 002472 no_names_specified pat 002473 star_sw pat 002474 brief_sw pat 002475 switch_processed pat 002476 select_type pat 002477 code pat 002500 iocb_ptr pat 002502 attach_desc_ptr pat 002504 open_desc_ptr pat 002506 complain pat THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_var_desc call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ check_star_name_$entry com_err_ cu_$af_return_arg cu_$arg_ptr iox_$find_iocb_n iox_$put_chars match_star_name_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$bigarg error_table_$inconsistent error_table_$noarg error_table_$not_act_fnc iox_$user_output LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 14 000314 77 000331 78 000345 79 000347 80 000351 81 000352 82 000357 84 000360 85 000363 86 000364 87 000366 88 000372 91 000373 92 000407 95 000410 96 000411 97 000412 99 000413 100 000414 101 000423 102 000440 103 000445 104 000461 105 000465 107 000472 109 000516 111 000517 113 000520 114 000530 116 000534 118 000535 119 000545 121 000551 123 000552 124 000562 125 000565 126 000612 129 000613 130 000614 132 000631 133 000652 136 000653 137 000705 140 000706 143 000707 145 000730 147 000732 148 000734 149 000736 150 000740 151 000741 153 000742 154 000744 155 000753 158 000755 159 000760 160 000773 162 000775 163 000776 165 001005 166 001011 167 001036 171 001040 172 001047 173 001056 175 001060 179 001103 181 001110 183 001114 184 001120 185 001121 189 001122 191 001130 195 001152 197 001157 199 001163 200 001167 201 001170 203 001171 206 001173 209 001175 212 001207 213 001212 217 001252 219 001306 221 001345 224 001406 226 001445 228 001505 230 001507 237 001510 242 001521 244 001525 245 001526 246 001544 247 001547 248 001577 250 001600 253 001603 254 001606 255 001637 258 001640 259 001643 260 001675 263 001676 264 001705 265 001717 266 001722 267 001754 270 001755 272 001757 273 001760 274 001771 275 001773 276 001774 282 001775 289 001777 290 002001 291 002013 292 002042 295 002043 296 002047 298 002056 300 002060 301 002064 302 002066 303 002070 304 002071 306 002077 307 002111 308 002125 310 002141 312 002151 313 002157 314 002174 315 002176 318 002177 319 002206 320 002220 323 002222 325 002234 326 002236 328 002240 329 002243 330 002252 331 002264 333 002265 335 002302 338 002314 340 002323 341 002345 ----------------------------------------------------------- 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