COMPILATION LISTING OF SEGMENT get_statement_map Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell LCPD Phoenix, System M Compiled on: 11/02/83 1309.8 mst Wed Options: optimize map 1 /* ****************************************************** 2* * * 3* * * 4* * Copyright (c) 1972 by Massachusetts Institute of * 5* * Technology and Honeywell Information Systems, Inc. * 6* * * 7* * * 8* ****************************************************** */ 9 10 get_statement_map: proc (head_pt, map_pt, end_pt, map_size); 11 12 13 /* Procedure used by stu_$get_runtime_location & stu_$get_runtime_line_no to 14* get limits of a statement map, given a pointer to the symbol header 15* 16* Coded 12 March 1973 by Robert S. Coren 17**/ 18 19 dcl head_pt ptr; /* pointer to standard symbol header */ 20 dcl map_pt ptr; /* pointer to beginning of statement map (output) */ 21 dcl end_pt ptr; /* pointer to end of statement map (output) */ 22 dcl map_size fixed bin; /* size of statement map entry in words */ 23 24 dcl hpt ptr; 25 dcl block_pt ptr; 26 27 dcl (addrel, fixed, null, size) builtin; 28 29 1 1 dcl 1 std_symbol_header based aligned, 1 2 2 dcl_version fixed bin, 1 3 2 identifier char(8), 1 4 2 gen_number fixed bin, 1 5 2 gen_created fixed bin(71), 1 6 2 object_created fixed bin(71), 1 7 2 generator char(8), 1 8 2 gen_version unaligned, 1 9 3 offset bit(18), 1 10 3 size bit(18), 1 11 2 userid unaligned, 1 12 3 offset bit(18), 1 13 3 size bit(18), 1 14 2 comment unaligned, 1 15 3 offset bit(18), 1 16 3 size bit(18), 1 17 2 text_boundary bit(18) unaligned, 1 18 2 stat_boundary bit(18) unaligned, 1 19 2 source_map bit(18) unaligned, 1 20 2 area_pointer bit(18) unaligned, 1 21 2 backpointer bit(18) unaligned, 1 22 2 block_size bit(18) unaligned, 1 23 2 next_block bit(18) unaligned, 1 24 2 rel_text bit(18) unaligned, 1 25 2 rel_def bit(18) unaligned, 1 26 2 rel_link bit(18) unaligned, 1 27 2 rel_symbol bit(18) unaligned, 1 28 2 mini_truncate bit(18) unaligned, 1 29 2 maxi_truncate bit(18) unaligned; 30 2 1 dcl 1 pl1_symbol_block aligned based, 2 2 2 version fixed bin, 2 3 2 identifier char(8), /* must be "pl1info" */ 2 4 2 flags, 2 5 3 profile bit(1) unal, 2 6 3 table bit(1) unal, 2 7 3 map bit(1) unal, 2 8 3 flow bit(1) unal, 2 9 3 io bit(1) unal, 2 10 3 table_removed bit(1) unal, 2 11 3 long_profile bit(1) unal, 2 12 3 pad bit(29) unal, 2 13 2 greatest_severity fixed bin, 2 14 2 root unal bit(18), 2 15 2 profile unal bit(18), 2 16 2 map unal, 2 17 3 first bit(18), 2 18 3 last bit(18), 2 19 2 segname unaligned, 2 20 3 offset bit(18), 2 21 3 size bit(18); 31 3 1 dcl 1 statement_map aligned based, 3 2 2 location bit(18) unaligned, 3 3 2 source_id unaligned, 3 4 3 file bit(8), 3 5 3 line bit(14), 3 6 3 statement bit(5), 3 7 2 source_info unaligned, 3 8 3 start bit(18), 3 9 3 length bit(9); 32 33 34 35 36 hpt = head_pt; 37 if hpt = null then go to no; 38 if hpt -> std_symbol_header.identifier ^= "symbtree" then go to no; 39 if hpt -> std_symbol_header.area_pointer = "0"b then go to no; 40 41 block_pt = addrel (hpt, hpt -> std_symbol_header.area_pointer); 42 43 if block_pt -> pl1_symbol_block.map.first = (18)"0"b then go to no; 44 map_pt = addrel (hpt, block_pt -> pl1_symbol_block.map.first); 45 map_size = size (statement_map); 46 end_pt = addrel (hpt, block_pt -> pl1_symbol_block.map.last); 47 48 49 return; 50 51 no: map_pt, end_pt = null; 52 return; 53 54 end get_statement_map; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/02/83 1237.0 get_statement_map.pl1 >spec>on>pascal>get_statement_map.pl1 30 1 05/06/74 1751.6 std_symbol_header.incl.pl1 >ldd>include>std_symbol_header.incl.pl1 31 2 03/10/77 1345.4 pl1_symbol_block.incl.pl1 >ldd>include>pl1_symbol_block.incl.pl1 32 3 05/06/74 1751.6 statement_map.incl.pl1 >ldd>include>statement_map.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. addrel builtin function dcl 27 ref 41 44 46 area_pointer 16(18) based bit(18) level 2 packed unaligned dcl 1-1 ref 39 41 block_pt 000102 automatic pointer dcl 25 set ref 41* 43 44 46 end_pt parameter pointer dcl 21 set ref 10 46* 51* first 6 based bit(18) level 3 packed unaligned dcl 2-1 ref 43 44 head_pt parameter pointer dcl 19 ref 10 36 hpt 000100 automatic pointer dcl 24 set ref 36* 37 38 39 41 41 44 46 identifier 1 based char(8) level 2 dcl 1-1 ref 38 last 6(18) based bit(18) level 3 packed unaligned dcl 2-1 ref 46 map 6 based structure level 2 packed unaligned dcl 2-1 map_pt parameter pointer dcl 20 set ref 10 44* 51* map_size parameter fixed bin(17,0) dcl 22 set ref 10 45* null builtin function dcl 27 ref 37 51 pl1_symbol_block based structure level 1 dcl 2-1 size builtin function dcl 27 ref 45 statement_map based structure level 1 dcl 3-1 ref 45 std_symbol_header based structure level 1 dcl 1-1 NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. fixed builtin function dcl 27 NAMES DECLARED BY EXPLICIT CONTEXT. get_statement_map 000013 constant entry external dcl 10 no 000060 constant label dcl 51 ref 37 38 39 43 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 112 122 64 122 Length 336 64 10 177 26 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME get_statement_map 70 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME get_statement_map 000100 hpt get_statement_map 000102 block_pt get_statement_map THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. return ext_entry NO EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 10 000006 36 000020 37 000024 38 000030 39 000034 41 000037 43 000042 44 000045 45 000050 46 000052 49 000057 51 000060 52 000063 ----------------------------------------------------------- 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