COMPILATION LISTING OF SEGMENT iom_switches 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 1013.7 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 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(87-02-26,Farley), approve(87-04-15,MCR7661), 13* audit(87-04-21,Fawcett), install(87-04-28,MR12.1-1028): 14* Removed the manipulation of fgbx.shut and fgbx.ssenb in favor of a new 15* flag, fgbx.io_reconfig, that will still inhibit ESDs but will allow 16* crashes to appear as crashes at BCE. 17* END HISTORY COMMENTS */ 18 19 20 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 21 iom_switches$validate: 22 procedure (p_iom_index, p_code); 23 24 /* iom_switches - program to play with switches on an IOM. Originally written to check settings of IOM switches. */ 25 /* Written May 1984 by M. Pandolf */ 26 /* Modified November 1984 by M. Pandolf to check for PARM card field */ 27 /* Modified April 1985 by Chris Jones to lower-case parm name and to remove calls to mask interrupt processors. */ 28 29 parm_ptr = null (); 30 call config$find_parm ("dris", parm_ptr); /* is DRIS parameter present? */ 31 if parm_ptr ^= null () then do; /* yes, so don't check IOM switches */ 32 p_code = 0; 33 return; 34 end; 35 36 iom_number = p_iom_index - 1; 37 38 call DEL_256K_BLOCKS (); /* free up places where */ 39 /* IOM may write status */ 40 41 call tc_util$suspend_tc (); /* run me only */ 42 43 call pc$flush_core (); /* perform a partial */ 44 /* shutdown of the file system */ 45 46 fgbxp = addr (flagbox$); /* give esd no reason to run, */ 47 fgbx.io_reconfig = YES; /* and have salvaging fix */ 48 /* things up when we boot again */ 49 50 test_loop: 51 call privileged_mode_ut$wire_and_mask (pmut_mask, pmut_ptr); 52 /* enter critical chunk of code */ 53 54 iom_id = iom_number + 1; 55 call iom_connect$connect_and_identify (iom_id, status); 56 57 call privileged_mode_ut$unwire_unmask (pmut_mask, pmut_ptr); 58 59 if status ^= 0 /* analyze IOM tracks */ 60 then do; 61 62 if iom_id > 0 then do; 63 call FIX_DAMAGE (); 64 goto test_loop; 65 end; 66 else p_code = status; 67 end; 68 else do; /* everything was as expected */ 69 70 fgbx.io_reconfig = NO; 71 call tc_util$resume_tc (); 72 call ADD_256K_BLOCKS (); 73 74 end; 75 76 return; 77 78 /* INTERNAL PROCEDURES */ 79 80 DEL_256K_BLOCKS: 81 procedure (); 82 83 astep = null (); 84 curr_mem_base = 0; 85 frames_deleted (*) = 0; 86 87 found_256k = YES; /* lie to get the loop started */ 88 do while (found_256k); 89 90 found_256k = NO; 91 do ctlr = 0 to 7 while (^found_256k); 92 93 if scs$controller_data (ctlr).info.online then 94 if scs$controller_data (ctlr).size > 0 then 95 if scs$controller_data (ctlr).base = curr_mem_base then do; 96 97 frames_deleted (ctlr) = min (scs$controller_data (ctlr).size, 256); 98 call reconfig$del_main (curr_mem_base, frames_deleted (ctlr), status); 99 if status = 0 then do; 100 found_256k = YES; 101 deleted_256k (ctlr) = YES; 102 curr_mem_base = curr_mem_base + frames_deleted (ctlr); 103 end; 104 else frames_deleted (ctlr) = 0; 105 106 end; 107 108 end; 109 110 end; 111 112 if unspec (deleted_256k) ^= ""b then do; 113 114 call lock$lock_ast (); 115 astep = get_aste (256); 116 call thread$out (astep, sst$level.ausedp (3)); 117 call lock$unlock_ast (); 118 if astep ^= null () then do; 119 call get_ptrs_$given_astep (astep, tsdw); 120 ptp = addrel (astep, sst$astsize); 121 end; 122 123 end; 124 125 return; 126 127 end DEL_256K_BLOCKS; 128 129 ADD_256K_BLOCKS: 130 procedure (); 131 132 do ctlr = 0 to 7; 133 134 if frames_deleted (ctlr) > 0 then 135 call reconfig$add_main ((scs$controller_data (ctlr).base), frames_deleted (ctlr), status); 136 137 end; 138 139 if astep ^= null () then do; 140 141 call lock$lock_ast (); 142 call thread$cin (astep, sst$level.ausedp (3)); 143 call put_aste (astep); 144 call lock$unlock_ast (); 145 146 end; 147 148 end ADD_256K_BLOCKS; 149 150 FIX_DAMAGE: 151 procedure (); 152 153 if status = error_table_$iom_wrong_number then 154 call syserr (BEEP, "iom_switches: IOM number is set to ^i, but should be ^i.", iom_id - 1, iom_number); 155 else if status = error_table_$iom_wrong_mailbox then 156 call syserr (BEEP, "iom_switches: IOM mailbox switches are ^a, but should be ^a.", 157 EXPECTED_SWITCHES (iom_id - 1), EXPECTED_SWITCHES (iom_number)); 158 else call syserr (BEEP, "iom_switches: IOM switches are incorrect."); 159 160 call syserr (ANNOUNCE, "iom_switches: Reset switches and press RETURN."); 161 162 recheck_time = clock () + 10 * 1000000; 163 do while (clock () < recheck_time); 164 temp_iom_id = iom_number + 1; /* just to waste some time */ 165 end; 166 167 wait_for_return: 168 unspec (my_console_io) = ""b; 169 my_console_io.flags.read = "1"b; 170 my_console_io.sequence_no = 0; 171 172 call ocdcm_$priority_io (addr (my_console_io)); 173 if ^my_console_io.completed then 174 goto wait_for_return; 175 176 return; 177 178 end FIX_DAMAGE; 179 180 /* DECLARATIONS */ 181 182 /* Parameter */ 183 184 dcl p_iom_index fixed bin (3) parameter; 185 dcl p_code fixed bin (35) parameter; 186 187 /* Automatic */ 188 189 dcl parm_ptr pointer; /* pointer to PARM card field */ 190 dcl iom_number fixed bin (3); /* 0-3, correspones to switch settings */ 191 dcl status fixed bin (35); /* standard system status code */ 192 dcl iom_id fixed bin; /* 1-4, indexes IOM information arrays */ 193 dcl temp_iom_id fixed bin; /* used in a calculation to waste time */ 194 dcl curr_mem_base fixed bin; /* frame number of start of next configured SC */ 195 dcl ctlr fixed bin (3); /* SC number */ 196 dcl frames_deleted dim (0:7) fixed bin; /* number of frames deleted per SC */ 197 dcl found_256k bit (1) aligned; /* indicates when we have found the correct mem block */ 198 dcl deleted_256k dim (0:7) bit (1); /* TRUE if we have deleted mem from this SC */ 199 dcl tsdw fixed bin (71); /* TempSDW */ 200 dcl ptp pointer; /* PageTable Pointer */ 201 dcl pmut_mask fixed bin (71); /* former processor mask, to be restored after critical code */ 202 dcl pmut_ptr pointer; /* return ptr from pmut, used by it later */ 203 dcl recheck_time fixed bin (71); /* the time at which we will check for fixed switches */ 204 205 dcl 1 my_console_io aligned like console_io; 206 207 /* Static, External */ 208 209 dcl error_table_$iom_wrong_number 210 fixed bin (35) external static; 211 dcl error_table_$iom_wrong_mailbox 212 fixed bin (35) external static; 213 dcl sst$astsize fixed bin external static; 214 215 dcl 1 sst$level (0:3) aligned external static, 216 2 ausedp bit (18) unaligned, 217 2 no_aste bit (18) unaligned; 218 219 220 /* Static, Constant */ 221 222 dcl ( 223 NO init ("0"b), 224 YES init ("1"b) 225 ) bit (1) aligned internal static options (constant); 226 dcl EXPECTED_SWITCHES dim (0:3) char (4) init ("1400", "2000", "2400", "3000"); 227 228 /* Entry */ 229 230 dcl syserr entry () options (variable); 231 dcl tc_util$suspend_tc entry (); 232 dcl pc$flush_core entry (); 233 dcl iom_connect$connect_and_identify 234 entry (fixed bin, fixed bin (35)); 235 dcl tc_util$resume_tc entry (); 236 dcl reconfig$del_main entry (fixed bin, fixed bin, fixed bin (35)); 237 dcl lock$lock_ast entry (); 238 dcl get_aste entry (fixed bin) returns (ptr); 239 dcl thread$out entry (ptr, bit (18)); 240 dcl lock$unlock_ast entry (); 241 dcl get_ptrs_$given_astep entry (ptr, fixed bin (71)); 242 dcl reconfig$add_main entry (fixed bin, fixed bin, fixed bin (35)); 243 dcl thread$cin entry (ptr, bit (18)); 244 dcl put_aste entry (ptr); 245 dcl privileged_mode_ut$wire_and_mask 246 entry (fixed bin (71), ptr); 247 dcl privileged_mode_ut$unwire_unmask 248 entry (fixed bin (71), ptr); 249 dcl ocdcm_$priority_io entry (ptr); 250 dcl config$find_parm entry (char (4) aligned, ptr); 251 252 /* Builtin */ 253 254 dcl addr builtin; 255 dcl addrel builtin; 256 dcl clock builtin; 257 dcl min builtin; 258 dcl null builtin; 259 dcl unspec builtin; 260 261 /* Include Files */ 262 1 1 /* BEGIN INCLUDE FILE ...aste.incl.pl1 ... */ 1 2 1 3 /* Template for an AST entry. Length = 12 words. */ 1 4 1 5 /* Words 0 to 7, and 11 are read by PC; they are read and modified by SC. 1 6* Words 8, 9 and 10 are modified by PC; they should never be modified without locking the PC lock */ 1 7 /* Modified January 1985 by Keith Loepere for multi_class. */ 1 8 1 9 dcl astep ptr; 1 10 1 11 dcl 1 aste based (astep) aligned, 1 12 1 13 (2 fp bit (18), /* forward used list rel pointer */ 1 14 2 bp bit (18), /* backward used list rel pointer */ 1 15 1 16 2 infl bit (18), /* ptr to NEXT in list of ASTE's of my brothers */ 1 17 2 infp bit (18), /* ptr to FIRST in list of ASTE's of my children */ 1 18 1 19 2 strp bit (18), /* rel pointer to process trailer */ 1 20 2 par_astep bit (18), /* rel pointer to parent aste */ 1 21 1 22 2 uid bit (36), /* segment unique id */ 1 23 1 24 2 msl bit (9), /* maximum segment length in 1024 word units */ 1 25 2 pvtx fixed bin (8), /* physical volume table index */ 1 26 2 vtocx fixed bin (17), /* vtoc entry index */ 1 27 1 28 2 usedf bit (1), /* ast entry is being used if non-zero */ 1 29 2 init bit (1), /* used bit - insure 1 lap */ 1 30 2 gtus bit (1), /* global transparent usage switch */ 1 31 2 gtms bit (1), /* global transparent modified switch */ 1 32 2 hc bit (1), /* hard core segment */ 1 33 2 hc_sdw bit (1), /* aste with sdw for hardcore seg if non-zero */ 1 34 2 any_access_on bit (1), /* any sdw allows access, unless write_access_on */ 1 35 2 write_access_on bit (1), /* any sdw allows write access */ 1 36 2 inhibit_cache bit (1), /* flag not to reset above bits */ 1 37 2 explicit_deact_ok bit (1), /* set if user can deactivate seg */ 1 38 2 deact_error bit (1), /* set if error occurred while deactivating */ 1 39 2 hc_part bit (1), /* set if pages are in a hardcore partition */ 1 40 2 fm_damaged bit (1), /* set if filemap checksum was ever bad */ 1 41 2 multi_class bit (1), /* set if page_control should watch state changes to this segment */ 1 42 2 pad1 bit (2), /* OO */ 1 43 2 dius bit (1), /* dumper in use switch */ 1 44 2 nid bit (1), /* if on prevents addtion to incremental dump map */ 1 45 2 dmpr_pad bit (1), 1 46 2 ehs bit (1), /* entry hold switch */ 1 47 2 nqsw bit (1), /* no quota switch - no checking for pages of this seg */ 1 48 2 dirsw bit (1), /* directory switch */ 1 49 2 master_dir bit (1), /* master dir - a root for the log volume */ 1 50 2 volmap_seg bit (1), /* volmap_seg for some volume */ 1 51 2 tqsw (0:1) bit (1), /* terminal quota switch - (0) for non dir pages */ 1 52 2 pad_ic bit (10), /* Used to be aste.ic */ 1 53 1 54 2 dtu bit (36), /* date and time segment last used */ 1 55 1 56 2 dtm bit (36), /* date and time segment last modified */ 1 57 1 58 1 59 2 quota (0:1) fixed bin (18) unsigned, /* sec storage quota - (0) for non dir pages */ 1 60 1 61 2 used (0:1) fixed bin (18) unsigned, /* sec storage used - (0) for non dir pages */ 1 62 1 63 2 csl bit (9), /* current segment length in 1024 words units */ 1 64 2 fmchanged bit (1), /* turned on by page if file map changed */ 1 65 2 fms bit (1), /* file modified switch */ 1 66 2 npfs bit (1), /* no page fault switch */ 1 67 2 gtpd bit (1), /* global transparent paging device switch */ 1 68 2 dnzp bit (1), /* don't null out if zero page switch */ 1 69 2 per_process bit (1), /* use master quota for this entry */ 1 70 2 ddnp bit (1), /* don't deposit nulled pages */ 1 71 2 pad2 bit (2), 1 72 2 records bit (9), /* number of records used by the seg in sec storage */ 1 73 2 np bit (9), /* number of pages in core */ 1 74 1 75 1 76 2 ht_fp bit (18), /* hash table forward rel pointer */ 1 77 2 fmchanged1 bit (1), /* value of "fmchanged" saved by pc$get_file_map */ 1 78 2 damaged bit (1), /* PC declared segment unusable */ 1 79 2 pack_ovfl bit (1), /* page fault on seg would cause pack overflow */ 1 80 2 synchronized bit (1), /* Data Management synchronized segment */ 1 81 2 pad3 bit (6), /* OOOOOOOOO */ 1 82 2 ptsi bit (2), /* page table size index */ 1 83 2 marker bit (6)) unaligned; /* marker to indicate last word of ASTE */ 1 84 1 85 1 86 dcl asta (0 : 8000) bit (36*12 /* sst-> sst.astsize */) based aligned; 1 87 1 88 1 89 dcl 1 aste_part aligned based (astep), 1 90 1 91 2 one bit (36) unaligned, /* fp and bp */ 1 92 2 two bit (36*11 - 8) unaligned, /* part that has to be zeroed when ASTE is freed */ 1 93 2 three bit (8) unaligned; /* ptsi and marker */ 1 94 1 95 1 96 dcl 1 seg_aste based (astep) aligned, /* Overlay because quota is only for dirs */ 1 97 2 pad1 bit (8*36), 1 98 2 usage fixed bin (35), /* page fault count: overlays quota */ 1 99 2 pad2 bit (3*36); 1 100 1 101 /* END INCLUDE FILE ... aste.incl.pl1 */ 263 264 2 1 /* BEGIN INCLUDE FILE syserr_constants.incl.pl1 ... 11/11/80 W. Olin Sibert */ 2 2 /* 85-02-12, EJ Sharpe - Added sorting class constants, removed AIM_MESSAGE, added new action code names. */ 2 3 /* 85-04-24, G. Palter - Renamed SYSERR_UNUSED_10 to SYSERR_RING1_ERROR to reflect its actual use. */ 2 4 2 5 /* This include file has an ALM version. Keep 'em in sync! */ 2 6 2 7 dcl ( 2 8 2 9 /* The following constants define the message action codes. This indicates 2 10*how a message is to be handled. */ 2 11 2 12 SYSERR_CRASH_SYSTEM init (1), 2 13 CRASH init (1), /* Crash the system, and bleat plaintively. */ 2 14 2 15 SYSERR_TERMINATE_PROCESS init (2), 2 16 TERMINATE_PROCESS init (2), /* Terminate the process, print the message, and beep. */ 2 17 2 18 SYSERR_PRINT_WITH_ALARM init (3), 2 19 BEEP init (3), /* Beep and print the message on the console. */ 2 20 2 21 SYSERR_PRINT_ON_CONSOLE init (0), 2 22 ANNOUNCE init (0), /* Just print the message on the console. */ 2 23 2 24 SYSERR_LOG_OR_PRINT init (4), 2 25 LOG init (4), /* Log the message, or print it if it can't be logged */ 2 26 2 27 SYSERR_LOG_OR_DISCARD init (5), 2 28 JUST_LOG init (5), /* Just try to log the message, and discard it if it can't be */ 2 29 2 30 2 31 /* The following constants are added to the normal severities to indicate 2 32*different sorting classes of messages. */ 2 33 2 34 SYSERR_SYSTEM_ERROR init (00), /* indicates a standard level system error */ 2 35 SYSERR_RING1_ERROR init (10), /* indicates an error detected in ring 1 (mseg_, RCP) */ 2 36 SYSERR_COVERT_CHANNEL init (20), /* indicates covert channel audit trail message */ 2 37 SYSERR_UNSUCCESSFUL_ACCESS init (30), /* indicates access denial audit trail message */ 2 38 SYSERR_SUCCESSFUL_ACCESS init (40) /* indicates access grant audit trail message */ 2 39 ) fixed bin internal static options (constant); 2 40 2 41 /* END INCLUDE FILE syserr_constants.incl.pl1 */ 265 266 3 1 /* BEGIN INCLUDE FILE ... sdw.incl.pl1 ... last modified 12 May 1976 */ 3 2 3 3 dcl sdwp ptr; 3 4 3 5 dcl 1 sdw based (sdwp) aligned, /* Segment Descriptor Word */ 3 6 3 7 (2 add bit (24), /* main memory address of page table */ 3 8 2 (r1, r2, r3) bit (3), /* ring brackets for the segment */ 3 9 2 df bit (1), /* directed fault bit (0 => fault) */ 3 10 2 df_no bit (2), /* directed fault number */ 3 11 3 12 2 pad1 bit (1), 3 13 2 bound bit (14), /* boundary field (in 16 word blocks) */ 3 14 2 access, /* access bits */ 3 15 3 read bit (1), /* read permission bit */ 3 16 3 execute bit (1), /* execute permission bit */ 3 17 3 write bit (1), /* write permission bit */ 3 18 3 privileged bit (1), /* privileged bit */ 3 19 2 unpaged bit (1), /* segment is unpaged if this is 1 */ 3 20 2 entry_bound_sw bit (1), /* if this is 0 the entry bound is checked by hardware */ 3 21 2 cache bit (1), /* cache enable bit */ 3 22 2 entry_bound bit (14)) unaligned; /* entry bound */ 3 23 3 24 dcl 1 sdwa (0: 1) based (sdwp) aligned like sdw; /* SDW array (descriptor segment) */ 3 25 3 26 /* END INCLUDE FILE sdw.incl.pl1 */ 267 268 4 1 /* BEGIN INCLUDE FILE ... flagbox.incl.pl1 */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(87-02-26,Farley), approve(87-04-15,MCR7661), 4 6* audit(87-04-21,Fawcett), install(87-04-28,MR12.1-1028): 4 7* Added io_reconfig flag to inhibit BCE from attempting an emergency 4 8* shutdown when the data in memory could be corrupted. 4 9* END HISTORY COMMENTS */ 4 10 4 11 4 12 /* last modified 5/3/77 by Noel I. Morris */ 4 13 /* Modified 8/79 by R.J.C. Kissel to add FNP blast message. */ 4 14 /* Modified 7/82 BIM for recognizable sentinel field */ 4 15 /* Modified for bootload Multics flagbox starting in 8/83 by Keith Loepere. */ 4 16 4 17 /* The contents of this segment are data shared by Multics and bce. 4 18* This entity occupies the locations within the toehold starting at 40o 4 19* (not counting the toehold_used spacer at the beginning). */ 4 20 4 21 dcl flagbox$ ext; 4 22 dcl fgbxp ptr; 4 23 4 24 dcl 1 fgbx based (fgbxp) aligned, 4 25 2 toehold_used (32) bit (36) aligned, /* flagbox seg now mapped onto all of first page of toehold - 4 26* This is what was unused before. */ 4 27 2 flags (36) bit (1) unal, /* communications switches */ 4 28 2 slt_segno bit (18), /* segment # of the SLT */ 4 29 2 pad1 fixed bin, 4 30 2 rtb, /* return to bce info */ 4 31 (3 ssenb bit (1), /* "1"b if storage system enabled */ 4 32 3 call_bce bit (1), /* "1"b if bce called by operator */ 4 33 3 shut bit (1), /* "1"b if bce called after shutdown */ 4 34 3 mess bit (1), /* "1"b if message has been provided */ 4 35 3 alert bit (1), /* "1"b if audible alarm to be sounded */ 4 36 3 breakpoint bit (1), /* "1"b is breakpoint caused call to bce */ 4 37 3 manual_crash bit (1), /* either manual entry or execute fault */ 4 38 3 io_reconfig bit (1), /* "1"b if I/O reconfiguration */ 4 39 /* could cause memory corruption */ 4 40 3 pad bit (21), 4 41 3 bce_entry fixed bin (6) uns) unal, /* type of entry into bce 4 42* 00o => Multics entry 4 43* 20o => manual entry 4 44* 40o => esd entry */ 4 45 2 sentinel char (32) aligned, /* set by bce (for now) */ 4 46 2 sst_sdw bit (72), /* set by init_sst */ 4 47 2 hc_dbr bit (72), /* set by start_cpu, idle DBR */ 4 48 2 message char (64), /* message for return to bce */ 4 49 2 return_to_bce_command char (128) unal; /* command to run upon crash/shutdown */ 4 50 4 51 declare FLAGBOX_SENTINEL char (32) init ("Flagbox & Toehold Valid") int static options (constant); 4 52 4 53 /* END INCLUDE FILE ... flagbox.incl.pl1 */ 269 270 5 1 /* BEGIN INCLUDE FILE scs.incl.pl1 ... March 1983 */ 5 2 /* format: style4 */ 5 3 5 4 /* Information about system controllers */ 5 5 5 6 dcl 1 scs$controller_data (0:7) aligned ext, /* per-controller info */ 5 7 2 size fixed bin (17) unaligned, /* size (in 1024 word blocks) of this controller */ 5 8 2 base fixed bin (17) unaligned, /* abs address (0 mod 1024) for base of this controller */ 5 9 2 eima_data (4) unaligned, /* EIMA information for this controller */ 5 10 3 mask_available bit (1) unaligned, /* ON if corresponding mask exists */ 5 11 3 mask_assigned bit (1) unaligned, /* ON if mask assigned to a port */ 5 12 3 mbz bit (3) unaligned, 5 13 3 mask_assignment fixed bin (3) unaligned, /* port to which mask is assigned */ 5 14 2 info aligned, 5 15 3 online bit (1) unaligned, /* ON if controller is online */ 5 16 3 offline bit (1) unaligned, /* ON if controller is offline but can be added */ 5 17 3 store_a_online bit (1) unaligned, /* ON if store A is online */ 5 18 3 store_a1_online bit (1) unaligned, /* ON if store A1 is online */ 5 19 3 store_b_online bit (1) unaligned, /* ON if store B is online */ 5 20 3 store_b1_online bit (1) unaligned, /* ON if store B1 is online */ 5 21 3 store_b_is_lower bit (1) unaligned, /* ON if store B is lower */ 5 22 3 ext_interlaced bit (1) unaligned, /* ON if this SCU is interlaced with other SCU */ 5 23 3 int_interlaced bit (1) unaligned, /* ON if this SCU is internally interlaced */ 5 24 3 four_word bit (1) unaligned, /* ON if external interlace is 4-word */ 5 25 3 cyclic_priority (7) bit (1) unaligned, /* Cyclic priority for adjacent ports */ 5 26 3 type bit (4) unaligned, /* Model number for this controller */ 5 27 3 abs_wired bit (1) unaligned, /* ON if controller can have abs_wired pages */ 5 28 3 program bit (1) unaligned, /* PROGRAM/MANUAL switch setting */ 5 29 3 mbz bit (13) unaligned, 5 30 2 lower_store_size fixed bin (17) unaligned, /* size (in 1024 word blocks) of lower store */ 5 31 2 upper_store_size fixed bin (17) unaligned; /* size (in 1024 word blocks) of upper store */ 5 32 5 33 /* Information about CPUs */ 5 34 5 35 dcl 1 scs$processor_data (0:7) aligned ext, /* information about CPUs in the system */ 5 36 ( 5 37 2 online bit (1), /* "1"b if CPU is online */ 5 38 2 offline bit (1), /* "1"b if CPU is offline but can be added */ 5 39 2 release_mask bit (1), /* "1"b is this CPU is to give up its mask */ 5 40 2 accept_mask bit (1), /* "1"b if this CPU is to grap mask in idle loop */ 5 41 2 delete_cpu bit (1), /* "1"b if this CPU is to delete itself */ 5 42 2 interrupt_cpu bit (1), /* "1"b if this CPU takes hardware interrupts */ 5 43 2 halted_cpu bit (1), /* "1"b if this CPU has stopped itself (going to BOS) */ 5 44 2 cpu_type fixed bin (2) unsigned, /* 0 => DPS or L68, 1 => DPS8 */ 5 45 2 mbz1 bit (6), 5 46 2 cache_size fixed bin (3) unsigned, /* 0 = No cache; 1 = L68 2K cache; 5 47* 2 = DPS8 8K cache; 3 = DPS8 VS&SC 8K cache; 5 48* 4 = DPS8 VS&SC 16K cache; 5 = DPS8 VS&SC 32K cache 5 49* 7 = ignore cache size (set by ISOLTS reconfig) */ 5 50 2 mbz2 bit (12), 5 51 2 expanded_port bit (1), /* "1"b = on expanded port */ 5 52 2 expander_port fixed bin (2) unsigned, /* The actual expander port */ 5 53 2 controller_port fixed bin (3) unsigned 5 54 ) unaligned; /* Port on controller */ 5 55 5 56 dcl 1 scs$port_data (0:7) aligned external static, /* Info about what is connected to each SCU port */ 5 57 2 assigned fixed bin (4) unsigned unaligned, /* Type of device on this port */ 5 58 2 expander_port bit (1) unaligned, /* "1"b => this port has a port expander */ 5 59 2 expanded_cpu (0:3) bit (1) unaligned, /* "1"b => this expander port has a CPU attached */ 5 60 2 iom_number fixed bin (3) unsigned unaligned, /* IOM number of IOM attached to this port */ 5 61 2 cpu_number (0:3) fixed bin (3) unsigned unaligned, /* CPU number of CPU(s) attached to this port */ 5 62 /* cpu_number (0) is only one if expander_port is "0"b */ 5 63 2 pad bit (12) unaligned; 5 64 5 65 dcl 1 scs$cow (0:7) aligned external, /* Actual connect words */ 5 66 2 pad bit (36) aligned, /* Expander COW's must be odd-word */ 5 67 2 cow, 5 68 3 sub_mask bit (8) unaligned, /* Expander sub-port mask */ 5 69 3 mbz1 bit (13) unaligned, 5 70 3 expander_command bit (3) unaligned, /* Expander command. */ 5 71 3 mbz2 bit (2) unaligned, 5 72 3 expanded_port bit (1) unaligned, /* "1"b = on expanded port */ 5 73 3 expander_port fixed bin (3) unsigned unaligned, /* Port on expander for cioc */ 5 74 3 mbz3 bit (3) unaligned, 5 75 3 controller_port fixed bin (3) unaligned unsigned;/* controller port for this CPU */ 5 76 5 77 dcl 1 scs$cow_ptrs (0:7) external aligned, /* Pointers to COW's */ 5 78 2 rel_cow_ptr bit (18) unal, /* Relative pointer to COW */ 5 79 2 pad bit (12) unal, 5 80 2 tag bit (6) unal; /* Better be zero. */ 5 81 5 82 dcl 1 scs$reconfig_general_cow aligned external, /* Used during reconfig ops. */ 5 83 2 pad bit (36) aligned, 5 84 2 cow, /* Connect operand word, in odd location. */ 5 85 3 sub_mask bit (8) unaligned, /* Expander sub-port mask */ 5 86 3 mbz1 bit (13) unaligned, 5 87 3 expander_command bit (3) unaligned, /* Expander command. */ 5 88 3 mbz2 bit (9) unaligned, 5 89 3 controller_port fixed bin (3) unaligned unsigned;/* controller port for this CPU */ 5 90 5 91 /* MASKS and PATTERNS */ 5 92 5 93 dcl scs$sys_level bit (72) aligned ext; /* mask used while handling I/O interrupts */ 5 94 dcl scs$open_level bit (72) aligned ext; /* mask used during normal operation */ 5 95 dcl scs$processor_start_mask bit (72) aligned ext; /* mask used when starting up a CPU */ 5 96 dcl scs$cpu_test_mask bit (72) aligned ext; /* mask used for ISOLTS CPU testing */ 5 97 dcl scs$number_of_masks fixed bin ext; /* number of masks (starting at sys_level) */ 5 98 dcl scs$processor_start_pattern bit (36) aligned ext; /* SMIC pattern used to send processor start interrupt */ 5 99 dcl scs$cpu_test_pattern bit (36) aligned ext; /* SMIC pattern used for ISOLTS processor testing */ 5 100 5 101 /* CAM and CACHE clear info */ 5 102 5 103 dcl scs$cam_pair fixed bin (71) ext; /* instructions XEDd when CAMing and clearing CACHE */ 5 104 dcl scs$cam_wait bit (8) aligned ext; /* Used when evicting pages from main memory */ 5 105 5 106 /* MASKING INSTRUCTIONS & POINTERS */ 5 107 5 108 dcl scs$set_mask (0:7) bit (36) aligned ext; /* instructions to set mask (STAQ or SMCM) */ 5 109 dcl scs$read_mask (0:7) bit (36) aligned ext; /* instructions to read mask (LDAQ or RMCM) */ 5 110 dcl scs$mask_ptr (0:7) ptr unaligned ext; /* pointers for real or simulated masks */ 5 111 5 112 /* MISCELLANEOUS */ 5 113 5 114 dcl 1 scs$processor_test_data aligned ext, /* info used for cpu testing */ 5 115 ( 5 116 2 active bit (1), /* = "1"b if cpu currently under test */ 5 117 2 scu_state bit (2), /* state of scu being used for testing (see definition below) */ 5 118 2 pad1 bit (4), 5 119 2 req_mem fixed bin (10), /* dedicated memory required to test this cpu */ 5 120 2 cpu_tag fixed bin (5), /* tag of cpu under test */ 5 121 2 scu_tag fixed bin (5), /* tag of scu being used for cpu testing */ 5 122 2 mask_cpu fixed bin (5) 5 123 ) unaligned; /* tag of active cpu that has mask asigned to above scu */ 5 124 5 125 /* scu_state = "00"b => SCU defined by scs$processor_test_data.scu_tag not yet effected */ 5 126 /* scu_state = "01"b => all core removed from SCU, port mask not yet changed */ 5 127 /* scu_state = "10"b => all core removed from SCU, port mask changed */ 5 128 /* scu_state = "11"b => only 64k at base of SCU being used for testing, original port mask restored */ 5 129 5 130 dcl scs$idle_aptep (0:7) ptr unaligned ext; /* pointer to idle process APTE for each processor */ 5 131 5 132 dcl scs$connect_lock bit (36) aligned ext; /* lock for sending connects */ 5 133 dcl scs$reconfig_lock bit (36) aligned ext; /* Lock used during reconfiguration */ 5 134 dcl scs$trouble_flags bit (8) aligned ext; /* checkoff flags for sys_trouble stopping */ 5 135 dcl scs$bos_restart_flags bit (8) aligned ext; /* checkoff flags for restarting after sys_trouble */ 5 136 dcl scs$nprocessors fixed bin ext; /* number of runnung processors */ 5 137 dcl scs$bos_processor_tag fixed bin (3) ext; /* CPU tag of processor running BOS */ 5 138 dcl scs$faults_initialized bit (1) aligned ext; /* ON after faults have been enabled */ 5 139 dcl scs$sys_trouble_pending bit (1) aligned ext; /* sys_trouble event is pending in the system */ 5 140 dcl scs$fast_cam_pending (0:7) bit (36) aligned ext; /* checkoff cells for cam connect */ 5 141 dcl scs$interrupt_controller fixed bin (3) ext; /* port number of low order controller */ 5 142 dcl scs$processor_start_int_no fixed bin (5) ext; /* interrupt cell for starting a processor */ 5 143 dcl scs$processor bit (8) aligned ext; /* bits ON for online CPUs */ 5 144 dcl scs$processor_start_wait bit (8) aligned ext; /* checkoff flags for waiting for new processor */ 5 145 5 146 dcl scs$trouble_dbrs (0:7) fixed bin (71); /* DBR values at system crash time */ 5 147 5 148 dcl scs$port_addressing_word (0:7) bit (3) aligned ext; /* active module port number for each controller */ 5 149 5 150 dcl scs$cfg_data (0:7) fixed bin (71) aligned ext; /* RSCR-CFG data from each controller */ 5 151 5 152 dcl scs$cfg_data_save fixed bin (71) aligned ext; /* RSCR-CFG save area for ISOLTS CPU testing */ 5 153 5 154 dcl scs$expanded_ports bit (1) unaligned dim (0:7) external; 5 155 /* Which ports have expanders */ 5 156 5 157 dcl scs$processor_switch_data (0:4) bit (36) aligned ext; /* raw data from RSW 0 thru 4 */ 5 158 dcl scs$processor_switch_template (0:4) bit (36) aligned ext; /* expected data from RSW 0 thru 4 */ 5 159 dcl scs$processor_switch_compare (0:4) bit (36) aligned ext; /* discrepancies from expected data */ 5 160 dcl scs$processor_switch_mask (0:4) bit (36) aligned ext; /* masks for comparing switch data */ 5 161 5 162 dcl scs$processor_data_switch_value bit (36) aligned ext; /* Correct value for CPU data switches */ 5 163 5 164 dcl scs$controller_config_size (0:7) fixed bin (14) aligned ext; 5 165 /* Controller size on config card */ 5 166 5 167 dcl scs$reconfig_locker_id char (32) aligned ext; /* process group ID of process doing reconfiguration */ 5 168 5 169 dcl scs$scas_page_table (0:31) bit (36) aligned external static; 5 170 /* PTWs for SCAS pages */ 5 171 5 172 dcl scs$cycle_priority_template bit (7) aligned ext; /* template for setting anti-hog switches */ 5 173 dcl scs$set_cycle_switches bit (1) aligned ext; /* flag to set ant-hog switches */ 5 174 5 175 5 176 dcl ( 5 177 IOM_PORT init (1), 5 178 CPU_PORT init (2), 5 179 BULK_PORT init (3) 5 180 ) fixed bin int static options (constant); /* values for scs$port_data.assigned */ 5 181 5 182 5 183 /* END INCLUDE FILE scs.incl.pl1 */ 271 272 6 1 /* START OF: oc_data.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 6 2 6 3 6 4 /****^ HISTORY COMMENTS: 6 5* 1) change(85-11-14,Farley), approve(85-11-14,MCR6979), 6 6* audit(85-11-14,Fawcett), install(86-03-21,MR12.0-1033): 6 7* Add support for MCA 6 8* and IMU. 6 9* 2) change(85-12-03,Farley), approve(85-12-03,MCR7306), 6 10* audit(85-12-03,Fawcett), install(86-03-21,MR12.0-1033): 6 11* Fix bugs found while doing Dipper changes. 6 12* 3) change(85-12-03,Farley), approve(85-12-03,MCR7312), 6 13* audit(85-12-03,Fawcett), install(86-03-21,MR12.0-1033): 6 14* Add BCE MCA lock and unlock. 6 15* 4) change(86-08-07,Farley), approve(86-10-07,MCR7523), 6 16* audit(86-10-03,Fawcett), install(86-10-09,MR12.0-1181): 6 17* Removed timeout_factor, as it is nolonger needed. 6 18* 5) change(89-08-28,Farley), approve(89-09-18,MCR8132), 6 19* audit(89-10-10,WAAnderson), install(89-10-11,MR12.3-1091): 6 20* Increased MAX_IO_LENGTH from 132 to 256 to be consistent with 6 21* oc_trans_output_. This also affects the size of oc_data structures. Trace 6 22* entries have been reduced from 168 to 130. 6 23* END HISTORY COMMENTS */ 6 24 6 25 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 26 /* */ 6 27 /* Purpose: */ 6 28 /* */ 6 29 /* This include file describes the contents of the oc_data segment as well various other */ 6 30 /* static values utilized to interface operator's consoles. Changes to this structure that */ 6 31 /* would affect the size of the oc_data segment will require a change in the size of oc_data */ 6 32 /* as specified in the MST header. This is true because the segment is fabricated at boot */ 6 33 /* time and the size must be known prior to fabrication. */ 6 34 /* */ 6 35 /* This include file was recoded from its original version to add support for multiple */ 6 36 /* consoles. */ 6 37 /* */ 6 38 /* Re-written: 05/01/83 */ 6 39 /* */ 6 40 /* Author: E. A. Ranzenbach (Ranzenbach.Multics@M) */ 6 41 /* Location: System-M. */ 6 42 /* Release: MR10.2 */ 6 43 /* */ 6 44 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 45 /* */ 6 46 /* Modifications: */ 6 47 /* */ 6 48 /* Date Author Reason */ 6 49 /* */ 6 50 /* 840410 Edward A. Ranzenbach Cut size of I/O's to 132 chars... */ 6 51 /* 840427 Edward A. Ranzenbach Added "off" console state..." */ 6 52 /* 850111 Edward A. Ranzenbach Added lost special interrupt protection. */ 6 53 /* 850215 Paul K Farley Add pcw_ignored flag in oc_entry. */ 6 54 /* 850522 Paul K Farley Add MCA lock/unlock info. */ 6 55 /* 850827 Paul K Farley Add more info to event trace. */ 6 56 /* 850913 Paul K Farley Add timeout_factor variable to oc_entry. */ 6 57 /* 851114 Paul K Farley Remove pcw_ignored flag, imu flag will do. */ 6 58 /* */ 6 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 60 6 61 /* format: off */ 6 62 6 63 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 64 /* */ 6 65 /* The DCW list consists of an array of sixteen single word Device Control Words that are used to */ 6 66 /* drive the console devices. These DCWs are listed in their stored order followed by the effects */ 6 67 /* that they produce: */ 6 68 /* */ 6 69 /* 1 = reset status IDCW -> Reset the console channel... */ 6 70 /* 2 = write alert IDCW -> Output a bell character to the console... */ 6 71 /* 3 = write IDCW -> Put console in output mode... */ 6 72 /* 4 = write DCW -> Describes intended outgoing data transfer... */ 6 73 /* 5 = write IDCW - newline -> Put console in output mode... */ 6 74 /* 6 = write DCW - newline -> Describes newline transfer... */ 6 75 /* 7 = read IDCW -> Put the console in input mode... */ 6 76 /* 8 = read DCW -> Describes intended data transfer... */ 6 77 /* 9 = read_unechoed IDCW -> Put the console in unechoed input mode... */ 6 78 /* 10 = read_unechoed DCW -> Describes intended data transfer... */ 6 79 /* 11 = write IDCW - prompt */ 6 80 /* 12 = write DCW - prompt */ 6 81 /* 13 = write IDCW - discard -> Put console in output mode... */ 6 82 /* 14 = write DCW - discard -> Describes discard notice... */ 6 83 /* 15 = lock MCA IDCW -> Disable MCA input from console... */ 6 84 /* 16 = unlock MCA IDCW -> Enable MCA input from console... */ 6 85 /* */ 6 86 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 87 6 88 dcl oc_data$ external; /* so we can find it... */ 6 89 6 90 dcl 1 oc_data aligned based (oc_data_ptr), 6 91 2 lock bit (36), /* global lock for all of oc_data... */ 6 92 2 version char (4), /* should equal oc_data_version... */ 6 93 2 console_cnt fixed bin (17) unaligned, /* number of configured consoles... */ 6 94 2 bootload_console_idx fixed bin (17) unaligned, /* index into opc of bootload console...*/ 6 95 2 flags, 6 96 3 in_service bit (1) unaligned, /* ON => at least one usable console... */ 6 97 3 crash_on_crf bit (1) unaligned, /* ON => crash on recovery failure... */ 6 98 3 mc_io_enabled bit (1) unaligned, /* ON => MC is handling I/O... */ 6 99 3 list_consoles bit (1) unaligned, /* ON => list the console assignments...*/ 6 100 3 printer_on bit (1) unaligned, /* ON => echo read characters... */ 6 101 3 write_q_full bit (1) unaligned, /* ON => the write queue is full... */ 6 102 3 must_have_console bit (1) unaligned, /* ON => we must have a real console... */ 6 103 3 pad_oc_data_flags bit (29) unaligned, /* pad to word boundry... */ 6 104 2 no_lock_flags, /* these flags can be modified without */ 6 105 /* lock protection... */ 6 106 3 got_special_int bit (1) unaligned, /* we could not process this special... */ 6 107 3 pad_no_lock_flags bit (35) unaligned, 6 108 2 pad_misc fixed bin (35), /* to preserve even word alignment... */ 6 109 2 prompt char (8), /* string used to prompt for input... */ 6 110 2 discard_notice char (24), /* displayed at BREAK condition... */ 6 111 2 write_return bit (36), /* newline string = PAD PAD CR NL... */ 6 112 2 abs_addr fixed bin (26), /* absolute address of oc_data$... */ 6 113 2 status_ptr ptr, /* points to IOM status word... */ 6 114 2 io_ptr ptr, /* -> I/O being processed... */ 6 115 2 last_read_queued fixed bin (71), /* last time a READ was queued... */ 6 116 2 last_write_queued fixed bin (71), /* last time a WRITE was queued... */ 6 117 2 last_poll_time fixed bin (71), /* last time of timeout poll by pxss... */ 6 118 2 max_computed_io_time fixed bin (71), /* maximum time an I/O could take... */ 6 119 2 err_event_cid fixed bin (71), /* channel used to signal inop state... */ 6 120 2 err_event_pid bit (36), /* ID of process handling inop states...*/ 6 121 2 reader_process_id bit (36), /* only process allowed to read... */ 6 122 2 next_free_write fixed bin (17) unaligned, /* index of the next free WRITE slot... */ 6 123 2 next_event fixed bin (17) unaligned, /* next event index... */ 6 124 2 stacked_read_cnt fixed bin (17) unaligned, /* READ stack... */ 6 125 2 pad_oc_data bit (18) unaligned, 6 126 2 priority_io like console_io, /* oc_data|42(8)... */ 6 127 2 read_io like console_io, /* oc_data|154(8)... */ 6 128 2 write_queue (WRITE_QUEUE_SIZE) /* oc_data|266(8)... */ 6 129 like console_io, 6 130 2 meters, /* metering cell at oc_data|1406... */ 6 131 3 pushed_read_cnt fixed bin (35), /* count of times read stack was used...*/ 6 132 3 write_q_full_cnt fixed bin (35), /* count of WRITE fails for no room... */ 6 133 3 queued_special_int_count 6 134 fixed bin (35), 6 135 3 pad_meters(7) fixed bin (35), /* for future use... */ 6 136 2 opc (MAX_OPC_CNT) /* oc_data|1420, 1454, 1510, 1544, 1600...*/ 6 137 like oc_entry, /* 1634, 1670, 1724... */ 6 138 2 event (EVENT_QUEUE_SIZE) /* oc_data|1760 thru oc_data|3777... */ 6 139 like oc_event; 6 140 6 141 6 142 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 143 /* */ 6 144 /* The following structure describes a configured console. */ 6 145 /* */ 6 146 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 147 6 148 6 149 dcl 1 oc_entry aligned based (oc_entry_ptr), /* one for each console 34(8) words... */ 6 150 2 name char (4), /* name of this console, i.e. "opca"... */ 6 151 2 opc_idx fixed bin (17) unaligned, /* index of this entry in opc array... */ 6 152 2 model fixed bin (17) unaligned, /* model of the console... */ 6 153 2 flags, 6 154 3 active bit (1) unaligned, /* ON => this entry is in use... */ 6 155 3 assigned bit (1) unaligned, /* ON => io_manager knows device... */ 6 156 3 bootload_console bit (1) unaligned, /* ON => this is the bootload console...*/ 6 157 3 alternate bit (1) unaligned, /* ON => console used if active fails...*/ 6 158 3 inop_device bit (1) unaligned, /* ON => console is inoperative... */ 6 159 3 io_device bit (1) unaligned, /* ON => console is not available to us.*/ 6 160 3 no_device bit (1) unaligned, /* ON => console has been deleted... */ 6 161 3 config_change bit (1) unaligned, /* ON => config change has occurred... */ 6 162 3 prompt bit (1) unaligned, /* ON => prompt for input... */ 6 163 3 pcw_io bit (1) unaligned, /* ON => use PCW's instead of IDCW's... */ 6 164 3 io_in_progress bit (1) unaligned, /* ON => I/O op is in progress... */ 6 165 3 got_special_int bit (1) unaligned, /* ON => RE(TURN QUEST) key was hit... */ 6 166 3 oper_request bit (1) unaligned, /* ON => operator has hit request key...*/ 6 167 3 discard bit (1) unaligned, /* ON => discard output... */ 6 168 3 discarded bit (1) unaligned, /* ON => (output discarded) printed... */ 6 169 3 read_unechoed_option /* ON => read_unechoed option installed.*/ 6 170 bit (1) unaligned, /* option must not be installed... */ 6 171 3 imu bit (1) unaligned, /* ON => console located in an IMU... */ 6 172 3 pad_flag bit (19) unaligned, /* pad to word boundry... */ 6 173 2 channel char (8), /* name of this console's channel... */ 6 174 2 device_idx fixed bin (35), /* operator's console device id... */ 6 175 2 line_leng fixed bin (17) unaligned, /* line length of the console... */ 6 176 2 dcw_list_idx fixed bin (17) unaligned, /* DCW list in progess... */ 6 177 2 retry_cnt fixed bin (17) unaligned, /* times I/O op has been retried... */ 6 178 2 RESERVED_PAD fixed bin (17) unaligned, /* pad to oc_entry + 10(8)... */ 6 179 2 io_time fixed bin (71), /* time last I/O began... */ 6 180 2 status_word bit (36), /* last valid status word received... */ 6 181 2 dcw_list (16) bit (36), /* DCWs used to drive the console... */ 6 182 2 pad_oc_entry_end bit (36); /* pad to 34(8) words... */ 6 183 6 184 6 185 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 186 /* */ 6 187 /* This is the format of a console I/O. A pointer to this structure is passed to us by the process */ 6 188 /* wishing to perform a console I/O. The caller will fill in the following things for a read I/O: */ 6 189 /* */ 6 190 /* console_io.event_chan - Will be an event channel to wake the user on when the */ 6 191 /* I/O completes. */ 6 192 /* */ 6 193 /* console_io.read - Set to "1"b indicating a read. */ 6 194 /* */ 6 195 /* For a write the following information is supplied: */ 6 196 /* */ 6 197 /* console_io.alert - Set to "1"b if the console alarm is to be on for the */ 6 198 /* write. */ 6 199 /* */ 6 200 /* console_io.read - Set to "0"b. */ 6 201 /* */ 6 202 /* console_io.sequence_no - Set to the syserr sequence number for syserr calls. */ 6 203 /* */ 6 204 /* console_io.leng - Set to the word length of the message to be written. */ 6 205 /* */ 6 206 /* console_io.text - Set to the text of the message. */ 6 207 /* */ 6 208 /* In all cases ocdcm_ will properly reset those items not necessary to the type of I/O being */ 6 209 /* performed. */ 6 210 /* */ 6 211 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 212 6 213 dcl 1 console_io aligned based (console_io_ptr), /* format of a I/O, 112(8) words... */ 6 214 2 time_queued fixed bin (71), /* 0 indicates a free entry... */ 6 215 2 event_chan fixed bin (71), /* to send wakeup to when I/O completes.*/ 6 216 2 process_id bit (36), /* of the caller... */ 6 217 2 console char (4), /* name of the console the I/O went to..*/ 6 218 2 flags, /* start at console_io + 6(8)... */ 6 219 3 alert bit (1) unaligned, /* ON => ring bell first... */ 6 220 3 read bit (1) unaligned, /* ON => this is a read request... */ 6 221 3 alerted bit (1) unaligned, /* ON => we have successfully alerted...*/ 6 222 3 prompted bit (1) unaligned, /* ON => we have successfully prompted..*/ 6 223 3 in_progress bit (1) unaligned, /* ON => I/O has been started... */ 6 224 3 completed bit (1) unaligned, /* ON => the I/O has completed... */ 6 225 3 retry_reset bit (1) unaligned, /* ON => I/O was reset by retry_io... */ 6 226 3 pad_flag bit (29) unaligned, /* pad to word boundry... */ 6 227 2 sequence_no fixed bin (35), /* syserr sequence number... */ 6 228 2 leng fixed bin (17) unaligned, /* in words of the I/O... */ 6 229 2 MBZ fixed bin (17) unaligned, /* reserved for future use... */ 6 230 2 pad_text fixed bin (35), /* I/O must start on even word boundry..*/ 6 231 2 text char (MAX_IO_LENGTH); /* the actual I/O... */ 6 232 6 233 6 234 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 235 /* */ 6 236 /* The following structure is used to log an event occurring in in the console software. */ 6 237 /* */ 6 238 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 6 239 6 240 6 241 dcl 1 oc_event aligned based (oc_event_ptr), /* each event is 10(8) words long... */ 6 242 2 time fixed bin (71), /* time event took place... */ 6 243 2 opc_name char (4), /* bootload console at time of event... */ 6 244 2 opc_flags like oc_entry.flags, /* bootload console flags... */ 6 245 2 process_id bit (36), /* process logging the event... */ 6 246 2 event_number fixed bin (35), /* number of the event being logged... */ 6 247 2 event_io_ptr ptr; /* ptr to I/O in progress during event..*/ 6 248 6 249 dcl ( /* indices for ease of use... */ 6 250 RESET_DCW init (1), 6 251 ALERT_DCW init (2), 6 252 WRITE_DCW init (3), 6 253 NEWLINE_DCW init (5), 6 254 READ_DCW init (7), 6 255 READ_UNECHOED_DCW init (9), 6 256 PROMPT_DCW init (11), 6 257 DISCARD_DCW init (13), 6 258 LOCK_MCA_DCW init (15), 6 259 UNLOCK_MCA_DCW init (16) 6 260 ) fixed bin (17) 6 261 internal static options (constant); 6 262 dcl ( /* list of event numbers... */ 6 263 INIT_OC_DATA init (1), 6 264 GOT_SPECIAL_INT init (2), 6 265 PRIORITY_OUTPUT init (3), 6 266 QUEUED_READ init (4), 6 267 QUEUED_WRITE init (5), 6 268 STARTED_READ init (6), 6 269 STARTED_UNECHOED_READ init (7), 6 270 STARTED_WRITE init (8), 6 271 RESET_CHANNEL init (9), 6 272 SENT_ALERT init (10), 6 273 SENT_NEWLINE init (11), 6 274 SENT_PROMPT init (12), 6 275 TERMINATED_RESET init (13), 6 276 TERMINATED_ALERT init (14), 6 277 TERMINATED_NEWLINE init (15), 6 278 TERMINATED_PROMPT init (16), 6 279 TERMINATED_READ init (17), 6 280 TERMINATED_WRITE init (18), 6 281 SENT_WAKEUP init (19), 6 282 READ_PICKUP init (20), 6 283 PUSHED_READ init (21), 6 284 POPPED_READ init (22), 6 285 READ_NOT_IN_PROGRESS init (23), 6 286 LOGGED_ERROR init (24), 6 287 IO_TIMEOUT init (25), 6 288 RETRY_IO init (26), 6 289 GOT_LOCK init (27), 6 290 FREED_LOCK init (28), 6 291 DISCARDED_OUTPUT init (29), 6 292 SENT_MC_IO init (30), 6 293 SENT_MC_PRIORITY_IO init (31), 6 294 MC_IO_PICKUP init (32), 6 295 MC_IO_FAILURE init (33), 6 296 LOCK_MCA_IO init (34), 6 297 UNLOCK_MCA_IO init (35), 6 298 TERMINATED_MCA_LOCK init (36), 6 299 TERMINATED_MCA_UNLOCK init (37) 6 300 ) fixed bin (35) 6 301 internal static options (constant); 6 302 6 303 dcl oc_data_version char (4) init ("1.3") /* for general information... */ 6 304 static internal options (constant); 6 305 6 306 dcl ( 6 307 oc_data_ptr, 6 308 oc_entry_ptr, 6 309 oc_event_ptr, 6 310 console_io_ptr 6 311 ) ptr; 6 312 6 313 dcl ( 6 314 MAX_OPC_CNT init (8), /* maximum number of consoles... */ 6 315 MAX_RETRIES init (2), /* we retry I/O ops this many times... */ 6 316 EVENT_QUEUE_SIZE init (130), /* use up the rest of the 2 pages... */ 6 317 WRITE_QUEUE_SIZE init (8) /* number of queued writes allowed... */ 6 318 ) 6 319 fixed bin (17) 6 320 internal static options (constant); 6 321 6 322 dcl MAX_IMU_IO_TIME fixed bin (17) /* longest possible IMU I/O time... */ 6 323 internal static options (constant) 6 324 init (150); /* 2 minutes 30 seconds... */ 6 325 6 326 dcl MAX_IO_TIME (16) fixed bin (17) /* maximum time the associated I/O */ 6 327 internal static options (constant) /* operation is allowed to take in */ 6 328 init /* seconds... */ 6 329 ( 6 330 1, /* RESET_STATUS... */ 6 331 1, /* WRITE ALERT... */ 6 332 10, /* WRITE DATA... */ 6 333 0, /* DUMMY for WRITE DATA DCW... */ 6 334 2, /* WRITE CR, NL... */ 6 335 0, /* DUMMY for WRITE CR, NL DCW... */ 6 336 90, /* READ DATA... */ 6 337 0, /* DUMMY for READ DATA DCW... */ 6 338 90, /* READ_UNECHOED DATA... */ 6 339 0, /* DUMMY for READ_UNECHOED DATA DCW... */ 6 340 1, /* WRITE PROMPT... */ 6 341 0, /* DUMMY for WRITE PROMPT DCW... */ 6 342 10, /* DISCARD DCW... */ 6 343 0, /* DUMMY for DISCARD DCW... */ 6 344 30, /* LOCK MCA IO... */ 6 345 30 /* UNLOCK MCA IO... */ 6 346 ); 6 347 6 348 dcl MAX_IO_LENGTH fixed bin (17) 6 349 internal static options (constant) 6 350 init (256); /* in characters... */ 6 351 dcl MAX_MAX_IO_TIME fixed bin (17) /* longest possible I/O time... */ 6 352 internal static options (constant) 6 353 init (150); /* should be the same as the longest... */ 6 354 6 355 6 356 /* END OF: oc_data.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 273 274 275 end iom_switches$validate; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/11/89 0802.6 iom_switches.pl1 >spec>install>1110>iom_switches.pl1 263 1 01/30/85 1523.9 aste.incl.pl1 >ldd>include>aste.incl.pl1 265 2 05/17/85 0615.7 syserr_constants.incl.pl1 >ldd>include>syserr_constants.incl.pl1 267 3 09/14/76 0759.8 sdw.incl.pl1 >ldd>include>sdw.incl.pl1 269 4 04/30/87 1513.7 flagbox.incl.pl1 >ldd>include>flagbox.incl.pl1 271 5 10/12/83 0943.5 scs.incl.pl1 >ldd>include>scs.incl.pl1 273 6 10/12/89 2017.7 oc_data.incl.pl1 >ldd>include>oc_data.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. ANNOUNCE 000017 constant fixed bin(17,0) initial dcl 2-7 set ref 160* BEEP 000016 constant fixed bin(17,0) initial dcl 2-7 set ref 153* 155* 158* EXPECTED_SWITCHES 000134 automatic char(4) initial array packed unaligned dcl 226 set ref 155* 155* 226* 226* 226* 226* MAX_IO_LENGTH constant fixed bin(17,0) initial dcl 6-348 ref 167 205 NO constant bit(1) initial dcl 222 ref 70 90 YES constant bit(1) initial dcl 222 ref 47 87 100 101 addr builtin function dcl 254 ref 46 172 172 addrel builtin function dcl 255 ref 120 astep 000140 automatic pointer dcl 1-9 set ref 83* 115* 116* 118 119* 120 139 142* 143* ausedp 000016 external static bit(18) array level 2 packed packed unaligned dcl 215 set ref 116* 142* base 0(18) 000066 external static fixed bin(17,0) array level 2 packed packed unaligned dcl 5-6 ref 93 134 clock builtin function dcl 256 ref 162 163 completed 6(05) 000134 automatic bit(1) level 3 packed packed unaligned dcl 205 set ref 173 config$find_parm 000062 constant entry external dcl 250 ref 30 console_io based structure level 1 dcl 6-213 ctlr 000107 automatic fixed bin(3,0) dcl 195 set ref 91* 93 93 93 97 97 98 101 102 104* 132* 134 134 134* curr_mem_base 000106 automatic fixed bin(17,0) dcl 194 set ref 84* 93 98* 102* 102 deleted_256k 000121 automatic bit(1) array packed unaligned dcl 198 set ref 101* 112 error_table_$iom_wrong_mailbox 000012 external static fixed bin(35,0) dcl 211 ref 155 error_table_$iom_wrong_number 000010 external static fixed bin(35,0) dcl 209 ref 153 fgbx based structure level 1 dcl 4-24 fgbxp 000142 automatic pointer dcl 4-22 set ref 46* 47 70 flagbox$ 000064 external static fixed bin(17,0) dcl 4-21 set ref 46 flags based structure array level 3 in structure "oc_data" dcl 6-90 in procedure "iom_switches$validate" flags 6 000134 automatic structure level 2 in structure "my_console_io" dcl 205 in procedure "iom_switches$validate" flags 2 based structure level 2 in structure "oc_entry" dcl 6-149 in procedure "iom_switches$validate" found_256k 000120 automatic bit(1) dcl 197 set ref 87* 88 90* 91 100* frames_deleted 000110 automatic fixed bin(17,0) array dcl 196 set ref 85* 97* 98* 102 104* 134 134* get_aste 000036 constant entry external dcl 238 ref 115 get_ptrs_$given_astep 000044 constant entry external dcl 241 ref 119 info 2 000066 external static structure array level 2 dcl 5-6 io_reconfig 43(07) based bit(1) level 3 packed packed unaligned dcl 4-24 set ref 47* 70* iom_connect$connect_and_identify 000026 constant entry external dcl 233 ref 55 iom_id 000104 automatic fixed bin(17,0) dcl 192 set ref 54* 55* 62 153 155 iom_number 000102 automatic fixed bin(3,0) dcl 190 set ref 36* 54 153* 155 164 lock$lock_ast 000034 constant entry external dcl 237 ref 114 141 lock$unlock_ast 000042 constant entry external dcl 240 ref 117 144 min builtin function dcl 257 ref 97 my_console_io 000134 automatic structure level 1 dcl 205 set ref 167* 172 172 null builtin function dcl 258 ref 29 31 83 118 139 oc_entry based structure level 1 dcl 6-149 oc_event based structure level 1 dcl 6-241 ocdcm_$priority_io 000060 constant entry external dcl 249 ref 172 online 2 000066 external static bit(1) array level 3 packed packed unaligned dcl 5-6 ref 93 p_code parameter fixed bin(35,0) dcl 185 set ref 21 32* 66* p_iom_index parameter fixed bin(3,0) dcl 184 ref 21 36 parm_ptr 000100 automatic pointer dcl 189 set ref 29* 30* 31 pc$flush_core 000024 constant entry external dcl 232 ref 43 pmut_mask 000126 automatic fixed bin(71,0) dcl 201 set ref 50* 57* pmut_ptr 000130 automatic pointer dcl 202 set ref 50* 57* privileged_mode_ut$unwire_unmask 000056 constant entry external dcl 247 ref 57 privileged_mode_ut$wire_and_mask 000054 constant entry external dcl 245 ref 50 ptp 000124 automatic pointer dcl 200 set ref 120* put_aste 000052 constant entry external dcl 244 ref 143 read 6(01) 000134 automatic bit(1) level 3 packed packed unaligned dcl 205 set ref 169* recheck_time 000132 automatic fixed bin(71,0) dcl 203 set ref 162* 163 reconfig$add_main 000046 constant entry external dcl 242 ref 134 reconfig$del_main 000032 constant entry external dcl 236 ref 98 rtb 43 based structure level 2 dcl 4-24 scs$controller_data 000066 external static structure array level 1 dcl 5-6 sdw based structure level 1 dcl 3-5 sequence_no 7 000134 automatic fixed bin(35,0) level 2 dcl 205 set ref 170* size 000066 external static fixed bin(17,0) array level 2 packed packed unaligned dcl 5-6 ref 93 97 sst$astsize 000014 external static fixed bin(17,0) dcl 213 ref 120 sst$level 000016 external static structure array level 1 dcl 215 status 000103 automatic fixed bin(35,0) dcl 191 set ref 55* 59 66 98* 99 134* 153 155 syserr 000020 constant entry external dcl 230 ref 153 155 158 160 tc_util$resume_tc 000030 constant entry external dcl 235 ref 71 tc_util$suspend_tc 000022 constant entry external dcl 231 ref 41 temp_iom_id 000105 automatic fixed bin(17,0) dcl 193 set ref 164* thread$cin 000050 constant entry external dcl 243 ref 142 thread$out 000040 constant entry external dcl 239 ref 116 tsdw 000122 automatic fixed bin(71,0) dcl 199 set ref 119* unspec builtin function dcl 259 set ref 112 167* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALERT_DCW internal static fixed bin(17,0) initial dcl 6-249 BULK_PORT internal static fixed bin(17,0) initial dcl 5-176 CPU_PORT internal static fixed bin(17,0) initial dcl 5-176 CRASH internal static fixed bin(17,0) initial dcl 2-7 DISCARDED_OUTPUT internal static fixed bin(35,0) initial dcl 6-262 DISCARD_DCW internal static fixed bin(17,0) initial dcl 6-249 EVENT_QUEUE_SIZE internal static fixed bin(17,0) initial dcl 6-313 FLAGBOX_SENTINEL internal static char(32) initial packed unaligned dcl 4-51 FREED_LOCK internal static fixed bin(35,0) initial dcl 6-262 GOT_LOCK internal static fixed bin(35,0) initial dcl 6-262 GOT_SPECIAL_INT internal static fixed bin(35,0) initial dcl 6-262 INIT_OC_DATA internal static fixed bin(35,0) initial dcl 6-262 IOM_PORT internal static fixed bin(17,0) initial dcl 5-176 IO_TIMEOUT internal static fixed bin(35,0) initial dcl 6-262 JUST_LOG internal static fixed bin(17,0) initial dcl 2-7 LOCK_MCA_DCW internal static fixed bin(17,0) initial dcl 6-249 LOCK_MCA_IO internal static fixed bin(35,0) initial dcl 6-262 LOG internal static fixed bin(17,0) initial dcl 2-7 LOGGED_ERROR internal static fixed bin(35,0) initial dcl 6-262 MAX_IMU_IO_TIME internal static fixed bin(17,0) initial dcl 6-322 MAX_IO_TIME internal static fixed bin(17,0) initial array dcl 6-326 MAX_MAX_IO_TIME internal static fixed bin(17,0) initial dcl 6-351 MAX_OPC_CNT internal static fixed bin(17,0) initial dcl 6-313 MAX_RETRIES internal static fixed bin(17,0) initial dcl 6-313 MC_IO_FAILURE internal static fixed bin(35,0) initial dcl 6-262 MC_IO_PICKUP internal static fixed bin(35,0) initial dcl 6-262 NEWLINE_DCW internal static fixed bin(17,0) initial dcl 6-249 POPPED_READ internal static fixed bin(35,0) initial dcl 6-262 PRIORITY_OUTPUT internal static fixed bin(35,0) initial dcl 6-262 PROMPT_DCW internal static fixed bin(17,0) initial dcl 6-249 PUSHED_READ internal static fixed bin(35,0) initial dcl 6-262 QUEUED_READ internal static fixed bin(35,0) initial dcl 6-262 QUEUED_WRITE internal static fixed bin(35,0) initial dcl 6-262 READ_DCW internal static fixed bin(17,0) initial dcl 6-249 READ_NOT_IN_PROGRESS internal static fixed bin(35,0) initial dcl 6-262 READ_PICKUP internal static fixed bin(35,0) initial dcl 6-262 READ_UNECHOED_DCW internal static fixed bin(17,0) initial dcl 6-249 RESET_CHANNEL internal static fixed bin(35,0) initial dcl 6-262 RESET_DCW internal static fixed bin(17,0) initial dcl 6-249 RETRY_IO internal static fixed bin(35,0) initial dcl 6-262 SENT_ALERT internal static fixed bin(35,0) initial dcl 6-262 SENT_MC_IO internal static fixed bin(35,0) initial dcl 6-262 SENT_MC_PRIORITY_IO internal static fixed bin(35,0) initial dcl 6-262 SENT_NEWLINE internal static fixed bin(35,0) initial dcl 6-262 SENT_PROMPT internal static fixed bin(35,0) initial dcl 6-262 SENT_WAKEUP internal static fixed bin(35,0) initial dcl 6-262 STARTED_READ internal static fixed bin(35,0) initial dcl 6-262 STARTED_UNECHOED_READ internal static fixed bin(35,0) initial dcl 6-262 STARTED_WRITE internal static fixed bin(35,0) initial dcl 6-262 SYSERR_COVERT_CHANNEL internal static fixed bin(17,0) initial dcl 2-7 SYSERR_CRASH_SYSTEM internal static fixed bin(17,0) initial dcl 2-7 SYSERR_LOG_OR_DISCARD internal static fixed bin(17,0) initial dcl 2-7 SYSERR_LOG_OR_PRINT internal static fixed bin(17,0) initial dcl 2-7 SYSERR_PRINT_ON_CONSOLE internal static fixed bin(17,0) initial dcl 2-7 SYSERR_PRINT_WITH_ALARM internal static fixed bin(17,0) initial dcl 2-7 SYSERR_RING1_ERROR internal static fixed bin(17,0) initial dcl 2-7 SYSERR_SUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 2-7 SYSERR_SYSTEM_ERROR internal static fixed bin(17,0) initial dcl 2-7 SYSERR_TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 2-7 SYSERR_UNSUCCESSFUL_ACCESS internal static fixed bin(17,0) initial dcl 2-7 TERMINATED_ALERT internal static fixed bin(35,0) initial dcl 6-262 TERMINATED_MCA_LOCK internal static fixed bin(35,0) initial dcl 6-262 TERMINATED_MCA_UNLOCK internal static fixed bin(35,0) initial dcl 6-262 TERMINATED_NEWLINE internal static fixed bin(35,0) initial dcl 6-262 TERMINATED_PROMPT internal static fixed bin(35,0) initial dcl 6-262 TERMINATED_READ internal static fixed bin(35,0) initial dcl 6-262 TERMINATED_RESET internal static fixed bin(35,0) initial dcl 6-262 TERMINATED_WRITE internal static fixed bin(35,0) initial dcl 6-262 TERMINATE_PROCESS internal static fixed bin(17,0) initial dcl 2-7 UNLOCK_MCA_DCW internal static fixed bin(17,0) initial dcl 6-249 UNLOCK_MCA_IO internal static fixed bin(35,0) initial dcl 6-262 WRITE_DCW internal static fixed bin(17,0) initial dcl 6-249 WRITE_QUEUE_SIZE internal static fixed bin(17,0) initial dcl 6-313 asta based bit(432) array dcl 1-86 aste based structure level 1 dcl 1-11 aste_part based structure level 1 dcl 1-89 console_io_ptr automatic pointer dcl 6-306 oc_data based structure level 1 dcl 6-90 oc_data$ external static fixed bin(17,0) dcl 6-88 oc_data_ptr automatic pointer dcl 6-306 oc_data_version internal static char(4) initial packed unaligned dcl 6-303 oc_entry_ptr automatic pointer dcl 6-306 oc_event_ptr automatic pointer dcl 6-306 scs$bos_processor_tag external static fixed bin(3,0) dcl 5-137 scs$bos_restart_flags external static bit(8) dcl 5-135 scs$cam_pair external static fixed bin(71,0) dcl 5-103 scs$cam_wait external static bit(8) dcl 5-104 scs$cfg_data external static fixed bin(71,0) array dcl 5-150 scs$cfg_data_save external static fixed bin(71,0) dcl 5-152 scs$connect_lock external static bit(36) dcl 5-132 scs$controller_config_size external static fixed bin(14,0) array dcl 5-164 scs$cow external static structure array level 1 dcl 5-65 scs$cow_ptrs external static structure array level 1 dcl 5-77 scs$cpu_test_mask external static bit(72) dcl 5-96 scs$cpu_test_pattern external static bit(36) dcl 5-99 scs$cycle_priority_template external static bit(7) dcl 5-172 scs$expanded_ports external static bit(1) array packed unaligned dcl 5-154 scs$fast_cam_pending external static bit(36) array dcl 5-140 scs$faults_initialized external static bit(1) dcl 5-138 scs$idle_aptep external static pointer array packed unaligned dcl 5-130 scs$interrupt_controller external static fixed bin(3,0) dcl 5-141 scs$mask_ptr external static pointer array packed unaligned dcl 5-110 scs$nprocessors external static fixed bin(17,0) dcl 5-136 scs$number_of_masks external static fixed bin(17,0) dcl 5-97 scs$open_level external static bit(72) dcl 5-94 scs$port_addressing_word external static bit(3) array dcl 5-148 scs$port_data external static structure array level 1 dcl 5-56 scs$processor external static bit(8) dcl 5-143 scs$processor_data external static structure array level 1 dcl 5-35 scs$processor_data_switch_value external static bit(36) dcl 5-162 scs$processor_start_int_no external static fixed bin(5,0) dcl 5-142 scs$processor_start_mask external static bit(72) dcl 5-95 scs$processor_start_pattern external static bit(36) dcl 5-98 scs$processor_start_wait external static bit(8) dcl 5-144 scs$processor_switch_compare external static bit(36) array dcl 5-159 scs$processor_switch_data external static bit(36) array dcl 5-157 scs$processor_switch_mask external static bit(36) array dcl 5-160 scs$processor_switch_template external static bit(36) array dcl 5-158 scs$processor_test_data external static structure level 1 dcl 5-114 scs$read_mask external static bit(36) array dcl 5-109 scs$reconfig_general_cow external static structure level 1 dcl 5-82 scs$reconfig_lock external static bit(36) dcl 5-133 scs$reconfig_locker_id external static char(32) dcl 5-167 scs$scas_page_table external static bit(36) array dcl 5-169 scs$set_cycle_switches external static bit(1) dcl 5-173 scs$set_mask external static bit(36) array dcl 5-108 scs$sys_level external static bit(72) dcl 5-93 scs$sys_trouble_pending external static bit(1) dcl 5-139 scs$trouble_dbrs automatic fixed bin(71,0) array dcl 5-146 scs$trouble_flags external static bit(8) dcl 5-134 sdwa based structure array level 1 dcl 3-24 sdwp automatic pointer dcl 3-3 seg_aste based structure level 1 dcl 1-96 NAMES DECLARED BY EXPLICIT CONTEXT. ADD_256K_BLOCKS 000477 constant entry internal dcl 129 ref 72 DEL_256K_BLOCKS 000302 constant entry internal dcl 80 ref 38 FIX_DAMAGE 000573 constant entry internal dcl 150 ref 63 iom_switches$validate 000114 constant entry external dcl 21 test_loop 000220 constant label dcl 50 set ref 64 wait_for_return 000741 constant label dcl 167 ref 173 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1320 1410 776 1330 Length 1732 776 70 305 322 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME iom_switches$validate 206 external procedure is an external procedure. DEL_256K_BLOCKS internal procedure shares stack frame of external procedure iom_switches$validate. ADD_256K_BLOCKS internal procedure shares stack frame of external procedure iom_switches$validate. FIX_DAMAGE internal procedure shares stack frame of external procedure iom_switches$validate. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME iom_switches$validate 000100 parm_ptr iom_switches$validate 000102 iom_number iom_switches$validate 000103 status iom_switches$validate 000104 iom_id iom_switches$validate 000105 temp_iom_id iom_switches$validate 000106 curr_mem_base iom_switches$validate 000107 ctlr iom_switches$validate 000110 frames_deleted iom_switches$validate 000120 found_256k iom_switches$validate 000121 deleted_256k iom_switches$validate 000122 tsdw iom_switches$validate 000124 ptp iom_switches$validate 000126 pmut_mask iom_switches$validate 000130 pmut_ptr iom_switches$validate 000132 recheck_time iom_switches$validate 000134 EXPECTED_SWITCHES iom_switches$validate 000134 my_console_io iom_switches$validate 000140 astep iom_switches$validate 000142 fgbxp iom_switches$validate THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac alloc_auto_adj ext_entry clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. config$find_parm get_aste get_ptrs_$given_astep iom_connect$connect_and_identify lock$lock_ast lock$unlock_ast ocdcm_$priority_io pc$flush_core privileged_mode_ut$unwire_unmask privileged_mode_ut$wire_and_mask put_aste reconfig$add_main reconfig$del_main syserr tc_util$resume_tc tc_util$suspend_tc thread$cin thread$out THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$iom_wrong_mailbox error_table_$iom_wrong_number flagbox$ scs$controller_data sst$astsize sst$level LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 21 000110 205 000121 226 000127 29 000151 30 000153 31 000165 32 000171 33 000173 36 000174 38 000200 41 000201 43 000206 46 000213 47 000216 50 000220 54 000231 55 000234 57 000245 59 000256 62 000260 63 000262 64 000263 66 000264 67 000267 70 000270 71 000273 72 000300 76 000301 80 000302 83 000303 84 000305 85 000306 87 000316 88 000320 90 000322 91 000323 93 000331 97 000352 98 000360 99 000372 100 000374 101 000376 102 000402 103 000404 104 000405 108 000407 110 000411 112 000412 114 000415 115 000422 116 000435 117 000447 118 000454 119 000460 120 000471 125 000476 129 000477 132 000500 134 000505 137 000531 139 000533 141 000537 142 000544 143 000556 144 000565 148 000572 150 000573 153 000574 155 000633 158 000667 160 000706 162 000726 163 000731 164 000735 165 000740 167 000741 169 000754 170 000756 172 000757 173 000770 176 000774 ----------------------------------------------------------- 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