COMPILATION LISTING OF SEGMENT probe_print_handlers_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-18_1134.51_Tue_mdt Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /****^ HISTORY COMMENTS: 15* 1) change(88-09-07,WAAnderson), approve(88-09-30,MCR7952), 16* audit(88-09-30,JRGray), install(88-10-24,MR12.2-1184): 17* Added format control comment to make the source more readable. 18* END HISTORY COMMENTS */ 19 20 21 /* format: style1,insnl,ifthendo,indthenelse,^indnoniterdo,^inditerdo,indcom,^indthenbegin,^indprocbody,ind2,ll78,initcol0,dclind4,idind24,struclvlind1,comcol41 */ 22 23 /**** * * * * * * * * * * * * * * * * * * * * * * * */ 24 25 /* probe_print_handlers_ - lists enabled condition handlers in a frame. 26* 27* Cribbed 14 November 1981 by J. Spencer Love from list_onunits_, which is called by trace_stack_ */ 28 29 probe_print_handlers_: 30 procedure (P_probe_info_ptr, P_source_info_ptr); 31 32 declare P_probe_info_ptr ptr parameter, 33 P_source_info_ptr ptr parameter; 34 /* input: to source info describing frame */ 35 36 declare (addr, addrel, baseno, null, size, unspec) 37 builtin; 38 39 declare cname_len fixed bin (21), 40 file_given bit (1) aligned, 41 file_name char (32), 42 on_unit_ptr ptr, 43 oswitch ptr, 44 source_info_ptr ptr, 45 strp ptr; 46 47 declare cname char (cname_len) 48 based (on_unit_ptr -> on_unit.name); 49 50 declare 1 Arg_source aligned like source_info 51 based (source_info_ptr); 52 53 declare 1 filevar based aligned, 54 2 fabp ptr, 55 2 fsbp ptr; 56 57 declare 1 fab based aligned, 58 /* File attributes block. */ 59 2 switch bit (36), 60 2 filename char (32); 61 62 declare interpret_ptr_ entry (ptr, ptr, ptr), 63 ioa_$ioa_switch entry () options (variable); 64 1 1 /* BEGIN INCLUDE FILE probe_info.incl.pl1 */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(88-10-24,WAAnderson), approve(88-10-24,MCR7952), 1 7* audit(88-10-24,RWaters), install(88-10-27,MR12.2-1194): 1 8* Added field 'retry_using_main' to add new C feature. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 /* Created: 04/22/79 W. Olin Sibert, from subsystem_info 1 13* Modified: 22 Sept 79 JRd to remove: default (ptr & (auto|based)) init (null ()); 1 14* Added flags.setting_break 08/22/83 Steve Herbst 1 15* Added flags.executing_quit_request 01/15/85 Steve Herbst 1 16**/ 1 17 1 18 dcl 1 probe_info aligned based (probe_info_ptr), /* standard data for a probe invocation */ 1 19 2 probe_info_version fixed bin, /* version of this structure */ 1 20 1 21 2 static_info_ptr pointer unaligned, /* pointer to static information structure */ 1 22 2 modes_ptr pointer unaligned, /* pointer to probe_modes structure */ 1 23 1 24 2 ptr_to_current_source ptr, /* current_source is based on this */ 1 25 2 ptr_to_initial_source ptr, /* initial_source is based on this */ 1 26 2 machine_cond_ptr pointer, /* pointer to machine conditions, if we faulted to get here */ 1 27 1 28 2 token_info aligned, /* information about token chain currently being processed */ 1 29 3 first_token pointer unaligned, /* first token in chain */ 1 30 3 ct pointer unaligned, /* pointer to current token; updated in MANY places */ 1 31 3 end_token bit (18) aligned, /* token type at which to stop scanning token chain */ 1 32 3 buffer_ptr pointer unaligned, /* pointer to input buffer */ 1 33 3 buffer_lth fixed bin (21), /* and length */ 1 34 1 35 2 random_info aligned, 1 36 3 current_stack_frame pointer unaligned, /* stack frame pointer for frame in which probe was invoked */ 1 37 3 input_type fixed bin, /* current input type */ 1 38 3 language_type fixed bin, /* current language being processed */ 1 39 3 return_method fixed bin, /* how we should return after exiting probe */ 1 40 3 entry_method fixed bin, /* how we got here in the first place */ 1 41 3 pad1 (19) bit (36) aligned, 1 42 1 43 2 break_info, /* break info -- only interesting if we got here via a break */ 1 44 3 break_slot_ptr pointer, /* pointer to break slot -- non-null IFF at a break */ 1 45 3 last_break_slot_ptr pointer unaligned, /* pointer to previous break slot, not presently used */ 1 46 3 break_reset bit (1) aligned, /* this break has been reset by somebody further on */ 1 47 3 real_break_return_loc pointer, /* where to REALLY return to, modulo previous bit */ 1 48 1 49 2 probe_area_info, /* information about various probe areas */ 1 50 3 break_segment_ptr pointer unaligned, /* pointer to Personid.probe */ 1 51 3 break_area_ptr pointer unaligned, /* pointer to area in break segment */ 1 52 3 scratch_area_ptr pointer unaligned, /* pointer to probe scratch seg in process dir */ 1 53 3 probe_area_ptr pointer unaligned, /* This area lasts as long as an invocation of probe. */ 1 54 3 work_area_ptr pointer unaligned, /* This area lasts as long as the current request line */ 1 55 3 expression_area_ptr pointer unaligned, /* This area lasts as long as the current command */ 1 56 1 57 2 flags aligned, /* this, in particular, should be saved and restored correctly */ 1 58 (3 execute, /* "1"b => execute requests, "0"b => just check syntax */ 1 59 3 in_listener, /* ON => in probe listener loop */ 1 60 3 executing_request, /* ON => executing a request */ 1 61 3 in_interpret_line, /* executing in probe_listen_$interpret_line */ 1 62 3 setting_break, /* executing "after" or "before": check syntax of "if" */ 1 63 3 executing_quit_request, /* to prevent error looping during "quit" request */ 1 64 3 pad (30)) bit (1) unaligned, 1 65 1 66 2 io_switches, /* switches probe will do normal I/O on */ 1 67 3 input_switch pointer, 1 68 3 output_switch pointer, 1 69 1 70 2 error_info, /* information about the last error saved for later printing */ 1 71 3 error_code fixed bin (35), 1 72 3 error_message char (300) varying, 1 73 1 74 2 listener_info, /* internal use by probe listener */ 1 75 3 request_name character (32) varying, /* primary name of the request being processed */ 1 76 3 abort_probe_label label variable, 1 77 3 abort_line_label label variable, 1 78 3 depth fixed binary, /* count of active invocations of probe */ 1 79 3 previous pointer unaligned, /* -> previous invocation's info */ 1 80 3 next pointer unaligned, 1 81 1 82 2 end_of_probe_info pointer aligned, 1 83 2 retry_using_main fixed bin aligned; 1 84 1 85 1 86 dcl probe_info_ptr pointer; 1 87 1 88 dcl probe_info_version fixed bin static options (constant) initial (1); 1 89 1 90 dcl probe_info_version_1 fixed bin static options (constant) initial (1); 1 91 1 92 dcl scratch_area area based (probe_info.scratch_area_ptr); 1 93 dcl probe_area area based (probe_info.probe_area_ptr); 1 94 dcl work_area area based (probe_info.work_area_ptr); 1 95 dcl expression_area area based (probe_info.expression_area_ptr); 1 96 1 97 /* END INCLUDE FILE probe_info.incl.pl1 */ 65 66 2 1 /* BEGIN INCLUDE FILE ... probe_source_info.incl.pl1 2 2* 2 3* James R. Davis 2 July 79 */ 2 4 2 5 dcl 1 source_info based aligned, 2 6 2 stmnt_map_entry_index fixed bin, /* index in stmnt map for this stmnt */ 2 7 2 instruction_ptr ptr, /* to last instruction executed */ 2 8 2 block_ptr ptr, /* to runtime_block node */ 2 9 2 stack_ptr ptr, /* to a stack frame */ 2 10 2 entry_ptr ptr, /* to entry seq. for this proc */ 2 11 2 seg_info_ptr ptr; /* to seg_info */ 2 12 2 13 dcl 1 current_source aligned like source_info based (probe_info.ptr_to_current_source); 2 14 dcl 1 initial_source aligned like source_info based (probe_info.ptr_to_initial_source); 2 15 2 16 /* END INCLUDE FILE ... probe_source_info.incl.pl1 */ 67 68 3 1 /* BEGIN INCLUDE FILE ... on_unit.incl.pl1 */ 3 2 /* coded 31 October 1973 by M. Weaver to facilitate adding flags */ 3 3 3 4 dcl 1 on_unit based aligned, 3 5 2 name ptr, /* pointer to the condition name */ 3 6 2 body ptr, /* pointer to procedure to handle condition */ 3 7 2 size fixed bin, /* length of the condition name */ 3 8 2 next bit (18) unaligned, /* rel pointer to next on unit */ 3 9 2 flags unaligned, 3 10 3 pl1_snap bit (1) unaligned, /* "1"b indicates to call snap procedure */ 3 11 3 pl1_system bit (1) unaligned, /* "1"b indicates to use system condition handler */ 3 12 3 pad bit (16) unaligned, 3 13 2 file ptr; /* ptr to file descriptor for pl1 I/O condition */ 3 14 3 15 /* END INCLUDE FILE ... on_unit.incl.pl1 */ 69 70 4 1 /* BEGIN INCLUDE FILE ... stack_frame.incl.pl1 ... */ 4 2 4 3 /* format: off */ 4 4 4 5 /* Modified: 16 Dec 1977, D. Levin - to add fio_ps_ptr and pl1_ps_ptr */ 4 6 /* Modified: 3 Feb 1978, P. Krupp - to add run_unit_manager bit & main_proc bit */ 4 7 /* Modified: 21 March 1978, D. Levin - change fio_ps_ptr to support_ptr */ 4 8 /* Modified: 03/01/84, S. Herbst - Added RETURN_PTR_MASK */ 4 9 4 10 4 11 /****^ HISTORY COMMENTS: 4 12* 1) change(86-09-15,Kissel), approve(86-09-15,MCR7473), 4 13* audit(86-10-01,Fawcett), install(86-11-03,MR12.0-1206): 4 14* Modified to add constants for the translator_id field in the stack_frame 4 15* structure. 4 16* END HISTORY COMMENTS */ 4 17 4 18 4 19 dcl RETURN_PTR_MASK bit (72) int static options (constant) /* mask to be AND'd with stack_frame.return_ptr */ 4 20 init ("777777777777777777000000"b3); /* when copying, to ignore bits that a call fills */ 4 21 /* with indicators (nonzero for Fortran hexfp caller) */ 4 22 /* say: unspec(ptr) = unspec(stack_frame.return_ptr) & RETURN_PTR_MASK; */ 4 23 4 24 dcl TRANSLATOR_ID_PL1V2 bit (18) internal static options (constant) init ("000000"b3); 4 25 dcl TRANSLATOR_ID_ALM bit (18) internal static options (constant) init ("000001"b3); 4 26 dcl TRANSLATOR_ID_PL1V1 bit (18) internal static options (constant) init ("000002"b3); 4 27 dcl TRANSLATOR_ID_SIGNAL_CALLER bit (18) internal static options (constant) init ("000003"b3); 4 28 dcl TRANSLATOR_ID_SIGNALLER bit (18) internal static options (constant) init ("000004"b3); 4 29 4 30 4 31 dcl sp pointer; /* pointer to beginning of stack frame */ 4 32 4 33 dcl stack_frame_min_length fixed bin static init(48); 4 34 4 35 4 36 dcl 1 stack_frame based(sp) aligned, 4 37 2 pointer_registers(0 : 7) ptr, 4 38 2 prev_sp pointer, 4 39 2 next_sp pointer, 4 40 2 return_ptr pointer, 4 41 2 entry_ptr pointer, 4 42 2 operator_and_lp_ptr ptr, /* serves as both */ 4 43 2 arg_ptr pointer, 4 44 2 static_ptr ptr unaligned, 4 45 2 support_ptr ptr unal, /* only used by fortran I/O */ 4 46 2 on_unit_relp1 bit(18) unaligned, 4 47 2 on_unit_relp2 bit(18) unaligned, 4 48 2 translator_id bit(18) unaligned, /* Translator ID (see constants above) 4 49* 0 => PL/I version II 4 50* 1 => ALM 4 51* 2 => PL/I version I 4 52* 3 => signal caller frame 4 53* 4 => signaller frame */ 4 54 2 operator_return_offset bit(18) unaligned, 4 55 2 x(0: 7) bit(18) unaligned, /* index registers */ 4 56 2 a bit(36), /* accumulator */ 4 57 2 q bit(36), /* q-register */ 4 58 2 e bit(36), /* exponent */ 4 59 2 timer bit(27) unaligned, /* timer */ 4 60 2 pad bit(6) unaligned, 4 61 2 ring_alarm_reg bit(3) unaligned; 4 62 4 63 4 64 dcl 1 stack_frame_flags based(sp) aligned, 4 65 2 pad(0 : 7) bit(72), /* skip over prs */ 4 66 2 xx0 bit(22) unal, 4 67 2 main_proc bit(1) unal, /* on if frame belongs to a main procedure */ 4 68 2 run_unit_manager bit(1) unal, /* on if frame belongs to run unit manager */ 4 69 2 signal bit(1) unal, /* on if frame belongs to logical signal_ */ 4 70 2 crawl_out bit(1) unal, /* on if this is a signal caller frame */ 4 71 2 signaller bit(1) unal, /* on if next frame is signaller's */ 4 72 2 link_trap bit(1) unal, /* on if this frame was made by the linker */ 4 73 2 support bit(1) unal, /* on if frame belongs to a support proc */ 4 74 2 condition bit(1) unal, /* on if condition established in this frame */ 4 75 2 xx0a bit(6) unal, 4 76 2 xx1 fixed bin, 4 77 2 xx2 fixed bin, 4 78 2 xx3 bit(25) unal, 4 79 2 old_crawl_out bit (1) unal, /* on if this is a signal caller frame */ 4 80 2 old_signaller bit(1) unal, /* on if next frame is signaller's */ 4 81 2 xx3a bit(9) unaligned, 4 82 2 xx4(9) bit(72) aligned, 4 83 2 v2_pl1_op_ret_base ptr, /* When a V2 PL/I program calls an operator the 4 84* * operator puts a pointer to the base of 4 85* * the calling procedure here. (text base ptr) */ 4 86 2 xx5 bit(72) aligned, 4 87 2 pl1_ps_ptr ptr; /* ptr to ps for this frame; also used by fio. */ 4 88 4 89 /* format: on */ 4 90 4 91 /* END INCLUDE FILE ... stack_frame.incl.pl1 */ 71 72 5 1 /* BEGIN INCLUDE FILE ... interpret_ptr_struc.incl.pl1 */ 5 2 5 3 dcl 1 struc based (strp) aligned, /* This useful structure is in trace_stack pgms */ 5 4 2 comment char (64), /* name of boundseg, or thing pointed to, or .. */ 5 5 2 segment char (32), /* name of segment, or segment number with # */ 5 6 2 entryn char (33), /* entry name, preceded by $, or blank */ 5 7 2 offset char (6), /* offset in segment, or blank */ 5 8 2 opname char (32), /* may be pl1 operator name */ 5 9 2 ring char (1) unal, /* ring number of ptr */ 5 10 2 std_flag bit (1) unal, /* TRUE if std object. */ 5 11 2 xpad bit (26) unal, 5 12 2 bitoff char (4), /* bit offset */ 5 13 2 modifier char (8), /* ptr modifier, or special code like "noaccess" */ 5 14 2 symbolp ptr, /* ptr to symbol section */ 5 15 2 instruction_counter fixed bin, /* binary instruction counter */ 5 16 2 sourcemap fixed bin, /* source map offset in symbol section */ 5 17 2 compiler char (8), /* name of compiler */ 5 18 2 text_ptr ptr, /* ptr to segment text */ 5 19 2 stack_ptr ptr; /* ptr to stack frame */ 5 20 5 21 dcl 1 strbuf aligned like struc; /* If referenced, will make storage for struc */ 5 22 5 23 /* END INCLUDE FILE ... interpret_ptr_struc.incl.pl1 */ 73 74 75 76 probe_info_ptr = P_probe_info_ptr; 77 source_info_ptr = P_source_info_ptr; 78 79 oswitch = probe_info.output_switch; 80 sp = Arg_source.stack_ptr; 81 82 strp = addr (strbuf); 83 84 if (^stack_frame_flags.condition) | (stack_frame.on_unit_relp1 = ""b) 85 then do; 86 call ioa_$ioa_switch (oswitch, "No handlers."); 87 return; 88 end; 89 90 do on_unit_ptr = addrel (sp, stack_frame.on_unit_relp1) 91 repeat (addrel (sp, on_unit_ptr -> on_unit.next)) 92 while (on_unit_ptr ^= sp); 93 94 cname_len = on_unit_ptr -> on_unit.size; 95 if cname_len < 0 96 then do; 97 call ioa_$ioa_switch (oswitch, 98 "Warning: On unit at ^p has condition name length of ^d.", 99 on_unit_ptr, cname_len); 100 cname_len = 0; 101 end; 102 else if cname_len > 32 103 then do; 104 call ioa_$ioa_switch (oswitch, 105 "Warning: On unit at ^p has condition name length of ^d. 106 ^-Maximum length for condition names is 32.", on_unit_ptr, cname_len); 107 cname_len = 32; 108 end; 109 110 if cname_len > 0 111 then do; 112 if on_unit_ptr -> on_unit.pad ^= ""b 113 then call ioa_$ioa_switch (oswitch, 114 "Warning: Pad field in on unit at ^p is ""^16b""b.", 115 on_unit_ptr, on_unit_ptr -> on_unit.pad); 116 117 call check_file_given (); 118 119 if on_unit_ptr -> on_unit.flags.pl1_system 120 then call ioa_$ioa_switch (oswitch, 121 "on ^a^[ (^a)^;^s^]^[ snap^] system;", cname, file_given, 122 file_name, on_unit_ptr -> on_unit.pl1_snap); 123 124 else do; 125 call interpret_ptr_ (on_unit_ptr -> on_unit.body, null (), strp); 126 call ioa_$ioa_switch (oswitch, 127 "on ^a^[ (^a)^;^s^]^[ snap^] call ^a^a|^a ^a", cname, 128 file_given, file_name, on_unit_ptr -> on_unit.pl1_snap, 129 struc.segment, 130 struc.entryn, struc.offset, struc.comment); 131 end; 132 end; 133 end; 134 return; 135 136 /* The following procedure tries to guess if this is a file condition. We could just check the list of condition 137* names which normally have file pointers, but it is possible that handlers could be set up which are nonstandard. 138* The PL/I operator which sets up file conditions sets on_unit.file to addrel (addr (on_unit.file), 2) and puts a 139* copy of the file variable after the on unit. This must be done since the storage for the on_unit cannot be 140* preallocated in the stack frame because the same on statement can set up multiple concurrent on_units if it 141* specifies a file variable. There is at present NO INDICATION in the on_unit that the file field is valid; until 142* there is, this will have to do. I plan to lobby for setting aside another flag bit to indicate that the file 143* field is valid. */ 144 145 check_file_given: 146 procedure (); 147 148 declare file_ptr ptr; 149 150 file_given = "0"b; 151 152 /* If condition_ is used, name will have been copied onto stack. Otherwise, name will point to text section. */ 153 154 if baseno (on_unit_ptr -> on_unit.name) = baseno (sp) 155 then 156 return; 157 158 /* Value must be exactly as created by an spri instruction in same ring. */ 159 160 file_ptr = addrel (on_unit_ptr, size (on_unit)); 161 162 if unspec (file_ptr) ^= unspec (on_unit_ptr -> on_unit.file) 163 then 164 return; 165 166 /* For unlikely coincidence that these constraints, we will try to treat the pointer as pointing to a file value. */ 167 168 file_name = file_ptr -> filevar.fabp -> fab.filename; 169 file_given = "1"b; 170 return; 171 172 end check_file_given; 173 174 end probe_print_handlers_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/00 1134.5 probe_print_handlers_.pl1 >udd>sm>ds>w>ml>probe_print_handlers_.pl1 65 1 10/27/88 1439.2 probe_info.incl.pl1 >ldd>incl>probe_info.incl.pl1 67 2 11/26/79 1420.6 probe_source_info.incl.pl1 >ldd>incl>probe_source_info.incl.pl1 69 3 05/06/74 1842.5 on_unit.incl.pl1 >ldd>incl>on_unit.incl.pl1 71 4 11/07/86 1650.3 stack_frame.incl.pl1 >ldd>incl>stack_frame.incl.pl1 73 5 06/11/74 0702.3 interpret_ptr_struc.incl.pl1 >ldd>incl>interpret_ptr_struc.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. Arg_source based structure level 1 dcl 50 P_probe_info_ptr parameter pointer dcl 32 ref 29 76 P_source_info_ptr parameter pointer dcl 32 ref 29 77 addr builtin function dcl 36 ref 82 addrel builtin function dcl 36 ref 90 133 160 baseno builtin function dcl 36 ref 154 154 body 2 based pointer level 2 dcl 3-4 set ref 125* cname based char packed unaligned dcl 47 set ref 119* 126* cname_len 000100 automatic fixed bin(21,0) dcl 39 set ref 94* 95 97* 100* 102 104* 107* 110 119 119 126 126 comment based char(64) level 2 dcl 5-3 set ref 126* condition 20(29) based bit(1) level 2 packed packed unaligned dcl 4-64 ref 84 entryn 30 based char(33) level 2 dcl 5-3 set ref 126* fab based structure level 1 dcl 57 fabp based pointer level 2 dcl 53 ref 168 file 6 based pointer level 2 dcl 3-4 ref 162 file_given 000101 automatic bit(1) dcl 39 set ref 119* 126* 150* 169* file_name 000102 automatic char(32) packed unaligned dcl 39 set ref 119* 126* 168* file_ptr 000226 automatic pointer dcl 148 set ref 160* 162 168 filename 1 based char(32) level 2 dcl 57 ref 168 filevar based structure level 1 dcl 53 flags 5(18) based structure level 2 packed packed unaligned dcl 3-4 interpret_ptr_ 000010 constant entry external dcl 62 ref 125 io_switches 66 based structure level 2 dcl 1-18 ioa_$ioa_switch 000012 constant entry external dcl 62 ref 86 97 104 112 119 126 name based pointer level 2 dcl 3-4 ref 119 126 154 next 5 based bit(18) level 2 packed packed unaligned dcl 3-4 ref 133 null builtin function dcl 36 ref 125 125 offset 41 based char(6) level 2 dcl 5-3 set ref 126* on_unit based structure level 1 dcl 3-4 set ref 160 on_unit_ptr 000112 automatic pointer dcl 39 set ref 90* 90* 94 97* 104* 112 112* 112 119 119 119 125 126 126* 133 154 160 162 on_unit_relp1 36 based bit(18) level 2 packed packed unaligned dcl 4-36 ref 84 90 oswitch 000114 automatic pointer dcl 39 set ref 79* 86* 97* 104* 112* 119* 126* output_switch 70 based pointer level 3 dcl 1-18 ref 79 pad 5(20) based bit(16) level 3 packed packed unaligned dcl 3-4 set ref 112 112* pl1_snap 5(18) based bit(1) level 3 packed packed unaligned dcl 3-4 set ref 119* 126* pl1_system 5(19) based bit(1) level 3 packed packed unaligned dcl 3-4 ref 119 probe_info based structure level 1 dcl 1-18 probe_info_ptr 000122 automatic pointer dcl 1-86 set ref 76* 79 segment 20 based char(32) level 2 dcl 5-3 set ref 126* size builtin function dcl 36 in procedure "probe_print_handlers_" ref 160 size 4 based fixed bin(17,0) level 2 in structure "on_unit" dcl 3-4 in procedure "probe_print_handlers_" ref 94 source_info based structure level 1 dcl 2-5 source_info_ptr 000116 automatic pointer dcl 39 set ref 77* 80 sp 000124 automatic pointer dcl 4-31 set ref 80* 84 84 90 90 90 133 154 stack_frame based structure level 1 dcl 4-36 stack_frame_flags based structure level 1 dcl 4-64 stack_ptr 6 based pointer level 2 dcl 50 ref 80 strbuf 000126 automatic structure level 1 dcl 5-21 set ref 82 strp 000120 automatic pointer dcl 39 set ref 82* 125* 126 126 126 126 struc based structure level 1 dcl 5-3 unspec builtin function dcl 36 ref 162 162 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. RETURN_PTR_MASK internal static bit(72) initial packed unaligned dcl 4-19 TRANSLATOR_ID_ALM internal static bit(18) initial packed unaligned dcl 4-25 TRANSLATOR_ID_PL1V1 internal static bit(18) initial packed unaligned dcl 4-26 TRANSLATOR_ID_PL1V2 internal static bit(18) initial packed unaligned dcl 4-24 TRANSLATOR_ID_SIGNALLER internal static bit(18) initial packed unaligned dcl 4-28 TRANSLATOR_ID_SIGNAL_CALLER internal static bit(18) initial packed unaligned dcl 4-27 current_source based structure level 1 dcl 2-13 expression_area based area(1024) dcl 1-95 initial_source based structure level 1 dcl 2-14 probe_area based area(1024) dcl 1-93 probe_info_version internal static fixed bin(17,0) initial dcl 1-88 probe_info_version_1 internal static fixed bin(17,0) initial dcl 1-90 scratch_area based area(1024) dcl 1-92 stack_frame_min_length internal static fixed bin(17,0) initial dcl 4-33 work_area based area(1024) dcl 1-94 NAMES DECLARED BY EXPLICIT CONTEXT. check_file_given 000543 constant entry internal dcl 145 ref 117 probe_print_handlers_ 000142 constant entry external dcl 29 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 646 662 600 656 Length 1134 600 14 235 46 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME probe_print_handlers_ 297 external procedure is an external procedure. check_file_given internal procedure shares stack frame of external procedure probe_print_handlers_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME probe_print_handlers_ 000100 cname_len probe_print_handlers_ 000101 file_given probe_print_handlers_ 000102 file_name probe_print_handlers_ 000112 on_unit_ptr probe_print_handlers_ 000114 oswitch probe_print_handlers_ 000116 source_info_ptr probe_print_handlers_ 000120 strp probe_print_handlers_ 000122 probe_info_ptr probe_print_handlers_ 000124 sp probe_print_handlers_ 000126 strbuf probe_print_handlers_ 000226 file_ptr check_file_given THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. interpret_ptr_ ioa_$ioa_switch NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 29 000136 76 000147 77 000153 79 000156 80 000160 82 000162 84 000164 86 000174 87 000214 90 000215 94 000224 95 000227 97 000230 100 000257 101 000260 102 000261 104 000263 107 000312 110 000314 112 000316 117 000353 119 000354 125 000426 126 000443 133 000533 134 000542 145 000543 150 000544 154 000545 160 000557 162 000562 168 000571 169 000575 170 000577 ----------------------------------------------------------- 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