COMPILATION LISTING OF SEGMENT ls_dump_ Compiled by: Multics PL/I Compiler, Release 31a, of October 12, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 10/28/88 1318.0 mst Fri Options: optimize map 1 /****^ ******************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* ******************************************** */ 6 7 /****^ HISTORY COMMENTS: 8* 1) change(87-04-08,GDixon), approve(87-07-10,MCR7679), 9* audit(87-07-02,Parisek), install(87-08-04,MR12.1-1055): 10* Created from as_dump_. 11* 2) change(87-04-29,GDixon), approve(87-07-10,MCR7679), 12* audit(87-07-02,Parisek), install(87-08-04,MR12.1-1055): 13* Add dump_entryname parameter. 14* 3) change(87-05-06,GDixon), approve(87-07-10,MCR7679), 15* audit(87-07-02,Parisek), install(87-08-04,MR12.1-1055): 16* Add $report_error entrypoint to avoid calling ls_report_subr_error_ when 17* it called us. 18* 4) change(87-05-14,GDixon), approve(87-07-10,MCR7679), 19* audit(87-07-02,Parisek), install(87-08-04,MR12.1-1055): 20* Ignore errors in submitting dprint of lsdump. 21* END HISTORY COMMENTS */ 22 23 ls_dump_: proc (dumpid, a_ls_cp_info_ptr, dump_entryname); 24 25 26 /* PARAMETERS */ 27 28 dcl dumpid char (*) varying parameter; 29 /* caller msg */ 30 dcl a_ls_cp_info_ptr ptr; /* connect. info */ 31 dcl dump_entryname char(32); /* ename (Out) */ 32 33 34 /* AUTOMATIC */ 35 36 dcl ABORT_LABEL label, /* escape route */ 37 call_ls_report bit(1), 38 dir char (168), /* put dump here */ 39 doing_stack_trace bit (1), 40 code fixed bin (35), 41 iocbP ptr, 42 iqct fixed bin, 43 outname char (32), 44 quota fixed bin(18), 45 sp ptr, 46 stream char(32), 47 taccsw fixed bin (1), 48 time fixed bin(71), 49 trp fixed bin (35), 50 tup bit (36) aligned, 51 ucs_recursion fixed bin, 52 used fixed bin; 53 54 55 /* INTERNAL STATIC */ 56 57 dcl ENOUGH fixed bin int static init(64), 58 (FALSE init("0"b), 59 TRUE init("1"b)) bit(1) 60 int static options(constant), 61 PROC char(8) int static options(constant) init("ls_dump_"); 62 63 64 /* EXTERNAL STATIC */ 65 66 dcl error_table_$rqover fixed bin(35) ext static; 67 68 69 /* ENTRIES */ 70 71 dcl condition_ entry (char(*), entry); 72 dcl cu_$arg_list_ptr entry returns(ptr); 73 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin(21), 74 fixed bin(35)); 75 dcl cu_$stack_frame_ptr entry (ptr); 76 dcl date_time_$format entry (char(*), fixed bin(71), 77 char(*), char(*)) 78 returns(char(250) var); 79 dcl dprint_ entry (char(*), char(*), ptr, 80 fixed bin(35)); 81 dcl hcs_$quota_get entry (char(*), fixed bin(18), 82 fixed bin(35), bit(36) aligned, 83 fixed bin, fixed bin(1), 84 fixed bin, fixed bin(35)); 85 dcl ioa_$ioa_switch entry() options(variable); 86 dcl iox_$attach_name entry (char(*), ptr, char(*), ptr, 87 fixed bin(35)); 88 dcl iox_$close entry (ptr, fixed bin(35)); 89 dcl iox_$destroy_iocb entry (ptr, fixed bin(35)); 90 dcl iox_$detach_iocb entry (ptr, fixed bin(35)); 91 dcl iox_$open entry (ptr, fixed bin, bit(1) aligned, 92 fixed bin(35)); 93 dcl ls_report_error_ entry (fixed bin(35), char(*), ptr, 94 bit(1) aligned, ptr, fixed bin, 95 fixed bin); 96 dcl pathname_ entry (char(*), char(*)) 97 returns(char(168)); 98 dcl trace_stack_$hregs entry (ptr, fixed bin, fixed bin, 99 char(32) aligned, fixed bin); 100 dcl user_info_$homedir entry (char(*)); 101 102 103 /* BUILTINS and CONDITIONS */ 104 105 dcl (addr, clock, null) 106 builtin; 107 dcl cleanup condition; 108 109 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 110 111 112 call_ls_report = TRUE; 113 go to JOIN; 114 115 report_error: 116 entry (dumpid, a_ls_cp_info_ptr, dump_entryname); 117 118 call_ls_report = FALSE; 119 go to JOIN; 120 121 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 122 /* */ 123 /* INITIALIZATION: */ 124 /* 1) Access information describing the connection. */ 125 /* 2) Establish a cleanup handler to close I/O switches if an error occurs. */ 126 /* 3) Establish an any_other handler to trap errors which occur while taking */ 127 /* the dump. Recursive errors are fatal. */ 128 /* 4) Get path of directory in which to place dumps. */ 129 /* 5) Check to ensure there is enough quota in dump dir to hold another dump.*/ 130 /* 6) Attach/open I/O switch on which dump will be written. */ 131 /* */ 132 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 133 134 JOIN: ls_cp_info_ptr = a_ls_cp_info_ptr; 135 ls_connection_desc_ptr = ls_cp_info.connection_desc_ptr; 136 137 iocbP = null; 138 on cleanup call Cleanup; 139 140 doing_stack_trace = FALSE; 141 ucs_recursion = 0; 142 ABORT_LABEL = TRY_TO_CLEANUP; 143 call condition_ ("any_other", Fatal_condition); /* No recursion! */ 144 145 call user_info_$homedir (dir); 146 147 call hcs_$quota_get (dir, quota, trp, tup, iqct, taccsw, used, code); 148 call Abort (code, "Dump aborted, getting quota of dump dir^/(^a).", 149 dir); 150 if quota ^= 0 then /* Make sure there is room for the dump. */ 151 if (quota - used) < ENOUGH then 152 call Abort (error_table_$rqover, 153 "Dump aborted, too little quota in dump dir^/(^a).", dir); 154 155 time = clock(); 156 outname = date_time_$format ("lsdump.^yc^my^dm^Hd^MH." || 157 ls_connection_desc.name, time, "system_zone", "system_lang"); 158 dump_entryname = outname; 159 stream = "ls_dump_." || ls_connection_desc.name; 160 161 call iox_$attach_name (stream, iocbP, 162 "vfile_ " || pathname_ (dir, outname) || " -extend", 163 null (), code); 164 call Abort (code, "Dump aborted, could not attach lsdump^/(^a).", 165 pathname_ (dir, outname)); 166 call iox_$open (iocbP, Stream_output, ""b, code); 167 call Abort (code, "Dump aborted, could not open lsdump^/(^a).", 168 pathname_ (dir, outname)); 169 170 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 171 /* */ 172 /* TRACE STACK: */ 173 /* 1) Emit header for the dump. */ 174 /* 2) Trace the stack. */ 175 /* 3) Emit trailer for the dump. */ 176 /* */ 177 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 178 179 call ioa_$ioa_switch (iocbP, "^a ^a^2/", 180 date_time_$format ("^ ^da", time, 181 "system_zone", "system_lang"), dumpid); 182 183 call cu_$stack_frame_ptr (sp); 184 doing_stack_trace = TRUE; 185 call trace_stack_$hregs (sp, 2, -1, (stream), 1); 186 doing_stack_trace = FALSE; 187 188 call ioa_$ioa_switch (iocbP, "^/End of dump.^/"); 189 190 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 191 /* */ 192 /* EPILOGUE: */ 193 /* 1) Close/detach lsdump I/O switches. */ 194 /* 2) Make recursive conditions simply cause a return. */ 195 /* 3) Dprint the lsdump. */ 196 /* */ 197 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 198 199 TRY_TO_CLEANUP: 200 call Cleanup(); 201 202 ABORT_LABEL = JUST_RETURN; /* any errors from now on will return and not try to cleanup */ 203 204 dpap = addr (dprint_arg_buf); /* Set up to print segment. */ 205 dprint_arg.version = 1; 206 dprint_arg.copies = 1; 207 dprint_arg.delete = 0; 208 dprint_arg.queue = 1; 209 dprint_arg.pt_pch = 1; 210 dprint_arg.notify = 0; 211 dprint_arg.heading = " for lsdump " || dumpid; 212 dprint_arg.output_module = 1; 213 dprint_arg.dest = "SysAdmin"; 214 call dprint_ (dir, outname, dpap, code); /* Request IO daemon to print the dump. */ 215 /* Ignore dprint errors, if any. */ 216 217 if call_ls_report then 218 call Abort (-1, "^a Dprinted lsdump^/(^a).", 219 dumpid, pathname_(dir, outname)); 220 221 JUST_RETURN: 222 return; 223 224 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 225 226 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 227 /* */ 228 /* Abort: Internal procedure to report errors in the Login_Server root */ 229 /* control point (on its message coordinator terminal and in its */ 230 /* log. */ 231 /* */ 232 /* Syntax: call Abort (code, ioa_ctl_str, args); */ 233 /* */ 234 /* 1) Access code arg. If 0 then return (no error, no Abort). */ 235 /* 2) If code = -1, then set it to zero (no code msg) but continue */ 236 /* diagnosing an error. */ 237 /* 3) Call ls_report_error_. */ 238 /* 4) Go to ABORT_LABEL. */ 239 /* */ 240 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 241 242 243 Abort: procedure options (variable); 244 245 dcl ARGS_NO fixed bin int static options(constant) init(3), 246 IOA_CTL_STR_NO fixed bin int static options(constant) init(2), 247 TELL_USER bit (1) aligned int static options(constant) init("1"b), 248 codeP ptr, 249 code fixed bin(35) based (codeP); 250 251 call cu_$arg_ptr (1, codeP, 0, 0); 252 if code = 0 then return; 253 if code = -1 then code = 0; 254 255 call ls_report_error_ (code, PROC, addr(ls_cp_info), 256 TELL_USER, cu_$arg_list_ptr(), IOA_CTL_STR_NO, ARGS_NO); 257 258 go to ABORT_LABEL; 259 260 end Abort; 261 262 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 263 264 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 265 266 267 Cleanup: procedure; 268 269 dcl code fixed bin(35); 270 271 if iocbP ^= null then do; 272 call iox_$close (iocbP, code); 273 call iox_$detach_iocb (iocbP, code); 274 call iox_$destroy_iocb (iocbP, code); 275 iocbP = null; 276 end; 277 278 end Cleanup; 279 280 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 281 282 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 283 284 285 Fatal_condition: 286 proc (mcptr, cname, coptr, infoptr, cont); 287 288 dcl (mcptr, coptr, infoptr) ptr, cname char (*), cont bit (1); 289 290 if cname = "cleanup" then return; 291 if cname = "storage" then go to CONTINUE_TO_SIGNAL; 292 if cname = "command_error" then go to CONTINUE_TO_SIGNAL; 293 if cname = "stack" then go to CONTINUE_TO_SIGNAL; 294 if cname = "finish" then go to CONTINUE_TO_SIGNAL; 295 if cname = "mme2" then go to CONTINUE_TO_SIGNAL; 296 if cname = "cput" then go to CONTINUE_TO_SIGNAL; 297 if cname = "alrm" then go to CONTINUE_TO_SIGNAL; 298 if cname = "program_interrupt" then go to CONTINUE_TO_SIGNAL; 299 if cname = "signal_io_" then go to CONTINUE_TO_SIGNAL; 300 if cname = "quit" then do; 301 CONTINUE_TO_SIGNAL: 302 cont = TRUE; 303 return; 304 end; 305 306 ucs_recursion = ucs_recursion + 1; /* error occurred*/ 307 if ucs_recursion = 1 then do; /* while dumping */ 308 call Abort (-1, 309 "Dump aborted, condition ^a occurred is lsdump^/(^a).", 310 pathname_ (dir, outname)); 311 end; 312 313 ls_cp_info.no_io_switches = TRUE; 314 go to JUST_RETURN; /* error while */ 315 /* aborting */ 316 317 end Fatal_condition; 318 319 /* * * * * * * * * * * * * * * * * * * * * * * * * */ 320 /* BEGIN INCLUDE FILE ... dprint_arg.incl.pl1 */ 1 2 /* Modified 11/13/74 by Noel I. Morris */ 1 3 /* Modified: 10 April 1981 by G. Palter for version 6 structure -- longer request type names */ 1 4 /* Modified: 30 April 1982 by R. Kovalcik for version 7 structure -- defer_until_process_terminataion */ 1 5 /* Modified: November 1983 by C. Marker for version 8 structure -- no_separator */ 1 6 1 7 /****^ HISTORY COMMENTS: 1 8* 1) change(87-05-10,Gilcrease), approve(87-05-13,MCR7686), 1 9* audit(88-02-01,Farley), install(88-02-02,MR12.2-1019): 1 10* Add line_nbrs bit for line-numbered printouts, version 9. 1 11* 2) change(88-02-05,Farley), approve(88-02-05,PBF7686), audit(88-02-05,GWMay), 1 12* install(88-02-05,MR12.2-1022): 1 13* Corrected alignment of line_nbrs, was aligned s/b unaligned.. 1 14* 3) change(88-08-29,Farley), approve(88-09-16,MCR7911), 1 15* audit(88-09-29,Wallman), install(88-10-28,MR12.2-1199): 1 16* Created a new 64 character forms_name variable, which supersedes the old 1 17* char 24 form_name variable, version 10. 1 18* END HISTORY COMMENTS */ 1 19 1 20 1 21 dcl dpap ptr; /* ptr to argument structure */ 1 22 dcl 1 dprint_arg_buf aligned like dprint_arg; /* Automatic storage for arg. */ 1 23 1 24 dcl 1 dprint_arg based (dpap) aligned, /* argument structure */ 1 25 2 version fixed bin, /* version number of dcl - current version is 9 */ 1 26 2 copies fixed bin, /* number of copies wanted */ 1 27 2 delete fixed bin, /* 1=delete after print */ 1 28 2 queue fixed bin, /* print queue */ 1 29 2 pt_pch fixed bin, /* 1=print, 2=punch */ 1 30 2 notify fixed bin, /* 1 = notify user when done */ 1 31 2 heading char (64), /* first page heading */ 1 32 2 output_module fixed bin, /* 1=print, 2=7punch, 3=mcc, 4=raw, 5=plotter */ 1 33 2 dest char (12), /* version 5 made this a pad - see destination below */ 1 34 /* limit of version 1 structure */ 1 35 2 carriage_control, /* Carriage control flags. */ 1 36 3 nep bit (1) unal, /* TRUE if print trhu perf. */ 1 37 3 single bit (1) unal, /* TRUE if ignore FF and VT */ 1 38 3 non_edited bit (1) unal, /* TRUE if printing in non-edited mode */ 1 39 3 truncate bit (1) unal, /* TRUE if truncating lines at line length */ 1 40 3 center_top_label bit (1) unal, /* TRUE if top label to be centered */ 1 41 3 center_bottom_label bit (1) unal, /* TRUE if bottom label to be centered */ 1 42 3 esc bit (1) unal, /* version 5 TRUE if text escapes are to be processed */ 1 43 3 no_separator bit (1) unal, /* version 8 TRUE if the inner head and tail sheets are to be suppressed. */ 1 44 3 line_nbrs bit (1) unal, /* version 9, line numbers */ 1 45 3 padding bit (27) unal, 1 46 2 pad (30) fixed bin, 1 47 2 forms char (8), /* version 5 made this a pad - see form_name below */ 1 48 2 lmargin fixed bin, /* left margin */ 1 49 2 line_lth fixed bin, /* max line lth */ 1 50 /* limit of version 2 structure */ 1 51 2 class char (8), /* version 6 made this a pad - see request_type below */ 1 52 2 page_lth fixed bin, /* Paper length arg */ 1 53 /* limit of version 3 structure */ 1 54 2 top_label char (136), /* top-of-page label */ 1 55 2 bottom_label char (136), /* bottom-of-page label */ 1 56 /* limit of version 4 structure */ 1 57 2 bit_count fixed bin (35), /* segment bit count */ 1 58 2 form_name char (24), /* name of special forms needed - moved from forms */ 1 59 /* version 10 made this a pad - see forms_name below */ 1 60 2 destination char (24), /* the long destination - moved from dest */ 1 61 2 chan_stop_path char (168), /* path of user channel stops - future */ 1 62 /* limit of version 5 structure */ 1 63 2 request_type character (24) unaligned, /* request type for the request */ 1 64 /* limit of version 6 structure */ 1 65 2 defer_until_process_termination fixed bin, /* 1 = don't process request until requesting process terminates */ 1 66 2 forms_name char (64) unal; /* name of special forms needed - moved from form_name */ 1 67 /* limit of version 10 structure */ 1 68 1 69 dcl dprint_arg_version_1 fixed bin int static options (constant) init (1); 1 70 dcl dprint_arg_version_2 fixed bin int static options (constant) init (2); 1 71 dcl dprint_arg_version_3 fixed bin int static options (constant) init (3); 1 72 dcl dprint_arg_version_4 fixed bin int static options (constant) init (4); 1 73 dcl dprint_arg_version_5 fixed bin int static options (constant) init (5); 1 74 dcl dprint_arg_version_6 fixed bin int static options (constant) init (6); 1 75 dcl dprint_arg_version_7 fixed bin int static options (constant) init (7); 1 76 dcl dprint_arg_version_8 fixed bin int static options (constant) init (8); 1 77 dcl dprint_arg_version_9 fixed bin int static options (constant) init (9); 1 78 dcl dprint_arg_version_10 fixed bin int static options (constant) init (10); 1 79 /* current version */ 1 80 1 81 dcl ( 1 82 DP_PRINT init (1), 1 83 DP_PUNCH init (2), 1 84 DP_PLOT init (3) 1 85 ) fixed bin static options (constant); /* for dprint_arg.pt_pch */ 1 86 1 87 /* END INCLUDE FILE ... dprint_arg.incl.pl1 */ 320 321 /* Begin include file ..... iox_modes.incl.pl1 */ 2 2 2 3 /* Written by C. D. Tavares, 03/17/75 */ 2 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 2 5 2 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 2 7 ("stream_input", "stream_output", "stream_input_output", 2 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 2 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 2 10 "direct_input", "direct_output", "direct_update"); 2 11 2 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 2 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 2 14 2 15 dcl (Stream_input initial (1), 2 16 Stream_output initial (2), 2 17 Stream_input_output initial (3), 2 18 Sequential_input initial (4), 2 19 Sequential_output initial (5), 2 20 Sequential_input_output initial (6), 2 21 Sequential_update initial (7), 2 22 Keyed_sequential_input initial (8), 2 23 Keyed_sequential_output initial (9), 2 24 Keyed_sequential_update initial (10), 2 25 Direct_input initial (11), 2 26 Direct_output initial (12), 2 27 Direct_update initial (13)) fixed bin int static options (constant); 2 28 2 29 /* End include file ..... iox_modes.incl.pl1 */ 321 322 /* BEGIN INCLUDE FILE...ls_connection_desc.incl.pl1 */ 3 2 3 3 /****^ HISTORY COMMENTS: 3 4* 1) change(85-04-01,Coren), approve(87-07-14,MCR7679), audit(87-03-18,GDixon), 3 5* install(87-08-04,MR12.1-1056): 3 6* Initial coding. 3 7* 2) change(87-05-18,GDixon), approve(87-07-14,MCR7679), 3 8* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 3 9* Add minimum_ring element. 3 10* END HISTORY COMMENTS */ 3 11 3 12 /* This include file defines the info structure passed to the control point 3 13* that conducts the logn dialogue with a connection once it has been 3 14* established. 3 15**/ 3 16 3 17 dcl ls_connection_desc_ptr pointer; 3 18 3 19 dcl 1 ls_connection_desc aligned based (ls_connection_desc_ptr), 3 20 2 version char (8), /* "lscdNNNN" */ 3 21 2 name char (32), /* name of the connection */ 3 22 2 endpoint_name char (32), /* name of endpoint through which connection was made */ 3 23 2 io_module char (32), /* I/O module through which connection is attached */ 3 24 2 disconnect_event_channel fixed bin (71), /* event channel over which disconnects will be signalled */ 3 25 2 terminate_event_channel fixed bin (71), /* event channel over which process terminations will be signalled */ 3 26 2 service_entries_ptr pointer, /* points to list of network service entries */ 3 27 2 connection_info_ptr pointer, /* points to entity-specific connection info */ 3 28 2 connection_info_len fixed bin (18) unsigned, /* length of said info in words */ 3 29 2 connection_handle fixed bin (35), /* unique ID of connection */ 3 30 2 process_info_ptr pointer, /* points to ls_process_info */ 3 31 2 access_class_range (2) bit (72), /* min:max access class of the connection */ 3 32 2 minimum_ring fixed bin, /* min ring in which MNA connections works. */ 3 33 2 conn_pad fixed bin; 3 34 3 35 dcl LS_CONNECTION_DESC_V1 char (8) internal static options (constant) initial ("lscd0001"); 3 36 3 37 /* END INCLUDE FILE...ls_connection_desc.incl.pl1 */ 322 323 /* BEGIN INCLUDE FILE...ls_cp_info.incl.pl1 */ 4 2 4 3 /****^ HISTORY COMMENTS: 4 4* 1) change(85-04-01,Coren), approve(87-06-25,MCR7679), audit(87-03-05,GDixon), 4 5* install(87-08-04,MR12.1-1056): 4 6* Initial coding. 4 7* 2) change(87-03-05,GDixon), approve(87-06-25,MCR7679), 4 8* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 4 9* Add info directory paths to ls_cp_info structure. This allows them to 4 10* be changed while running in a test environment. 4 11* 3) change(87-06-25,GDixon), approve(87-06-25,MCR7679), 4 12* audit(87-07-14,Parisek), install(87-08-04,MR12.1-1056): 4 13* Add ls_cp_info.flags.call_probe to allow debug_mode messages without 4 14* stopping in probe. 4 15* END HISTORY COMMENTS */ 4 16 4 17 /* This include file describes the info structure passed to the initial 4 18* procedure of a login server control point that manages a particular 4 19* connection. 4 20**/ 4 21 4 22 dcl ls_cp_info_ptr pointer; 4 23 4 24 dcl 1 ls_cp_info aligned based (ls_cp_info_ptr), 4 25 2 version char (8), /* "lscpNNNN" */ 4 26 2 connection_desc_ptr pointer, /* points to ls_connection_desc */ 4 27 2 error_info_ptr pointer, /* pointer to ls_error_info structure */ 4 28 2 error_event_channel fixed bin (71), /* event channel for signalling errors in parent control point */ 4 29 2 connection_gone_event_channel fixed bin (71), /* event channel for telling parent that connection is gone */ 4 30 2 answer_table_ptr pointer, /* needed by validate_user_ */ 4 31 2 installation_parms_ptr pointer, /* likewise */ 4 32 2 flags, 4 33 3 debug_mode bit (1) unaligned, /* "1"b => debugging environment */ 4 34 3 call_probe bit (1) unaligned, /* "1"b => call probe when control point reports error */ 4 35 3 trace bit (1) unaligned, /* "1"b => make tracing calls */ 4 36 3 fault_recursion bit (1) unaligned, /* "1"b => cl_intermediary being entered for second time */ 4 37 3 no_io_switches bit (1) unaligned, /* "1"b => control point doesn't have separate I/O switches */ 4 38 3 pad bit (31) unaligned, 4 39 2 login_info_dir char (168) unal, /* info dir for login requests */ 4 40 2 connect_info_dir char (168) unal; /* info dir for connect requests */ 4 41 4 42 dcl LS_CP_INFO_V1 char (8) internal static options (constant) initial ("lscp0001"); 4 43 4 44 /* END INCLUDE FILE...ls_cp_info.incl.pl1 */ 323 324 325 end ls_dump_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/28/88 1302.2 ls_dump_.pl1 >special_ldd>install>MR12.2-1199>ls_dump_.pl1 320 1 10/28/88 1227.7 dprint_arg.incl.pl1 >special_ldd>install>MR12.2-1199>dprint_arg.incl.pl1 321 2 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 322 3 08/06/87 0913.4 ls_connection_desc.incl.pl1 >ldd>include>ls_connection_desc.incl.pl1 323 4 08/06/87 0913.4 ls_cp_info.incl.pl1 >ldd>include>ls_cp_info.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. ABORT_LABEL 000100 automatic label variable dcl 36 set ref 142* 202* 258 ARGS_NO 000042 constant fixed bin(17,0) initial dcl 245 set ref 255* ENOUGH constant fixed bin(17,0) initial dcl 57 ref 150 FALSE constant bit(1) initial packed unaligned dcl 57 ref 118 140 186 IOA_CTL_STR_NO 000044 constant fixed bin(17,0) initial dcl 245 set ref 255* PROC 000000 constant char(8) initial packed unaligned dcl 57 set ref 255* Stream_output 000044 constant fixed bin(17,0) initial dcl 2-15 set ref 166* TELL_USER 000002 constant bit(1) initial dcl 245 set ref 255* TRUE 000002 constant bit(1) initial packed unaligned dcl 57 ref 112 184 301 313 a_ls_cp_info_ptr parameter pointer dcl 30 ref 23 115 134 addr builtin function dcl 105 ref 204 255 255 call_ls_report 000104 automatic bit(1) packed unaligned dcl 36 set ref 112* 118* 217 cleanup 000220 stack reference condition dcl 107 ref 138 clock builtin function dcl 105 ref 155 cname parameter char packed unaligned dcl 288 ref 285 290 291 292 293 294 295 296 297 298 299 300 code based fixed bin(35,0) dcl 245 in procedure "Abort" set ref 252 253 253* 255* code 000100 automatic fixed bin(35,0) dcl 269 in procedure "Cleanup" set ref 272* 273* 274* code 000160 automatic fixed bin(35,0) dcl 36 in procedure "ls_dump_" set ref 147* 148* 161* 164* 166* 167* 214* codeP 000100 automatic pointer dcl 245 set ref 251* 252 253 253 255 condition_ 000012 constant entry external dcl 71 ref 143 connection_desc_ptr 2 based pointer level 2 dcl 4-24 set ref 135 cont parameter bit(1) packed unaligned dcl 288 set ref 285 301* copies 1 based fixed bin(17,0) level 2 dcl 1-24 set ref 206* coptr parameter pointer dcl 288 ref 285 cu_$arg_list_ptr 000014 constant entry external dcl 72 ref 255 255 cu_$arg_ptr 000016 constant entry external dcl 73 ref 251 cu_$stack_frame_ptr 000020 constant entry external dcl 75 ref 183 date_time_$format 000022 constant entry external dcl 76 ref 156 179 delete 2 based fixed bin(17,0) level 2 dcl 1-24 set ref 207* dest 27 based char(12) level 2 dcl 1-24 set ref 213* dir 000105 automatic char(168) packed unaligned dcl 36 set ref 145* 147* 148* 150* 161* 164* 164* 167* 167* 214* 217* 217* 308* 308* doing_stack_trace 000157 automatic bit(1) packed unaligned dcl 36 set ref 140* 184* 186* dpap 000226 automatic pointer dcl 1-21 set ref 204* 205 206 207 208 209 210 211 212 213 214* dprint_ 000024 constant entry external dcl 79 ref 214 dprint_arg based structure level 1 dcl 1-24 dprint_arg_buf 000230 automatic structure level 1 dcl 1-22 set ref 204 dump_entryname parameter char(32) packed unaligned dcl 31 set ref 23 115 158* dumpid parameter varying char dcl 28 set ref 23 115 179* 211 217* error_table_$rqover 000010 external static fixed bin(35,0) dcl 66 set ref 150* flags 16 based structure level 2 dcl 4-24 hcs_$quota_get 000026 constant entry external dcl 81 ref 147 heading 6 based char(64) level 2 dcl 1-24 set ref 211* infoptr parameter pointer dcl 288 ref 285 ioa_$ioa_switch 000030 constant entry external dcl 85 ref 179 188 iocbP 000162 automatic pointer dcl 36 set ref 137* 161* 166* 179* 188* 271 272* 273* 274* 275* iox_$attach_name 000032 constant entry external dcl 86 ref 161 iox_$close 000034 constant entry external dcl 88 ref 272 iox_$destroy_iocb 000036 constant entry external dcl 89 ref 274 iox_$detach_iocb 000040 constant entry external dcl 90 ref 273 iox_$open 000042 constant entry external dcl 91 ref 166 iqct 000164 automatic fixed bin(17,0) dcl 36 set ref 147* ls_connection_desc based structure level 1 dcl 3-19 ls_connection_desc_ptr 000552 automatic pointer dcl 3-17 set ref 135* 156 159 ls_cp_info based structure level 1 dcl 4-24 set ref 255 255 ls_cp_info_ptr 000554 automatic pointer dcl 4-22 set ref 134* 135 255 255 313 ls_report_error_ 000044 constant entry external dcl 93 ref 255 mcptr parameter pointer dcl 288 ref 285 name 2 based char(32) level 2 dcl 3-19 ref 156 159 no_io_switches 16(04) based bit(1) level 3 packed packed unaligned dcl 4-24 set ref 313* notify 5 based fixed bin(17,0) level 2 dcl 1-24 set ref 210* null builtin function dcl 105 ref 137 161 161 271 275 outname 000165 automatic char(32) packed unaligned dcl 36 set ref 156* 158 161* 164* 164* 167* 167* 214* 217* 217* 308* 308* output_module 26 based fixed bin(17,0) level 2 dcl 1-24 set ref 212* pathname_ 000046 constant entry external dcl 96 ref 161 164 164 167 167 217 217 308 308 pt_pch 4 based fixed bin(17,0) level 2 dcl 1-24 set ref 209* queue 3 based fixed bin(17,0) level 2 dcl 1-24 set ref 208* quota 000175 automatic fixed bin(18,0) dcl 36 set ref 147* 150 150 sp 000176 automatic pointer dcl 36 set ref 183* 185* stream 000200 automatic char(32) packed unaligned dcl 36 set ref 159* 161* 185 taccsw 000210 automatic fixed bin(1,0) dcl 36 set ref 147* time 000212 automatic fixed bin(71,0) dcl 36 set ref 155* 156* 179* trace_stack_$hregs 000050 constant entry external dcl 98 ref 185 trp 000214 automatic fixed bin(35,0) dcl 36 set ref 147* tup 000215 automatic bit(36) dcl 36 set ref 147* ucs_recursion 000216 automatic fixed bin(17,0) dcl 36 set ref 141* 306* 306 307 used 000217 automatic fixed bin(17,0) dcl 36 set ref 147* 150 user_info_$homedir 000052 constant entry external dcl 100 ref 145 version based fixed bin(17,0) level 2 dcl 1-24 set ref 205* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. DP_PLOT internal static fixed bin(17,0) initial dcl 1-81 DP_PRINT internal static fixed bin(17,0) initial dcl 1-81 DP_PUNCH internal static fixed bin(17,0) initial dcl 1-81 Direct_input internal static fixed bin(17,0) initial dcl 2-15 Direct_output internal static fixed bin(17,0) initial dcl 2-15 Direct_update internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_input internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_output internal static fixed bin(17,0) initial dcl 2-15 Keyed_sequential_update internal static fixed bin(17,0) initial dcl 2-15 LS_CONNECTION_DESC_V1 internal static char(8) initial packed unaligned dcl 3-35 LS_CP_INFO_V1 internal static char(8) initial packed unaligned dcl 4-42 Sequential_input internal static fixed bin(17,0) initial dcl 2-15 Sequential_input_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_output internal static fixed bin(17,0) initial dcl 2-15 Sequential_update internal static fixed bin(17,0) initial dcl 2-15 Stream_input internal static fixed bin(17,0) initial dcl 2-15 Stream_input_output internal static fixed bin(17,0) initial dcl 2-15 dprint_arg_version_1 internal static fixed bin(17,0) initial dcl 1-69 dprint_arg_version_10 internal static fixed bin(17,0) initial dcl 1-78 dprint_arg_version_2 internal static fixed bin(17,0) initial dcl 1-70 dprint_arg_version_3 internal static fixed bin(17,0) initial dcl 1-71 dprint_arg_version_4 internal static fixed bin(17,0) initial dcl 1-72 dprint_arg_version_5 internal static fixed bin(17,0) initial dcl 1-73 dprint_arg_version_6 internal static fixed bin(17,0) initial dcl 1-74 dprint_arg_version_7 internal static fixed bin(17,0) initial dcl 1-75 dprint_arg_version_8 internal static fixed bin(17,0) initial dcl 1-76 dprint_arg_version_9 internal static fixed bin(17,0) initial dcl 1-77 iox_modes internal static char(24) initial array dcl 2-6 short_iox_modes internal static char(4) initial array dcl 2-12 NAMES DECLARED BY EXPLICIT CONTEXT. Abort 001402 constant entry internal dcl 243 ref 148 150 164 167 217 308 CONTINUE_TO_SIGNAL 001655 constant label dcl 301 ref 291 292 293 294 295 296 297 298 299 Cleanup 001511 constant entry internal dcl 267 ref 138 199 Fatal_condition 001564 constant entry internal dcl 285 ref 143 143 JOIN 000311 constant label dcl 134 ref 113 119 JUST_RETURN 001400 constant label dcl 221 ref 202 314 TRY_TO_CLEANUP 001231 constant label dcl 199 ref 142 ls_dump_ 000254 constant entry external dcl 23 report_error 000274 constant entry external dcl 115 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2224 2300 1744 2234 Length 2600 1744 54 264 260 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME ls_dump_ 503 external procedure is an external procedure. on unit on line 138 64 on unit Abort 114 internal procedure is declared options(variable). Cleanup 72 internal procedure is called by several nonquick procedures. Fatal_condition 152 internal procedure is assigned to an entry variable. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME Abort 000100 codeP Abort Cleanup 000100 code Cleanup ls_dump_ 000100 ABORT_LABEL ls_dump_ 000104 call_ls_report ls_dump_ 000105 dir ls_dump_ 000157 doing_stack_trace ls_dump_ 000160 code ls_dump_ 000162 iocbP ls_dump_ 000164 iqct ls_dump_ 000165 outname ls_dump_ 000175 quota ls_dump_ 000176 sp ls_dump_ 000200 stream ls_dump_ 000210 taccsw ls_dump_ 000212 time ls_dump_ 000214 trp ls_dump_ 000215 tup ls_dump_ 000216 ucs_recursion ls_dump_ 000217 used ls_dump_ 000226 dpap ls_dump_ 000230 dprint_arg_buf ls_dump_ 000552 ls_connection_desc_ptr ls_dump_ 000554 ls_cp_info_ptr ls_dump_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other_desc call_int_other return_mac tra_ext_1 tra_ext_2 enable_op shorten_stack ext_entry_desc int_entry int_entry_desc clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. condition_ cu_$arg_list_ptr cu_$arg_ptr cu_$stack_frame_ptr date_time_$format dprint_ hcs_$quota_get ioa_$ioa_switch iox_$attach_name iox_$close iox_$destroy_iocb iox_$detach_iocb iox_$open ls_report_error_ pathname_ trace_stack_$hregs user_info_$homedir THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$rqover LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 23 000250 112 000267 113 000271 115 000272 118 000307 119 000310 134 000311 135 000315 137 000317 138 000321 140 000343 141 000344 142 000345 143 000350 145 000374 147 000405 148 000450 150 000473 155 000524 156 000526 158 000602 159 000607 161 000623 164 000714 166 000760 167 000777 179 001042 183 001144 184 001153 185 001155 186 001205 188 001206 199 001231 202 001235 204 001240 205 001242 206 001244 207 001245 208 001246 209 001247 210 001250 211 001251 212 001270 213 001273 214 001276 217 001323 221 001400 243 001401 251 001407 252 001427 253 001431 255 001434 258 001505 267 001510 271 001516 272 001523 273 001533 274 001545 275 001557 278 001562 285 001563 290 001577 291 001605 292 001611 293 001615 294 001621 295 001625 296 001631 297 001635 298 001641 299 001645 300 001651 301 001655 303 001661 306 001662 307 001664 308 001667 313 001734 314 001740 ----------------------------------------------------------- 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