COMPILATION LISTING OF SEGMENT lap_dump_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/08/88 1510.4 mst Mon Options: optimize map 1 /****^ ************************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Massachusetts Institute of Technology, 1983 * 6* * * 7* ************************************************************** */ 8 9 /* format: style4,delnl,insnl,ifthenstmt,indnoniterend */ 10 11 lap_dump_: 12 procedure (P_ttybp, P_areap, P_lap_data_ptr, P_subchannel, P_brief); 13 14 /* Created 1983 February by Olin Sibert to support LAP multiplexers. */ 15 16 /****^ HISTORY COMMENTS: 17* 1) change(88-07-07,Beattie), approve(88-06-27,MCR7926), 18* audit(88-07-22,Brunelle), install(88-08-08,MR12.2-1082): 19* Prepared for installation. 20* END HISTORY COMMENTS */ 21 22 lap_data_ptr = P_lap_data_ptr; 23 24 call ioa_ ("LAP channel ^a, devx ^d (subchannel devx ^d)", lap_data.name, lap_data.devx, lap_data.subchannel); 25 call ioa_ ("State is ^[hungup^;listening^;active^]. Flags: ^[send_output ^]^[started ^]", (lap_data.state + 1), 26 lap_data.send_output, lap_data.simplex_started); 27 call ioa_ ("Activate order: ^24.3b", unspec (lap_data.activate_order)); 28 call ioa_ ("Dialup info: ^24.3b", unspec (lap_data.dialup_info)); 29 call ioa_ ("SC dialup info: ^24.3b", unspec (lap_data.sc_dialup_info)); 30 call ioa_ ("Max frame size: ^d chars. ^[No frame pending.^;Pending frame:^]", lap_data.max_frame_size, 31 (lap_data.frame_start = null ())); 32 if (lap_data.frame_start ^= null ()) then do; 33 call ioa_ ("Frame at ^p is ^d chars^[ ready for sending^]:", lap_data.frame_start, lap_data.frame_size, 34 lap_data.frame_ready); 35 call tty_dump$print_chain (P_ttybp, "", binary (rel (lap_data.frame_start), 18), (P_brief)); 36 end; 37 38 call ioa_ (""); 39 40 return; 41 42 lap_analyze_: 43 entry (P_ttybp, P_areap, P_devx, P_check_used, P_long); 44 45 lctp = pointer (P_ttybp, rel (P_ttybp -> tty_buf.lct_ptr)); 46 lctep = addr (lct.lcte_array (P_devx)); 47 lap_data_ptr = pointer (P_ttybp, rel (lcte.data_base_ptr)); 48 49 call lap_dump_ (P_ttybp, P_areap, lap_data_ptr, -1, (^P_long)); 50 51 if (lap_data.frame_start ^= null ()) then do; 52 buffer_offset = binary (rel (lap_data.frame_start), 18); 53 do while ((buffer_offset ^= 0) & (buffer_offset < 261120)); 54 blockp = pointer (P_ttybp, buffer_offset); 55 buffer_offset = buffer.next; 56 call P_check_used (blockp, (16 * (1 + binary (buffer.size_code, 3)))); 57 end; 58 end; 59 60 call P_check_used (lap_data_ptr, size (lap_data)); 61 62 return; 63 64 dcl P_ttybp pointer parameter; 65 dcl P_areap pointer parameter; 66 dcl P_lap_data_ptr pointer parameter; 67 dcl P_subchannel fixed bin parameter; 68 dcl P_brief bit (1) aligned parameter; 69 dcl P_devx fixed bin parameter; 70 dcl P_check_used entry (pointer, fixed bin) parameter; 71 dcl P_long bit (1) aligned parameter; 72 73 dcl buffer_offset fixed bin (18); 74 75 dcl ioa_ entry () options (variable); 76 dcl tty_dump$print_chain entry (ptr, char (*), fixed bin, bit (1)); 77 78 dcl (addr, binary, null, pointer, rel, size, unspec) builtin; 79 1 1 /* BEGIN INCLUDE FILE ... lap_simplex_data.incl.pl1 */ 1 2 1 3 /* 1 4* Created 2/1/83 by Olin Sibert to add support for LAP mulitiplexers. 1 5**/ 1 6 1 7 /****^ HISTORY COMMENTS: 1 8* 1) change(88-07-07,Beattie), approve(88-06-27,MCR7926), 1 9* audit(88-07-22,Brunelle), install(88-08-08,MR12.2-1082): 1 10* Prepared for installation. 1 11* END HISTORY COMMENTS */ 1 12 1 13 dcl lap_load_info_ptr pointer; 1 14 dcl lap_data_ptr pointer; 1 15 1 16 dcl 1 lap_data aligned based (lap_data_ptr), 1 17 2 name char (32) unaligned, 1 18 2 devx fixed bin, 1 19 2 subchannel fixed bin, 1 20 2 state fixed bin, /* One of the state values below */ 1 21 2 flags aligned, 1 22 3 send_output bit (1) unaligned, 1 23 3 simplex_started bit (1) unaligned, /* Whether to accept dialups */ 1 24 3 pad bit (34) unaligned, 1 25 2 load_process_id bit (36) aligned, /* For notifications */ 1 26 2 load_event_channel fixed bin (71), 1 27 2 activate_order aligned like lap_line_control_info, /* Order used to activate the LAP tables */ 1 28 2 dialup_info aligned like dialup_info, /* Dialup info received from FNP */ 1 29 2 sc_dialup_info aligned like dialup_info, /* and info sent on to our subchannel */ 1 30 2 max_frame_size fixed bin, /* Max number of characters stuffable into a frame */ 1 31 2 frame_ready bit (1) aligned, /* Frame (collected below) is complete and should be sent */ 1 32 2 frame_size fixed bin, /* Number of characters */ 1 33 2 frame_start pointer, /* Beginning and end of buffer chain */ 1 34 2 frame_end pointer; 1 35 1 36 dcl LAP_HUNGUP init (0) fixed bin internal static options (constant); 1 37 dcl LAP_LISTENING init (1) fixed bin internal static options (constant); 1 38 dcl LAP_ACTIVE init (2) fixed bin internal static options (constant); 1 39 1 40 dcl 1 lap_load_info aligned based (lap_load_info_ptr), 1 41 2 version char (8) aligned, 1 42 2 event_channel fixed bin (71), /* For notifying loading process */ 1 43 2 process_id bit (36) aligned, 1 44 2 activate_order aligned like lap_line_control_info; /* Only "real" parameter */ 1 45 1 46 dcl LAP_LOAD_INFO_VERSION_1 char (8) internal static options (constant) init ("lapload1"); 1 47 1 48 /* END INCLUDE FILE ... lap_simplex_data.incl.pl1 */ 80 81 2 1 /* BEGIN INCLUDE FILE ... lap_line_info.incl.pl1 */ 2 2 2 3 /* 2 4* Line status and control information for LAP -- extracted from x25_mpx 2 5* 2 6* Created January 10, 1983 by Olin Sibert to support LAP multiplexers. 2 7**/ 2 8 2 9 /****^ HISTORY COMMENTS: 2 10* 1) change(88-07-07,Beattie), approve(88-06-27,MCR7926), 2 11* audit(88-07-22,Brunelle), install(88-08-08,MR12.2-1082): 2 12* Prepared for installation. 2 13* END HISTORY COMMENTS */ 2 14 2 15 dcl L2_HEADER_PAD fixed bin internal static options (constant) init (2); 2 16 2 17 dcl lap_line_control_info_ptr pointer; 2 18 2 19 dcl 1 lap_line_control_info aligned based (lap_line_control_info_ptr), 2 20 2 dce_or_dte bit (1) unaligned, /* ON = DCE */ 2 21 2 lap_or_lapb bit (1) unaligned, /* ON = lapb */ 2 22 2 disc_first bit (1) unaligned, /* ON = send disc upon physical connect */ 2 23 2 trace_off bit (1) unaligned, /* ON = turn off trace upon line crash */ 2 24 2 pad bit (5) unaligned, /* padding */ 2 25 2 command bit (9) unaligned, /* One of the values below */ 2 26 2 frame_size fixed bin (18) unsigned unaligned, /* max size of I-frame */ 2 27 2 28 2 K fixed bin (9) unsigned unaligned, /* max un-acked frames allowed */ 2 29 2 N2 fixed bin (9) unsigned unaligned, /* number of retries */ 2 30 2 T1 fixed bin (9) unsigned unaligned, /* frame ack wait timer in tenths of seconds */ 2 31 2 T3 fixed bin (9) unsigned unaligned; /* init timer */ 2 32 2 33 dcl ACTIVATE_COMMAND init ("001"b3) bit (9) internal static options (constant); 2 34 dcl DEACTIVATE_COMMAND init ("002"b3) bit (9) internal static options (constant); 2 35 dcl DISCONNECT_COMMAND init ("003"b3) bit (9) internal static options (constant); 2 36 2 37 dcl lap_line_status_info_ptr pointer; 2 38 2 39 dcl 1 lap_line_status_info aligned based (lap_line_status_info_ptr), 2 40 2 status_type fixed bin (18) unsigned unaligned, /* One of the values below */ 2 41 2 last_function_process fixed bin (17) unaligned, /* coded function */ 2 42 2 43 2 which_state_process fixed bin (9) unsigned unaligned, /* process state */ 2 44 2 main_state fixed bin (9) unsigned unaligned, /* current frame level state */ 2 45 2 primary_sub_state fixed bin (9) unsigned unaligned, /* sub link up state */ 2 46 2 secondary_sub_state fixed bin (9) unsigned unaligned; 2 47 2 48 dcl LINE_DOWN_STATUS init (1) fixed bin (18) unsigned internal static options (constant); 2 49 2 50 dcl FRAME_STATE_ARRAY (5) char (32) static options (constant) init 2 51 ("Down", "T3", "SABM Sent", "Set Up", "Up"); 2 52 2 53 dcl FRAME_SUB_STATE_ARRAY (0:14) char (32) static options (constant) init 2 54 ("Link down: see frame", "Link down: down", "Link down: T3", /* 0, 1, 2 */ 2 55 "Link down: SABM sent", "Link down: set up", "Primary normal", /* 3, 4, 5 */ 2 56 "Primary remote busy", "Primary T1 expired", "Primary SARM reset", /* 6, 7, 8 */ 2 57 "Secondary normal", "Secondary local busy", "Secondary reject", /* 9, 10, 11 */ 2 58 "Secondary CMDR send", "Link up FRMR send", "Link up reset started (lapb)"); /* 12, 13, 14 */ 2 59 2 60 dcl FRAME_FUNCTION_CODE (0:19) char (32) static options (constant) init 2 61 ("Recieved invalid command or data", "Recieved DISC", "Recieved DM (lapb)", /* 0, 1, 2 */ 2 62 "Recieved SARM (lap)", "Recieved SABM (lapb)", "Recieved UA", /* 3, 4, 5 */ 2 63 "Recieved CMDR/FRMR", "Recieved RR", "Recieved RNR", /* 6, 7, 8 */ 2 64 "Recieved REJ", "Recieved bad command or response", "Timer (T1) expired with rcspecial_ldd>install>MR12.2-1082>lap_dump_.pl1 80 1 08/08/88 1400.0 lap_simplex_data.incl.pl1 >special_ldd>install>MR12.2-1082>lap_simplex_data.incl.pl1 82 2 08/08/88 1400.0 lap_line_info.incl.pl1 >special_ldd>install>MR12.2-1082>lap_line_info.incl.pl1 84 3 10/20/82 0938.6 mcs_interrupt_info.incl.pl1 >ldd>include>mcs_interrupt_info.incl.pl1 86 4 01/06/85 1422.1 tty_buf.incl.pl1 >ldd>include>tty_buf.incl.pl1 4-152 5 01/06/85 1422.1 hc_fast_lock.incl.pl1 >ldd>include>hc_fast_lock.incl.pl1 88 6 11/08/82 1005.8 lct.incl.pl1 >ldd>include>lct.incl.pl1 90 7 07/21/88 2036.0 tty_buffer_block.incl.pl1 >ldd>include>tty_buffer_block.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_areap parameter pointer dcl 65 set ref 11 42 49* P_brief parameter bit(1) dcl 68 ref 11 35 P_check_used parameter entry variable dcl 70 ref 42 56 60 P_devx parameter fixed bin(17,0) dcl 69 ref 42 46 P_lap_data_ptr parameter pointer dcl 66 ref 11 22 P_long parameter bit(1) dcl 71 ref 42 49 P_subchannel parameter fixed bin(17,0) dcl 67 ref 11 P_ttybp parameter pointer dcl 64 set ref 11 35* 42 45 45 47 49* 54 activate_order 20 based structure level 2 dcl 1-16 ref 27 27 addr builtin function dcl 78 ref 46 binary builtin function dcl 78 ref 35 35 52 56 blockp 000112 automatic pointer dcl 7-19 set ref 54* 55 56* 56 buffer based structure level 1 dcl 7-28 buffer_offset 000100 automatic fixed bin(18,0) dcl 73 set ref 52* 53 53 54 55* data_base_ptr 1 based pointer level 2 packed packed unaligned dcl 6-20 ref 47 devx 10 based fixed bin(17,0) level 2 dcl 1-16 set ref 24* dialup_info 22 based structure level 2 in structure "lap_data" dcl 1-16 in procedure "lap_dump_" ref 28 28 dialup_info 000104 automatic structure level 1 dcl 3-30 in procedure "lap_dump_" flags 13 based structure level 2 dcl 1-16 frame_ready 27 based bit(1) level 2 dcl 1-16 set ref 33* frame_size 30 based fixed bin(17,0) level 2 dcl 1-16 set ref 33* frame_start 32 based pointer level 2 dcl 1-16 set ref 30 32 33* 35 35 51 52 hc_fast_lock based structure level 1 dcl 5-10 in 2 based structure level 2 in structure "saved_meters" dcl 6-68 in procedure "lap_dump_" in 30 based structure array level 4 in structure "lct" dcl 6-11 in procedure "lap_dump_" in 10 based structure level 3 in structure "lcte" dcl 6-20 in procedure "lap_dump_" ioa_ 000010 constant entry external dcl 75 ref 24 25 27 28 29 30 33 38 lap_data based structure level 1 dcl 1-16 set ref 60 60 lap_data_ptr 000102 automatic pointer dcl 1-14 set ref 22* 24 24 24 25 25 25 27 27 28 28 29 29 30 30 32 33 33 33 35 35 47* 49* 51 52 60* 60 60 lap_line_control_info based structure level 1 dcl 2-19 lct based structure level 1 dcl 6-11 lct_ptr 6 based pointer level 2 dcl 4-35 ref 45 lcte based structure level 1 dcl 6-20 lcte_array 20 based structure array level 2 dcl 6-11 set ref 46 lctep 000110 automatic pointer dcl 6-8 set ref 46* 47 lctp 000106 automatic pointer dcl 6-7 set ref 45* 46 max_frame_size 26 based fixed bin(17,0) level 2 dcl 1-16 set ref 30* meters 26 based structure array level 3 in structure "lct" dcl 6-11 in procedure "lap_dump_" meters 6 based structure level 2 in structure "lcte" dcl 6-20 in procedure "lap_dump_" name based char(32) level 2 packed packed unaligned dcl 1-16 set ref 24* next based fixed bin(18,0) level 2 packed packed unsigned unaligned dcl 7-28 ref 55 null builtin function dcl 78 ref 30 32 51 pointer builtin function dcl 78 ref 45 47 54 rel builtin function dcl 78 ref 35 35 45 47 52 sc_dialup_info 24 based structure level 2 dcl 1-16 ref 29 29 send_output 13 based bit(1) level 3 packed packed unaligned dcl 1-16 set ref 25* simplex_started 13(01) based bit(1) level 3 packed packed unaligned dcl 1-16 set ref 25* size builtin function dcl 78 ref 60 60 size_code 0(24) based fixed bin(3,0) level 2 packed packed unsigned unaligned dcl 7-28 ref 56 state 12 based fixed bin(17,0) level 2 dcl 1-16 ref 25 subchannel 11 based fixed bin(17,0) level 2 dcl 1-16 set ref 24* tty_buf based structure level 1 dcl 4-35 tty_dump$print_chain 000012 constant entry external dcl 76 ref 35 unspec builtin function dcl 78 ref 27 27 28 28 29 29 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACCEPT_INPUT internal static fixed bin(17,0) initial dcl 3-15 ACKNOWLEDGE_ECHNEGO_INIT internal static fixed bin(17,0) initial dcl 3-22 ACKNOWLEDGE_ECHNEGO_STOP internal static fixed bin(17,0) initial dcl 3-23 ACTIVATE_COMMAND internal static bit(9) initial packed unaligned dcl 2-33 CRASH internal static fixed bin(17,0) initial dcl 3-12 DEACTIVATE_COMMAND internal static bit(9) initial packed unaligned dcl 2-34 DIALUP internal static fixed bin(17,0) initial dcl 3-10 DIAL_STATUS internal static fixed bin(17,0) initial dcl 3-19 DISCONNECT_COMMAND internal static bit(9) initial packed unaligned dcl 2-35 FNP_DUMP_PATCH_EVENT internal static fixed bin(17,0) initial dcl 4-31 FNP_METER_EVENT internal static fixed bin(17,0) initial dcl 4-32 FRAME_FUNCTION_CODE internal static char(32) initial array packed unaligned dcl 2-60 FRAME_STATE_ARRAY internal static char(32) initial array packed unaligned dcl 2-50 FRAME_SUB_STATE_ARRAY internal static char(32) initial array packed unaligned dcl 2-53 HANGUP internal static fixed bin(17,0) initial dcl 3-11 INPUT_AVAILABLE internal static fixed bin(17,0) initial dcl 3-14 INPUT_REJECTED internal static fixed bin(17,0) initial dcl 3-16 L2_HEADER_PAD internal static fixed bin(17,0) initial dcl 2-15 LAP_ACTIVE internal static fixed bin(17,0) initial dcl 1-38 LAP_HUNGUP internal static fixed bin(17,0) initial dcl 1-36 LAP_LISTENING internal static fixed bin(17,0) initial dcl 1-37 LAP_LOAD_INFO_VERSION_1 internal static char(8) initial packed unaligned dcl 1-46 LINE_DOWN_STATUS internal static fixed bin(18,0) initial unsigned dcl 2-48 LINE_STATUS internal static fixed bin(17,0) initial dcl 3-18 MASKED internal static fixed bin(17,0) initial dcl 3-26 QUIT internal static fixed bin(17,0) initial dcl 3-17 SEND_OUTPUT internal static fixed bin(17,0) initial dcl 3-13 SPACE_AVAILABLE internal static fixed bin(17,0) initial dcl 3-21 TIMER internal static fixed bin(17,0) initial dcl 3-24 TTY_AREA_LOCK_EVENT internal static bit(36) initial dcl 4-33 USER_INTERRUPT internal static fixed bin(17,0) initial dcl 3-25 WRU_TIMEOUT internal static fixed bin(17,0) initial dcl 3-20 abs_buf_limit internal static fixed bin(18,0) initial dcl 4-19 bsizec internal static fixed bin(17,0) initial dcl 4-28 buf_per_second internal static fixed bin(17,0) initial dcl 4-29 free_block based structure level 1 dcl 7-23 free_blockp automatic pointer dcl 7-20 input_bpart internal static fixed bin(18,0) initial dcl 4-19 interrupt_info automatic bit(72) dcl 3-28 lap_line_control_info_ptr automatic pointer dcl 2-17 lap_line_status_info based structure level 1 dcl 2-39 lap_line_status_info_ptr automatic pointer dcl 2-37 lap_load_info based structure level 1 dcl 1-40 lap_load_info_ptr automatic pointer dcl 1-13 lcnt based structure level 1 dcl 6-65 lcntp automatic pointer dcl 6-63 lct_size automatic fixed bin(17,0) dcl 6-9 lock_ptr automatic pointer dcl 5-9 max_buffer_tally internal static fixed bin(17,0) initial array dcl 7-43 output_bpart internal static fixed bin(18,0) initial dcl 4-19 qblock_size internal static fixed bin(17,0) initial dcl 4-27 rtx_info automatic structure level 1 dcl 3-38 saved_meters based structure level 1 dcl 6-68 timer_info automatic structure level 1 dcl 3-50 tty_buf$ external static fixed bin(17,0) dcl 4-19 tty_ev internal static fixed bin(17,0) initial dcl 4-19 ttybp automatic pointer dcl 4-19 NAMES DECLARED BY EXPLICIT CONTEXT. lap_analyze_ 000505 constant entry external dcl 42 lap_dump_ 000141 constant entry external dcl 11 ref 49 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 706 722 635 716 Length 1244 635 14 305 51 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lap_dump_ 129 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lap_dump_ 000100 buffer_offset lap_dump_ 000102 lap_data_ptr lap_dump_ 000104 dialup_info lap_dump_ 000106 lctp lap_dump_ 000110 lctep lap_dump_ 000112 blockp lap_dump_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ent_var call_ext_in call_ext_out_desc return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. ioa_ tty_dump$print_chain NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 11 000134 22 000146 24 000152 25 000200 27 000235 28 000264 29 000313 30 000342 32 000374 33 000401 35 000431 38 000466 40 000477 42 000500 45 000512 46 000521 47 000525 49 000531 51 000555 52 000562 53 000565 54 000572 55 000577 56 000602 57 000620 60 000621 62 000634 ----------------------------------------------------------- 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