COMPILATION LISTING OF SEGMENT mca_init_ Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 11/11/89 1010.8 mst Sat Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 6* * * 7* *********************************************************** */ 8 /****^ HISTORY COMMENTS: 9* 1) change(85-09-11,Fawcett), approve(85-09-11,MCR6979), 10* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 11* Created to control 12* the MCA in the IMU. 13* END HISTORY COMMENTS */ 14 /* format: style4 */ 15 /* Created Nov 1984 by R. A. Fawcett */ 16 /* Modified May 1985 by P. K Farley to call admin_gate_$ocdcm_reconfigure 17* to lock MCA input through the console. */ 18 19 mca_init_: proc (a_mca_index, a_code); 20 21 dcl a_mca_index fixed bin (3) parm; 22 dcl a_code fixed bin (35) parm; 23 dcl code fixed bin (35); 24 dcl i fixed bin; 25 dcl mca_index fixed bin; 26 dcl rings (3) fixed bin (3); 27 28 29 dcl hcs_$append_branchx entry (char (*), char (*), fixed bin (5), (3) fixed bin (3), char (*), 30 fixed bin (1), fixed bin (1), fixed bin (24), fixed bin (35)); 31 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 32 dcl admin_gate_$ocdcm_reconfigure entry (char (4), fixed bin, fixed bin (35)); 33 34 dcl (null, substr) builtin; 35 36 dcl error_table_$bad_arg fixed bin (35) ext static; 37 38 mca_index = a_mca_index; 39 if mca_index < 1 | mca_index > 4 then do; 40 a_code = error_table_$bad_arg; 41 return; 42 end; 43 44 /* does the data_segment exists */ 45 46 call hcs_$initiate (SYSTEM_DIR, DATA_SEG, "", 0, 0, mca_data_seg_ptr, code); 47 if mca_data_seg_ptr = null () then do; 48 49 /* Ok then create the data segment with the rings of 1,1,1 and rw *.* " */ 50 51 rings (*) = 1; 52 call hcs_$append_branchx (SYSTEM_DIR, DATA_SEG, 10, rings, 53 "*.*.*", 0, 0, 0, code); 54 if code ^= 0 then do; 55 a_code = code; 56 return; 57 end; 58 call hcs_$initiate (SYSTEM_DIR, DATA_SEG, "", 0, 0, mca_data_seg_ptr, code); 59 if mca_data_seg_ptr = null () then do; 60 a_code = code; 61 return; 62 end; 63 /* New segment init the data that will be needed */ 64 65 mca_data_seg.version = MCA_data_version_1; /* Set correct version */ 66 do i = 1 to 4; 67 mca_data_seg.array (i).state = MCA_NOT_CONFIGURED; 68 mca_data_seg.array (i).lock = "0"b; 69 mca_data_seg.array (i).name = substr ("abcd", i, 1); 70 mca_data_seg.array (i).imu_number = i; 71 end; 72 73 /* Lock MCA input through the console. NOTE: Because we don't know which 74* Console is the "Master" mca console, we will attempt to lock every 75* configured console. */ 76 77 call admin_gate_$ocdcm_reconfigure ("", LOCK_MCA_INPUT, code); 78 end; 79 80 /* mark this MCA free */ 81 82 mca_data_seg.array (mca_index).state = MCA_FREE; 83 84 a_code = 0; 85 return; 86 1 1 /* Begin include file ... mca_data.incl.pl1 1 2* * 1 3* * Created on 09/14/84 by Paul Farley. 1 4* * Modified by R. A. Fawcett 10/25/84 1 5**/ 1 6 1 7 /****^ HISTORY COMMENTS: 1 8* 1) change(85-09-11,Fawcett), approve(85-09-11,MCR6979), 1 9* audit(86-01-17,CLJones), install(86-03-21,MR12.0-1033): 1 10* Created for MCA 1 11* support 1 12* 2) change(86-08-19,Fawcett), approve(86-08-19,MCR7374), 1 13* audit(86-08-26,Lippard), install(86-09-16,MR12.0-1159): 1 14* Fix problems found in audit of the Online manager code. 1 15* END HISTORY COMMENTS */ 1 16 1 17 dcl MCA_data_version_1 char (8) int static options 1 18 (constant) init ("MCA00001"); 1 19 1 20 dcl mca_data_seg_ptr ptr static init (null ()); 1 21 1 22 dcl mcad_ptr ptr; 1 23 1 24 dcl ipcd_ptr ptr; 1 25 1 26 dcl 1 mca_data_seg based (mca_data_seg_ptr), 1 27 2 version char (8), 1 28 2 array (1:4) like mcad; 1 29 1 30 1 31 dcl 1 mcad based (mcad_ptr) aligned, 1 32 2 lock bit (36), /* The mca write lock. */ 1 33 2 state fixed bin, /* Current mca state */ 1 34 2 attach_time fixed bin (71), /* DT/time of attach */ 1 35 2 attach_pid bit (36), /* PID of attaching process */ 1 36 2 name char (1), /* name of this mca (a b c d) */ 1 37 2 imu_number fixed bin (17), /* number of the IMU */ 1 38 2 ioi_idx fixed bin, /* value to use with ioi_ */ 1 39 2 event_chn fixed bin (71), /* ipc channel for IO processing ring_1 */ 1 40 2 ioi_wks_ptr ptr, /* pointer to IOI Workspace */ 1 41 2 max_ws_size fixed bin (19), 1 42 2 pad fixed bin, 1 43 2 user_ptr ptr, /* used for async_io */ 1 44 2 return_data_ptr ptr, /* user for async_io */ 1 45 2 io_param_ptr ptr, /* pointer to the io_parameter_block for mca returned data */ 1 46 2 entry_to_return_data entry (ptr, fixed bin (21), fixed bin (35)), 1 47 /* entry that will return the data to the user for async_io */ 1 48 2 status_offset fixed bin, /* offset into work space for status */ 1 49 2 current_ws_size fixed bin (18), /* current work_space */ 1 50 2 rcp_id bit (36), 1 51 2 flags unaligned, 1 52 3 async_io bit (1), /* 1 = outer ring will catch IO events */ 1 53 /* 0 = ring 1 will go blocked and wait for IO to complete */ 1 54 3 config_data_requested bit (1), /* used during mca attachment */ 1 55 3 pad bit (34), 1 56 2 max_time_out fixed bin (71), /* maximum time for time out */ 1 57 2 last_status bit (71), /* most recent MCA status return */ 1 58 1 59 2 ipcd_array (0:15) like ipcd aligned; 1 60 1 61 dcl 1 ipcd based (ipcd_ptr) aligned, 1 62 2 ipc_name char (8), /* "ipcXX" */ 1 63 2 channel fixed bin (17) unaligned, /* base channel */ 1 64 2 nchan fixed bin (17) unaligned, /* number of channels */ 1 65 2 type_info, /* type of IPC */ 1 66 3 no_level_2_info bit (1) unaligned, 1 67 3 is_micro_cont bit (1) unaligned, 1 68 3 fbus_disable_latch bit (1) unaligned, 1 69 3 pad bit (6) unaligned, 1 70 3 type_index fixed bin (8) unaligned, 1 71 2 state fixed bin (17) unaligned, /* current state */ 1 72 2 level_1_state fixed bin (17), /* LVL-1_STATE */ 1 73 2 prph_attachments fixed bin (17), /* # of RCP attachments */ 1 74 2 attach_data (8), 1 75 3 prph_name char (4), /* Multics prph name */ 1 76 3 flags unaligned, 1 77 4 attached_thru_rcp bit (1), /* must detach when done */ 1 78 4 io_suspended bit (1), /* must resume IO when done */ 1 79 4 pad (34) bit (1), 1 80 3 attach_time fixed bin (71), /* DT/time of attach */ 1 81 3 ipc_rcp_id bit (36), /* rcp id */ 1 82 3 ipc_ioi_idx fixed bin; /* index from rcp */ 1 83 1 84 dcl SYSTEM_DIR char (17) init (">system_library_1") static options (constant); 1 85 dcl DATA_SEG char (12) init ("mca_data_seg") static options (constant); 1 86 1 87 1 88 dcl (MCA_NOT_CONFIGURED init (0), /* possible mcad.state values */ 1 89 MCA_FREE init (1), 1 90 MCA_ATTACHING init (2), 1 91 MCA_ATTACHED init (3), 1 92 MAINT_SESSION init (10)) fixed bin internal static options (constant); 1 93 1 94 dcl (IPC_NOT_CONFIGURED init (0), /* possible ipcd.state values */ 1 95 IPC_FREE init (1), 1 96 IPC_ATTACHED init (2)) fixed bin internal static options (constant); 1 97 1 98 /* End of include file ... mca_data.incl.pl1 */ 87 88 2 1 /* START OF: opc_reconfig_options.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 2 2 2 3 2 4 /****^ HISTORY COMMENTS: 2 5* 1) change(85-09-09,Farley), approve(85-12-03,MCR7312), 2 6* audit(85-11-14,Fawcett), install(86-03-21,MR12.0-1033): 2 7* Add Lock and unlock 2 8* MCA. 2 9* 2) change(85-12-03,Farley), approve(85-12-03,MCR7306), 2 10* audit(85-12-03,Fawcett), install(86-03-21,MR12.0-1033): 2 11* Fix bugs found while doing Dipper changes. 2 12* 3) change(85-12-03,Farley), approve(85-12-03,MCR7312), 2 13* audit(85-12-03,Fawcett), install(86-03-21,MR12.0-1033): 2 14* Add BCE MCA lock and unlock. 2 15* END HISTORY COMMENTS */ 2 16 2 17 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 18 /* */ 2 19 /* Purpose: */ 2 20 /* */ 2 21 /* This include file contains the possible operator console reconfiguration options. These are */ 2 22 /* passed to hphcs_$ocdcm_reconfigure to effect explicit console reconfiguration. */ 2 23 /* */ 2 24 /* Initial Coding: 06/18/83 */ 2 25 /* */ 2 26 /* Author: E. A. Ranzenbach (Ranzenbach.Multics@M) */ 2 27 /* Location: System-M. */ 2 28 /* Release: MR10.2 */ 2 29 /* */ 2 30 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 31 /* */ 2 32 /* Modifications: */ 2 33 /* */ 2 34 /* Date Author Reason */ 2 35 /* */ 2 36 /* 840420 E. A. Ranzenbach Added MAKE_UNAVAILABLE option. */ 2 37 /* 850205 E. A. Ranzenbach Added SEND_MC_IO option. */ 2 38 /* 850520 Paul K Farley Added LOCK_MCA_INPUT option. */ 2 39 /* Added UNLOCK_MCA_INPUT option. */ 2 40 /* */ 2 41 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 42 2 43 /* format: off */ 2 44 2 45 dcl ( 2 46 NOP init (0), /* just to make sure... */ 2 47 ENABLE_CONSOLE_SERVICE init (1), /* allow syserr and normal I/O... */ 2 48 SUSPEND_CONSOLE_SERVICE init (2), /* the opposite of ENABLE... */ 2 49 MAKE_BOOTLOAD_CONSOLE init (3), /* make the bootload console... */ 2 50 MAKE_ALTERNATE_CONSOLE init (4), /* add console to alternate list... */ 2 51 MAKE_IO_DEVICE init (5), /* release the console to IOI... */ 2 52 MAKE_INOP_DEVICE init (6), /* release the console to IOI... */ 2 53 RESET_CONSOLE init (7), /* reset the bootload console... */ 2 54 CRASH_ON_CRF init (8), /* CRASH on console recovery failure... */ 2 55 RUN_ON_CRF init (9), /* RUN on console recovery failure... */ 2 56 MAKE_UNAVAILABLE init (10), /* put console into the OFF state... */ 2 57 SEND_MC_IO init (11), /* forward all I/O to the MC console... */ 2 58 LOCK_MCA_INPUT init (12), /* Disable input path from console to MCA(in IMU)... */ 2 59 UNLOCK_MCA_INPUT init (13) /* Enable input path from console to MCA(in IMU)... */ 2 60 ) 2 61 fixed bin (17) 2 62 internal static options (constant); 2 63 2 64 /* END OF: opc_reconfig_options.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 89 90 end mca_init_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0810.0 mca_init_.pl1 >spec>install>1112>mca_init_.pl1 87 1 09/18/86 1317.5 mca_data.incl.pl1 >ldd>include>mca_data.incl.pl1 89 2 03/27/86 1120.0 opc_reconfig_options.incl.pl1 >ldd>include>opc_reconfig_options.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. DATA_SEG 000001 constant char(12) initial packed unaligned dcl 1-85 set ref 46* 52* 58* LOCK_MCA_INPUT 000000 constant fixed bin(17,0) initial dcl 2-45 set ref 77* MCA_FREE constant fixed bin(17,0) initial dcl 1-88 ref 82 MCA_NOT_CONFIGURED constant fixed bin(17,0) initial dcl 1-88 ref 67 MCA_data_version_1 000012 constant char(8) initial packed unaligned dcl 1-17 ref 65 SYSTEM_DIR 000004 constant char(17) initial packed unaligned dcl 1-84 set ref 46* 52* 58* a_code parameter fixed bin(35,0) dcl 22 set ref 19 40* 55* 60* 84* a_mca_index parameter fixed bin(3,0) dcl 21 ref 19 38 admin_gate_$ocdcm_reconfigure 000016 constant entry external dcl 32 ref 77 array 2 based structure array level 2 unaligned dcl 1-26 code 000100 automatic fixed bin(35,0) dcl 23 set ref 46* 52* 54 55 58* 60 77* error_table_$bad_arg 000020 external static fixed bin(35,0) dcl 36 ref 40 hcs_$append_branchx 000012 constant entry external dcl 29 ref 52 hcs_$initiate 000014 constant entry external dcl 31 ref 46 58 i 000101 automatic fixed bin(17,0) dcl 24 set ref 66* 67 68 69 69 70 70* imu_number 10 based fixed bin(17,0) array level 3 dcl 1-26 set ref 70* ipcd based structure level 1 dcl 1-61 lock 2 based bit(36) array level 3 packed packed unaligned dcl 1-26 set ref 68* mca_data_seg based structure level 1 unaligned dcl 1-26 mca_data_seg_ptr 000010 internal static pointer initial dcl 1-20 set ref 46* 47 58* 59 65 67 68 69 70 82 mca_index 000102 automatic fixed bin(17,0) dcl 25 set ref 38* 39 39 82 mcad based structure level 1 dcl 1-31 name 7 based char(1) array level 3 packed packed unaligned dcl 1-26 set ref 69* null builtin function dcl 34 ref 47 59 rings 000103 automatic fixed bin(3,0) array dcl 26 set ref 51* 52* state 3 based fixed bin(17,0) array level 3 dcl 1-26 set ref 67* 82* substr builtin function dcl 34 ref 69 version based char(8) level 2 packed packed unaligned dcl 1-26 set ref 65* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. CRASH_ON_CRF internal static fixed bin(17,0) initial dcl 2-45 ENABLE_CONSOLE_SERVICE internal static fixed bin(17,0) initial dcl 2-45 IPC_ATTACHED internal static fixed bin(17,0) initial dcl 1-94 IPC_FREE internal static fixed bin(17,0) initial dcl 1-94 IPC_NOT_CONFIGURED internal static fixed bin(17,0) initial dcl 1-94 MAINT_SESSION internal static fixed bin(17,0) initial dcl 1-88 MAKE_ALTERNATE_CONSOLE internal static fixed bin(17,0) initial dcl 2-45 MAKE_BOOTLOAD_CONSOLE internal static fixed bin(17,0) initial dcl 2-45 MAKE_INOP_DEVICE internal static fixed bin(17,0) initial dcl 2-45 MAKE_IO_DEVICE internal static fixed bin(17,0) initial dcl 2-45 MAKE_UNAVAILABLE internal static fixed bin(17,0) initial dcl 2-45 MCA_ATTACHED internal static fixed bin(17,0) initial dcl 1-88 MCA_ATTACHING internal static fixed bin(17,0) initial dcl 1-88 NOP internal static fixed bin(17,0) initial dcl 2-45 RESET_CONSOLE internal static fixed bin(17,0) initial dcl 2-45 RUN_ON_CRF internal static fixed bin(17,0) initial dcl 2-45 SEND_MC_IO internal static fixed bin(17,0) initial dcl 2-45 SUSPEND_CONSOLE_SERVICE internal static fixed bin(17,0) initial dcl 2-45 UNLOCK_MCA_INPUT internal static fixed bin(17,0) initial dcl 2-45 ipcd_ptr automatic pointer dcl 1-24 mcad_ptr automatic pointer dcl 1-22 NAME DECLARED BY EXPLICIT CONTEXT. mca_init_ 000046 constant entry external dcl 19 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 456 500 366 466 Length 704 366 22 170 67 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME mca_init_ 146 external procedure is an external procedure. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 mca_data_seg_ptr mca_init_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME mca_init_ 000100 code mca_init_ 000101 i mca_init_ 000102 mca_index mca_init_ 000103 rings mca_init_ 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. admin_gate_$ocdcm_reconfigure hcs_$append_branchx hcs_$initiate THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 000042 38 000053 39 000056 40 000062 41 000064 46 000065 47 000127 51 000134 52 000145 54 000224 55 000226 56 000230 58 000231 59 000274 60 000301 61 000304 65 000305 66 000311 67 000317 68 000325 69 000326 70 000333 71 000335 77 000337 82 000354 84 000363 85 000365 ----------------------------------------------------------- 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