COMPILATION LISTING OF SEGMENT !BBBJZgCBdlkwLD Compiled by: Multics PL/I Compiler, Release 32f, of October 9, 1989 Compiled at: Bull HN, Phoenix AZ, System-M Compiled on: 10/11/89 1236.9 mst Wed Options: table map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 6* * * 7* *********************************************************** */ 8 9 /* HISTORY COMMENTS: 10* 1) change(88-06-03,Parisek), approve(88-06-10,MCR7920), 11* audit(88-06-23,Hunter), install(87-07-05,MR12.2-1053): 12* - Change reference of pitmsg.incl.pl1 to pit.incl.pl1 as the 13* pitmsg.incl.pl1 name was removed from pit.incl.pl1 in MR12.1. 14* - Declare builtins. 15* END HISTORY COMMENTS */ 16 17 /* format: off */ 18 19 structure_library_4_: 20 procedure (); 21 22 /* First come all the structures */ 23 1 1 /* */ 1 2 /* BEGIN INCLUDE FILE mc.incl.pl1 Created Dec 72 for 6180 - WSS. */ 1 3 /* Modified 06/07/76 by Greenberg for mc.resignal */ 1 4 /* Modified 07/07/76 by Morris for fault register data */ 1 5 /* Modified 08/28/80 by J. A. Bush for the DPS8/70M CVPU */ 1 6 /* Modified '82 to make values constant */ 1 7 1 8 /* words 0-15 pointer registers */ 1 9 1 10 dcl mcp ptr; 1 11 1 12 dcl 1 mc based (mcp) aligned, 1 13 2 prs (0:7) ptr, /* POINTER REGISTERS */ 1 14 (2 regs, /* registers */ 1 15 3 x (0:7) bit (18), /* index registers */ 1 16 3 a bit (36), /* accumulator */ 1 17 3 q bit (36), /* q-register */ 1 18 3 e bit (8), /* exponent */ 1 19 3 pad1 bit (28), 1 20 3 t bit (27), /* timer register */ 1 21 3 pad2 bit (6), 1 22 3 ralr bit (3), /* ring alarm register */ 1 23 1 24 2 scu (0:7) bit (36), 1 25 1 26 2 mask bit (72), /* mem controller mask at time of fault */ 1 27 2 ips_temp bit (36), /* Temporary storage for IPS info */ 1 28 2 errcode fixed bin (35), /* fault handler's error code */ 1 29 2 fim_temp, 1 30 3 unique_index bit (18) unal, /* unique index for restarting faults */ 1 31 3 resignal bit (1) unal, /* recompute signal name with fcode below */ 1 32 3 fcode bit (17) unal, /* fault code used as index to FIM table and SCT */ 1 33 2 fault_reg bit (36), /* fault register */ 1 34 2 pad2 bit (1), 1 35 2 cpu_type fixed bin (2) unsigned, /* L68 = 0, DPS8/70M = 1 */ 1 36 2 ext_fault_reg bit (15), /* extended fault reg for DPS8/70M CPU */ 1 37 2 fault_time bit (54), /* time of fault */ 1 38 1 39 2 eis_info (0:7) bit (36)) unaligned; 1 40 1 41 1 42 dcl (apx fixed bin init (0), 1 43 abx fixed bin init (1), 1 44 bpx fixed bin init (2), 1 45 bbx fixed bin init (3), 1 46 lpx fixed bin init (4), 1 47 lbx fixed bin init (5), 1 48 spx fixed bin init (6), 1 49 sbx fixed bin init (7)) internal static options (constant); 1 50 1 51 1 52 1 53 1 54 dcl scup ptr; 1 55 1 56 dcl 1 scu based (scup) aligned, /* SCU DATA */ 1 57 1 58 1 59 /* WORD (0) */ 1 60 1 61 (2 ppr, /* PROCEDURE POINTER REGISTER */ 1 62 3 prr bit (3), /* procedure ring register */ 1 63 3 psr bit (15), /* procedure segment register */ 1 64 3 p bit (1), /* procedure privileged bit */ 1 65 1 66 2 apu, /* APPENDING UNIT STATUS */ 1 67 3 xsf bit (1), /* ext seg flag - IT modification */ 1 68 3 sdwm bit (1), /* match in SDW Ass. Mem. */ 1 69 3 sd_on bit (1), /* SDW Ass. Mem. ON */ 1 70 3 ptwm bit (1), /* match in PTW Ass. Mem. */ 1 71 3 pt_on bit (1), /* PTW Ass. Mem. ON */ 1 72 3 pi_ap bit (1), /* Instr Fetch or Append cycle */ 1 73 3 dsptw bit (1), /* Fetch of DSPTW */ 1 74 3 sdwnp bit (1), /* Fetch of SDW non paged */ 1 75 3 sdwp bit (1), /* Fetch of SDW paged */ 1 76 3 ptw bit (1), /* Fetch of PTW */ 1 77 3 ptw2 bit (1), /* Fetch of pre-paged PTW */ 1 78 3 fap bit (1), /* Fetch of final address paged */ 1 79 3 fanp bit (1), /* Fetch of final address non-paged */ 1 80 3 fabs bit (1), /* Fetch of final address absolute */ 1 81 1 82 2 fault_cntr bit (3), /* number of retrys of EIS instructions */ 1 83 1 84 1 85 /* WORD (1) */ 1 86 1 87 2 fd, /* FAULT DATA */ 1 88 3 iro bit (1), /* illegal ring order */ 1 89 3 oeb bit (1), /* out of execute bracket */ 1 90 3 e_off bit (1), /* no execute */ 1 91 3 orb bit (1), /* out of read bracket */ 1 92 3 r_off bit (1), /* no read */ 1 93 3 owb bit (1), /* out of write bracket */ 1 94 3 w_off bit (1), /* no write */ 1 95 3 no_ga bit (1), /* not a gate */ 1 96 3 ocb bit (1), /* out of call bracket */ 1 97 3 ocall bit (1), /* outward call */ 1 98 3 boc bit (1), /* bad outward call */ 1 99 3 inret bit (1), /* inward return */ 1 100 3 crt bit (1), /* cross ring transfer */ 1 101 3 ralr bit (1), /* ring alarm register */ 1 102 3 am_er bit (1), /* associative memory fault */ 1 103 3 oosb bit (1), /* out of segment bounds */ 1 104 3 paru bit (1), /* processor parity upper */ 1 105 3 parl bit (1), /* processor parity lower */ 1 106 3 onc_1 bit (1), /* op not complete type 1 */ 1 107 3 onc_2 bit (1), /* op not complete type 2 */ 1 108 1 109 2 port_stat, /* PORT STATUS */ 1 110 3 ial bit (4), /* illegal action lines */ 1 111 3 iac bit (3), /* illegal action channel */ 1 112 3 con_chan bit (3), /* connect channel */ 1 113 1 114 2 fi_num bit (5), /* (fault/interrupt) number */ 1 115 2 fi_flag bit (1), /* 1 => fault, 0 => interrupt */ 1 116 1 117 1 118 /* WORD (2) */ 1 119 1 120 2 tpr, /* TEMPORARY POINTER REGISTER */ 1 121 3 trr bit (3), /* temporary ring register */ 1 122 3 tsr bit (15), /* temporary segment register */ 1 123 1 124 2 pad2 bit (9), 1 125 1 126 2 cpu_no bit (3), /* CPU number */ 1 127 1 128 2 delta bit (6), /* tally modification DELTA */ 1 129 1 130 1 131 /* WORD (3) */ 1 132 1 133 2 word3 bit (18), 1 134 1 135 2 tsr_stat, /* TSR STATUS for 1,2,&3 word instructions */ 1 136 3 tsna, /* Word 1 status */ 1 137 4 prn bit (3), /* Word 1 PR number */ 1 138 4 prv bit (1), /* Word 1 PR valid bit */ 1 139 3 tsnb, /* Word 2 status */ 1 140 4 prn bit (3), /* Word 2 PR number */ 1 141 4 prv bit (1), /* Word 2 PR valid bit */ 1 142 3 tsnc, /* Word 3 status */ 1 143 4 prn bit (3), /* Word 3 PR number */ 1 144 4 prv bit (1), /* Word 3 PR valid bit */ 1 145 1 146 2 tpr_tbr bit (6), /* TPR.TBR field */ 1 147 1 148 1 149 /* WORD (4) */ 1 150 1 151 2 ilc bit (18), /* INSTRUCTION COUNTER */ 1 152 1 153 2 ir, /* INDICATOR REGISTERS */ 1 154 3 zero bit (1), /* zero indicator */ 1 155 3 neg bit (1), /* negative indicator */ 1 156 3 carry bit (1), /* carryry indicator */ 1 157 3 ovfl bit (1), /* overflow indicator */ 1 158 3 eovf bit (1), /* eponent overflow */ 1 159 3 eufl bit (1), /* exponent underflow */ 1 160 3 oflm bit (1), /* overflow mask */ 1 161 3 tro bit (1), /* tally runout */ 1 162 3 par bit (1), /* parity error */ 1 163 3 parm bit (1), /* parity mask */ 1 164 3 bm bit (1), /* ^bar mode */ 1 165 3 tru bit (1), /* truncation mode */ 1 166 3 mif bit (1), /* multi-word instruction mode */ 1 167 3 abs bit (1), /* absolute mode */ 1 168 3 hex bit (1), /* hexadecimal exponent mode */ 1 169 3 pad bit (3), 1 170 1 171 1 172 /* WORD (5) */ 1 173 1 174 2 ca bit (18), /* COMPUTED ADDRESS */ 1 175 1 176 2 cu, /* CONTROL UNIT STATUS */ 1 177 3 rf bit (1), /* on first cycle of repeat instr */ 1 178 3 rpt bit (1), /* repeat instruction */ 1 179 3 rd bit (1), /* repeat double instruction */ 1 180 3 rl bit (1), /* repeat link instruciton */ 1 181 3 pot bit (1), /* IT modification */ 1 182 3 pon bit (1), /* return type instruction */ 1 183 3 xde bit (1), /* XDE from Even location */ 1 184 3 xdo bit (1), /* XDE from Odd location */ 1 185 3 poa bit (1), /* operation preparation */ 1 186 3 rfi bit (1), /* tells CPU to refetch instruction */ 1 187 3 its bit (1), /* ITS modification */ 1 188 3 if bit (1), /* fault occured during instruction fetch */ 1 189 1 190 2 cpu_tag bit (6)) unaligned, /* computed tag field */ 1 191 1 192 1 193 /* WORDS (6,7) */ 1 194 1 195 2 even_inst bit (36), /* even instruction of faulting pair */ 1 196 1 197 2 odd_inst bit (36); /* odd instruction of faulting pair */ 1 198 1 199 1 200 1 201 1 202 1 203 1 204 /* ALTERNATE SCU DECLARATION */ 1 205 1 206 1 207 dcl 1 scux based (scup) aligned, 1 208 1 209 (2 pad0 bit (36), 1 210 1 211 2 fd, /* GROUP II FAULT DATA */ 1 212 3 isn bit (1), /* illegal segment number */ 1 213 3 ioc bit (1), /* illegal op code */ 1 214 3 ia_am bit (1), /* illegal address - modifier */ 1 215 3 isp bit (1), /* illegal slave procedure */ 1 216 3 ipr bit (1), /* illegal procedure */ 1 217 3 nea bit (1), /* non existent address */ 1 218 3 oobb bit (1), /* out of bounds */ 1 219 3 pad bit (29), 1 220 1 221 2 pad2 bit (36), 1 222 1 223 2 pad3a bit (18), 1 224 1 225 2 tsr_stat (0:2), /* TSR STATUS as an ARRAY */ 1 226 3 prn bit (3), /* PR number */ 1 227 3 prv bit (1), /* PR valid bit */ 1 228 1 229 2 pad3b bit (6)) unaligned, 1 230 1 231 2 pad45 (0:1) bit (36), 1 232 1 233 2 instr (0:1) bit (36); /* Instruction ARRAY */ 1 234 1 235 1 236 1 237 /* END INCLUDE FILE mc.incl.pl1 */ 24 25 call add ("mc", addr (p -> mc)); 26 call add ("scu", addr (p -> scu)); 27 call add ("scux", addr (p -> scux)); 2 1 2 2 /* Begin include file mc_trace_buf.incl.pl1 */ 2 3 2 4 /* Created in April 1977 by James A. Bush to define the contents of the machine condition trace buffer */ 2 5 2 6 dcl bp ptr; /* pointer to M. C. buffer */ 2 7 2 8 dcl 1 mc_trace_buf based (bp) aligned, /* trace buffer template */ 2 9 2 mc_lim fixed bin unal, /* end of machine condition storage area */ 2 10 2 mc_nxtad fixed bin unal, /* the nxt avail. location for M. C. storage */ 2 11 2 mc_strt fixed bin unal, /* the beginning of the M. C. storage area */ 2 12 2 mc_cnt fixed bin unal, /* number of M. C.'s that can be stored */ 2 13 2 hr_lim fixed bin unal, /* end of history register storage */ 2 14 2 hr_nxtad fixed bin unal, /* the nxt avail. location for history register storage */ 2 15 2 hr_strt fixed bin unal, /* the beginning of the H. R. storage area */ 2 16 2 hr_cnt fixed bin unal, /* number of H. R.'s that can be stored */ 2 17 2 pad (4) fixed bin, /* pad to start of history register area */ 2 18 2 h_regs (hr_cnt), /* array of history register blocks */ 2 19 3 ou_hr (16) bit (72), /* operations unit history registers */ 2 20 3 cu_hr (16) bit (72), /* control unit history registers */ 2 21 3 du_hr (16) bit (72), /* decimal unit history registers */ 2 22 3 au_hr (16) bit (72), /* appending unit history registers */ 2 23 2 mach_cond (mc_cnt), /* array of machine conditions */ 2 24 3 spri_dta (8) ptr, /* pointer register storage */ 2 25 3 sreg_dta (8) bit (36), /* processor register storage */ 2 26 3 scu_dta (8) bit (36), /* SCU data storage */ 2 27 3 sw_dta (8) bit (36), /* software data storage */ 2 28 3 spl_dta (8) bit (36); /* EIS ptrs and lengths data */ 2 29 2 30 dcl mc_size fixed bin int static options (constant) init (48); /* size of M. C. block in words */ 2 31 dcl hr_size fixed bin int static options (constant) init (128); /* size of history register block */ 2 32 dcl max_buf_size fixed bin int static options (constant) init (16); /* max size of M. C. buffer in K */ 2 33 dcl buf_init bit (36) int static options (constant) init ("525252525252"b3); /* buffer init. constant */ 2 34 2 35 /* End include file mc_trace_buf.incl.pl1 */ 2 36 28 call add ("mc_trace_buf", addr (p -> mc_trace_buf)); 3 1 /* BEGIN INCLUDE FILE ... mcs_modes_change_list.incl.pl1 */ 3 2 3 3 /* Created 4/9/79 by J. Stern */ 3 4 /* Modified: 10 November 1980 by G. Palter to add can_type */ 3 5 3 6 3 7 dcl mclp ptr; 3 8 dcl mcl_version_2 fixed bin int static options (constant) init (2); 3 9 3 10 dcl 1 mcl aligned based (mclp), /* modes change list */ 3 11 2 version fixed bin, /* version number of this structure (Input) */ 3 12 2 n_entries fixed bin, /* number of mode change entries (Input) */ 3 13 2 line_len fixed bin, /* new line length (-1 => no change) (Input) */ 3 14 2 page_len fixed bin, /* new page length (-1 => no change) (Input) */ 3 15 2 can_type fixed binary, /* new canonicalization type (-1 => no change) (Input) */ 3 16 2 flags, 3 17 3 init bit (1) unal, /* ON if all modes to be reinitialized (Input) */ 3 18 3 ll_error bit (1) unal, /* ON if line length error detected (Output) */ 3 19 3 pl_error bit (1) unal, /* ON if page length error detected (Output) */ 3 20 3 can_type_error bit (1) unaligned, /* ON if can_type error detected (Output) */ 3 21 3 mbz bit (32) unal, 3 22 2 entries (36) like mcle; /* one entry per mode change */ 3 23 3 24 dcl mclep ptr; 3 25 3 26 dcl 1 mcle aligned based (mclep), /* mode change list entry */ 3 27 2 mode_name char (16) unal, /* name of mode to change (Input) */ 3 28 2 flags, 3 29 3 mode_switch bit (1) unal, /* ON to turn mode on, else OFF (Input) */ 3 30 3 force bit (1) unal, /* ON to ignore errors for this mode change (Input) */ 3 31 3 mpx_mode bit (1) unal, /* ON if mode recognized by multiplexer (Output) */ 3 32 3 error bit (1) unal, /* ON if mode change is in error (Output) */ 3 33 3 mbz bit (32) unal; 3 34 3 35 3 36 /* END INCLUDE FILE ... mcs_modes_change_list.incl.pl1 */ 29 30 dcl 1 modes_change_list aligned like mcl based; 31 call add ("modes_change_list", addr (p -> modes_change_list)); 32 dcl 1 modes_change_list_entry aligned like mcle based; 33 call add ("modes_change_list_entry", addr (p -> modes_change_list_entry)); 4 1 /* Begin include file mcs_trace_data.incl.pl1 */ 4 2 4 3 dcl (trace_array_ptr, trace_entry_ptr) pointer; 4 4 dcl trace_array_size uns fixed bin (18); 4 5 4 6 dcl 1 trace_array aligned based (trace_array_ptr), /* trace control information */ 4 7 2 num_entries uns fixed bin (18), /* number of entries in trace table */ 4 8 2 idx bit (36) aligned, /* index of next entry to use */ 4 9 2 entry (trace_array_size refer (trace_array.num_entries)) aligned like trace_entry; 4 10 4 11 dcl 1 trace_entry aligned based (trace_entry_ptr), 4 12 2 time fixed bin (71), /* time sample taken */ 4 13 2 devx unsigned fixed bin (18) unaligned, /* channel traced */ 4 14 2 message char (54) unaligned; 4 15 4 16 /* End include file mcs_trace_data.incl.pl1 */ 34 35 dcl 1 mcs_trace_array aligned like trace_array based; 36 call add ("mcs_trace_array", addr (p -> mcs_trace_array)); 37 dcl 1 mcs_trace_entry aligned like trace_entry based; 38 call add ("mcs_trace_entry", addr (p -> mcs_trace_entry)); 5 1 /* Begin include file ..... mdcs.incl.pl1 */ 5 2 /* Modified to give quota enough precision BIM 83-12-07 */ 5 3 5 4 /* Format of a master directory control segment */ 5 5 5 6 dcl mdcsp ptr; /* Pointer to structure */ 5 7 5 8 dcl 1 mdcs aligned based (mdcsp), /* A master directory control segment */ 5 9 2 head like mdcs_head, /* First the header */ 5 10 2 area area (0 refer (mdcs.area_size)); /* Followed by an area for allocating data */ 5 11 5 12 dcl 1 mdcs_head aligned based, /* The header portion of the mdcs */ 5 13 2 version fixed bin, /* Version of structure */ 5 14 2 init bit (1) unal, /* Set when mdcs created */ 5 15 2 free_bits bit (35) unal, 5 16 2 time_checked fixed bin (71), /* Time this MDCS last checked for consistency */ 5 17 2 volume char (32), /* Name of volume */ 5 18 2 uid bit (36), /* Unique id of volume */ 5 19 2 acct_offset bit (18), /* Offset to first account entry */ 5 20 2 dir_offset bit (18), /* Pointer to first directory entry */ 5 21 2 backup (3) fixed bin (35), /* Statistics for backup */ 5 22 2 area_size fixed bin (18), /* Size of the area (rest of segment) */ 5 23 2 restrict_path bit (18), /* List of pathnames in volume restict list */ 5 24 2 default_path bit (18), /* List of pathnames in volume default list */ 5 25 2 fill (43) bit (36) aligned; /* Pad to octal 100 */ 5 26 5 27 dcl mdcs_version fixed bin int static options (constant) init (1); /* Latest version */ 5 28 5 29 dcl mdirp ptr; /* Pointer to directory entry */ 5 30 5 31 dcl 1 mdirent aligned based (mdirp), 5 32 2 next bit (18) unal, /* Pointer to next entry */ 5 33 2 fill bit (18) unal, 5 34 2 uidpath (0:15) bit (36), /* Uid pathname of master dir */ 5 35 2 owner, /* Owner of directory */ 5 36 3 person char (22) unal, 5 37 3 project char (9) unal, 5 38 2 quota_offset bit (18), /* Rel pointer to quota account */ 5 39 2 quota fixed bin (18), /* The quota */ 5 40 2 backup (3) fixed bin (35), /* Statistics for backup */ 5 41 2 fill2 (10) bit (36) aligned; 5 42 5 43 dcl acctp ptr; /* Pointer to account entry */ 5 44 5 45 dcl 1 acctent aligned based (acctp), 5 46 2 next bit (18) unal, /* Relative pointer to next entry */ 5 47 2 fill bit (18) unal, 5 48 2 name, /* Name of quota account */ 5 49 3 person char (22) unal, 5 50 3 project char (9) unal, 5 51 2 quota fixed bin (35), /* Total quota for account */ 5 52 2 quota_used fixed bin (35), /* Amount of quota assigned to master dirs */ 5 53 2 trp fixed bin (71) unal, /* Time record product for deleted dirs */ 5 54 2 backup (3) fixed bin (35), /* Backup accounting data */ 5 55 2 restrict_path bit (18), /* List of restricting paths for account */ 5 56 2 fill2 (7) bit (36) aligned; 5 57 5 58 dcl pathp ptr; /* Pointer to uid pathname entry */ 5 59 5 60 dcl 1 pathent aligned based (pathp), /* Entry in a list of pathnames */ 5 61 2 next bit (18) unal, 5 62 2 fill bit (18) unal, 5 63 2 uidpath (0:15) bit (36); 5 64 5 65 5 66 /* End include file ..... mdcs.incl.pl1 */ 39 40 call add ("mdcs", addr (p -> mdcs)); 41 dcl 1 mdcs_mdir aligned like mdirent based; 42 call add ("mdcs_mdir", addr (p -> mdcs_mdir)); 43 dcl 1 mdcs_account aligned like acctent based; 44 call add ("mdcs_account", addr (p -> mdcs_account)); 45 dcl 1 mdcs_path aligned like pathent based; 46 call add ("mdcs_path", addr (p -> mdcs_path)); 6 1 6 2 /* Begin include file ...... mstr.incl.pl1 */ 6 3 /* Modified 2/11/74 by N. I. Morris */ 6 4 /* Modified 12/30/80 by J. A. Bush for bootable tape labels */ 6 5 /* Modified 12/14/82 by J. A. Bush to add version number to the record header */ 6 6 6 7 /* format: style4,delnl,insnl,indattr,ifthen,declareind10,dclind10 */ 6 8 dcl mstrp ptr; /* pointer to MST record */ 6 9 6 10 dcl 1 mstr based (mstrp) aligned, /* Multics standard tape mstr */ 6 11 2 head like mstr_header, /* tape record header */ 6 12 2 data bit (36864 refer (mstr.head.data_bit_len)), 6 13 /* record body */ 6 14 2 trail like mstr_trailer; /* record trailer */ 6 15 6 16 dcl 1 mst_label based (mstrp) aligned, /* bootable label structure */ 6 17 2 xfer_vector (4), /* bootload interrupt transfer vector */ 6 18 3 lda_instr bit (36), /* this will be a "LDA 4" instruction */ 6 19 3 tra_instr bit (36), /* a "TRA" instruction to start of boot pgm */ 6 20 2 head like mstr_header, /* standard record header */ 6 21 2 vid like volume_identifier, /* tape volume info */ 6 22 2 fv_overlay (0:31), /* overlay for fault vectors when tape booted */ 6 23 3 scu_instr bit (36), /* an "SCU" instruction to address of fault_data */ 6 24 3 dis_instr bit (36), /* a "DIS" instruction, with Y field = to its own addr */ 6 25 2 fault_data (8) bit (36), /* SCU data for unexpected faults goes here */ 6 26 2 boot_pgm_path char (168) unaligned, /* path name of boot program */ 6 27 2 userid char (32) unaligned, /* Storage for Person.Project.Instance of creator of tape */ 6 28 2 label_version fixed bin, /* defined by LABEL_VERSION constant below */ 6 29 2 output_mode fixed bin, /* mode in which tape was written with */ 6 30 2 boot_pgm_len fixed bin, /* length in words of boot program */ 6 31 2 copyright char (56), /* Protection notice goes here if boot pgm is written */ 6 32 2 pad (13) bit (36), /* pad out to 192 (300 octal) */ 6 33 2 boot_pgm (0 refer (mst_label.boot_pgm_len)) bit (36), 6 34 /* boot program */ 6 35 2 trail like mstr_trailer; /* standard record trailer */ 6 36 6 37 dcl 1 mstr_header based aligned, /* Multics standard tape record header */ 6 38 ( 2 c1 bit (36), /* constant = 670314355245(8) */ 6 39 2 uid bit (72), /* unique ID */ 6 40 2 rec_within_file fixed bin (17), /* phys. rec. # within phys. file */ 6 41 2 phy_file fixed bin (17), /* phys. file # on phys. tape */ 6 42 2 data_bits_used fixed bin (17), /* # of bits of data in record */ 6 43 2 data_bit_len fixed bin (17), /* bit length of data space */ 6 44 2 flags, /* record flags */ 6 45 3 admin bit (1), /* admin record flag */ 6 46 3 label bit (1), /* label record flag */ 6 47 3 eor bit (1), /* end-of-reel record flag */ 6 48 3 pad1 bit (11), 6 49 3 set bit (1), /* ON if any of following items set */ 6 50 3 repeat bit (1), /* repeated record flag */ 6 51 3 padded bit (1), /* record contains padding flag */ 6 52 3 eot bit (1), /* EOT reflector encountered flag */ 6 53 3 drain bit (1), /* synchronous write flag */ 6 54 3 continue bit (1), /* continue on next reel flag */ 6 55 3 pad2 bit (4), 6 56 2 header_version fixed bin (3) unsigned, /* current header version number */ 6 57 2 repeat_count fixed bin (8), /* repetition count */ 6 58 2 checksum bit (36), /* checksum of header and trailer */ 6 59 2 c2 bit (36) 6 60 ) unal; /* constant = 512556146073(8) */ 6 61 6 62 dcl 1 mstr_trailer based aligned, /* Multics standard tape record trailer */ 6 63 ( 2 c1 bit (36), /* constant = 107463422532(8) */ 6 64 2 uid bit (72), /* unique ID (matches header) */ 6 65 2 tot_data_bits fixed bin (35), /* total data bits written on logical tape */ 6 66 2 pad_pattern bit (36), /* padding pattern */ 6 67 2 reel_num fixed bin (11), /* reel sequence # */ 6 68 2 tot_file fixed bin (23), /* phys. file number */ 6 69 2 tot_rec fixed bin (35), /* phys. record # for logical tape */ 6 70 2 c2 bit (36) 6 71 ) unal; /* constant = 265221631704(8) */ 6 72 6 73 dcl 1 volume_identifier based aligned, /* tape volume info */ 6 74 ( 2 installation_id char (32), /* installation that created tape */ 6 75 2 tape_reel_id char (32), /* tape reel name */ 6 76 2 volume_set_id char (32) 6 77 ) unaligned; /* name of the volume set */ 6 78 6 79 dcl ( 6 80 header_c1 init ("670314355245"b3), 6 81 header_c2 init ("512556146073"b3), 6 82 trailer_c1 init ("107463422532"b3), 6 83 trailer_c2 init ("265221631704"b3), 6 84 label_c1 init ("000004235000"b3) 6 85 ) bit (36) static; 6 86 6 87 dcl LABEL_VERSION fixed bin static options (constant) init (3); 6 88 /* current label version */ 6 89 dcl HEADER_VERSION fixed bin static options (constant) init (1); 6 90 /* current header version */ 6 91 6 92 /* End of include file ...... mstr.incl.pl1 */ 6 93 47 48 call add ("mst_label", addr (p -> mst_label)); 49 call add ("mstr_header", addr (p -> mstr_header)); 50 call add ("mstr_trailer", addr (p -> mstr_trailer)); 51 dcl 1 mst_volume_id aligned like volume_identifier based; 52 call add ("mst_volume_id", addr (p -> mst_volume_id)); 53 7 1 /* START OF: oc_data.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(85-11-14,Farley), approve(85-11-14,MCR6979), 7 6* audit(85-11-14,Fawcett), install(86-03-21,MR12.0-1033): 7 7* Add support for MCA 7 8* and IMU. 7 9* 2) change(85-12-03,Farley), approve(85-12-03,MCR7306), 7 10* audit(85-12-03,Fawcett), install(86-03-21,MR12.0-1033): 7 11* Fix bugs found while doing Dipper changes. 7 12* 3) change(85-12-03,Farley), approve(85-12-03,MCR7312), 7 13* audit(85-12-03,Fawcett), install(86-03-21,MR12.0-1033): 7 14* Add BCE MCA lock and unlock. 7 15* 4) change(86-08-07,Farley), approve(86-10-07,MCR7523), 7 16* audit(86-10-03,Fawcett), install(86-10-09,MR12.0-1181): 7 17* Removed timeout_factor, as it is nolonger needed. 7 18* 5) change(89-08-28,Farley), approve(89-09-18,MCR8132), 7 19* audit(89-10-10,WAAnderson), install(89-10-11,MR12.3-1091): 7 20* Increased MAX_IO_LENGTH from 132 to 256 to be consistent with 7 21* oc_trans_output_. This also affects the size of oc_data structures. Trace 7 22* entries have been reduced from 168 to 130. 7 23* END HISTORY COMMENTS */ 7 24 7 25 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 26 /* */ 7 27 /* Purpose: */ 7 28 /* */ 7 29 /* This include file describes the contents of the oc_data segment as well various other */ 7 30 /* static values utilized to interface operator's consoles. Changes to this structure that */ 7 31 /* would affect the size of the oc_data segment will require a change in the size of oc_data */ 7 32 /* as specified in the MST header. This is true because the segment is fabricated at boot */ 7 33 /* time and the size must be known prior to fabrication. */ 7 34 /* */ 7 35 /* This include file was recoded from its original version to add support for multiple */ 7 36 /* consoles. */ 7 37 /* */ 7 38 /* Re-written: 05/01/83 */ 7 39 /* */ 7 40 /* Author: E. A. Ranzenbach (Ranzenbach.Multics@M) */ 7 41 /* Location: System-M. */ 7 42 /* Release: MR10.2 */ 7 43 /* */ 7 44 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 45 /* */ 7 46 /* Modifications: */ 7 47 /* */ 7 48 /* Date Author Reason */ 7 49 /* */ 7 50 /* 840410 Edward A. Ranzenbach Cut size of I/O's to 132 chars... */ 7 51 /* 840427 Edward A. Ranzenbach Added "off" console state..." */ 7 52 /* 850111 Edward A. Ranzenbach Added lost special interrupt protection. */ 7 53 /* 850215 Paul K Farley Add pcw_ignored flag in oc_entry. */ 7 54 /* 850522 Paul K Farley Add MCA lock/unlock info. */ 7 55 /* 850827 Paul K Farley Add more info to event trace. */ 7 56 /* 850913 Paul K Farley Add timeout_factor variable to oc_entry. */ 7 57 /* 851114 Paul K Farley Remove pcw_ignored flag, imu flag will do. */ 7 58 /* */ 7 59 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 60 7 61 /* format: off */ 7 62 7 63 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 64 /* */ 7 65 /* The DCW list consists of an array of sixteen single word Device Control Words that are used to */ 7 66 /* drive the console devices. These DCWs are listed in their stored order followed by the effects */ 7 67 /* that they produce: */ 7 68 /* */ 7 69 /* 1 = reset status IDCW -> Reset the console channel... */ 7 70 /* 2 = write alert IDCW -> Output a bell character to the console... */ 7 71 /* 3 = write IDCW -> Put console in output mode... */ 7 72 /* 4 = write DCW -> Describes intended outgoing data transfer... */ 7 73 /* 5 = write IDCW - newline -> Put console in output mode... */ 7 74 /* 6 = write DCW - newline -> Describes newline transfer... */ 7 75 /* 7 = read IDCW -> Put the console in input mode... */ 7 76 /* 8 = read DCW -> Describes intended data transfer... */ 7 77 /* 9 = read_unechoed IDCW -> Put the console in unechoed input mode... */ 7 78 /* 10 = read_unechoed DCW -> Describes intended data transfer... */ 7 79 /* 11 = write IDCW - prompt */ 7 80 /* 12 = write DCW - prompt */ 7 81 /* 13 = write IDCW - discard -> Put console in output mode... */ 7 82 /* 14 = write DCW - discard -> Describes discard notice... */ 7 83 /* 15 = lock MCA IDCW -> Disable MCA input from console... */ 7 84 /* 16 = unlock MCA IDCW -> Enable MCA input from console... */ 7 85 /* */ 7 86 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 87 7 88 dcl oc_data$ external; /* so we can find it... */ 7 89 7 90 dcl 1 oc_data aligned based (oc_data_ptr), 7 91 2 lock bit (36), /* global lock for all of oc_data... */ 7 92 2 version char (4), /* should equal oc_data_version... */ 7 93 2 console_cnt fixed bin (17) unaligned, /* number of configured consoles... */ 7 94 2 bootload_console_idx fixed bin (17) unaligned, /* index into opc of bootload console...*/ 7 95 2 flags, 7 96 3 in_service bit (1) unaligned, /* ON => at least one usable console... */ 7 97 3 crash_on_crf bit (1) unaligned, /* ON => crash on recovery failure... */ 7 98 3 mc_io_enabled bit (1) unaligned, /* ON => MC is handling I/O... */ 7 99 3 list_consoles bit (1) unaligned, /* ON => list the console assignments...*/ 7 100 3 printer_on bit (1) unaligned, /* ON => echo read characters... */ 7 101 3 write_q_full bit (1) unaligned, /* ON => the write queue is full... */ 7 102 3 must_have_console bit (1) unaligned, /* ON => we must have a real console... */ 7 103 3 pad_oc_data_flags bit (29) unaligned, /* pad to word boundry... */ 7 104 2 no_lock_flags, /* these flags can be modified without */ 7 105 /* lock protection... */ 7 106 3 got_special_int bit (1) unaligned, /* we could not process this special... */ 7 107 3 pad_no_lock_flags bit (35) unaligned, 7 108 2 pad_misc fixed bin (35), /* to preserve even word alignment... */ 7 109 2 prompt char (8), /* string used to prompt for input... */ 7 110 2 discard_notice char (24), /* displayed at BREAK condition... */ 7 111 2 write_return bit (36), /* newline string = PAD PAD CR NL... */ 7 112 2 abs_addr fixed bin (26), /* absolute address of oc_data$... */ 7 113 2 status_ptr ptr, /* points to IOM status word... */ 7 114 2 io_ptr ptr, /* -> I/O being processed... */ 7 115 2 last_read_queued fixed bin (71), /* last time a READ was queued... */ 7 116 2 last_write_queued fixed bin (71), /* last time a WRITE was queued... */ 7 117 2 last_poll_time fixed bin (71), /* last time of timeout poll by pxss... */ 7 118 2 max_computed_io_time fixed bin (71), /* maximum time an I/O could take... */ 7 119 2 err_event_cid fixed bin (71), /* channel used to signal inop state... */ 7 120 2 err_event_pid bit (36), /* ID of process handling inop states...*/ 7 121 2 reader_process_id bit (36), /* only process allowed to read... */ 7 122 2 next_free_write fixed bin (17) unaligned, /* index of the next free WRITE slot... */ 7 123 2 next_event fixed bin (17) unaligned, /* next event index... */ 7 124 2 stacked_read_cnt fixed bin (17) unaligned, /* READ stack... */ 7 125 2 pad_oc_data bit (18) unaligned, 7 126 2 priority_io like console_io, /* oc_data|42(8)... */ 7 127 2 read_io like console_io, /* oc_data|154(8)... */ 7 128 2 write_queue (WRITE_QUEUE_SIZE) /* oc_data|266(8)... */ 7 129 like console_io, 7 130 2 meters, /* metering cell at oc_data|1406... */ 7 131 3 pushed_read_cnt fixed bin (35), /* count of times read stack was used...*/ 7 132 3 write_q_full_cnt fixed bin (35), /* count of WRITE fails for no room... */ 7 133 3 queued_special_int_count 7 134 fixed bin (35), 7 135 3 pad_meters(7) fixed bin (35), /* for future use... */ 7 136 2 opc (MAX_OPC_CNT) /* oc_data|1420, 1454, 1510, 1544, 1600...*/ 7 137 like oc_entry, /* 1634, 1670, 1724... */ 7 138 2 event (EVENT_QUEUE_SIZE) /* oc_data|1760 thru oc_data|3777... */ 7 139 like oc_event; 7 140 7 141 7 142 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 143 /* */ 7 144 /* The following structure describes a configured console. */ 7 145 /* */ 7 146 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 147 7 148 7 149 dcl 1 oc_entry aligned based (oc_entry_ptr), /* one for each console 34(8) words... */ 7 150 2 name char (4), /* name of this console, i.e. "opca"... */ 7 151 2 opc_idx fixed bin (17) unaligned, /* index of this entry in opc array... */ 7 152 2 model fixed bin (17) unaligned, /* model of the console... */ 7 153 2 flags, 7 154 3 active bit (1) unaligned, /* ON => this entry is in use... */ 7 155 3 assigned bit (1) unaligned, /* ON => io_manager knows device... */ 7 156 3 bootload_console bit (1) unaligned, /* ON => this is the bootload console...*/ 7 157 3 alternate bit (1) unaligned, /* ON => console used if active fails...*/ 7 158 3 inop_device bit (1) unaligned, /* ON => console is inoperative... */ 7 159 3 io_device bit (1) unaligned, /* ON => console is not available to us.*/ 7 160 3 no_device bit (1) unaligned, /* ON => console has been deleted... */ 7 161 3 config_change bit (1) unaligned, /* ON => config change has occurred... */ 7 162 3 prompt bit (1) unaligned, /* ON => prompt for input... */ 7 163 3 pcw_io bit (1) unaligned, /* ON => use PCW's instead of IDCW's... */ 7 164 3 io_in_progress bit (1) unaligned, /* ON => I/O op is in progress... */ 7 165 3 got_special_int bit (1) unaligned, /* ON => RE(TURN QUEST) key was hit... */ 7 166 3 oper_request bit (1) unaligned, /* ON => operator has hit request key...*/ 7 167 3 discard bit (1) unaligned, /* ON => discard output... */ 7 168 3 discarded bit (1) unaligned, /* ON => (output discarded) printed... */ 7 169 3 read_unechoed_option /* ON => read_unechoed option installed.*/ 7 170 bit (1) unaligned, /* option must not be installed... */ 7 171 3 imu bit (1) unaligned, /* ON => console located in an IMU... */ 7 172 3 pad_flag bit (19) unaligned, /* pad to word boundry... */ 7 173 2 channel char (8), /* name of this console's channel... */ 7 174 2 device_idx fixed bin (35), /* operator's console device id... */ 7 175 2 line_leng fixed bin (17) unaligned, /* line length of the console... */ 7 176 2 dcw_list_idx fixed bin (17) unaligned, /* DCW list in progess... */ 7 177 2 retry_cnt fixed bin (17) unaligned, /* times I/O op has been retried... */ 7 178 2 RESERVED_PAD fixed bin (17) unaligned, /* pad to oc_entry + 10(8)... */ 7 179 2 io_time fixed bin (71), /* time last I/O began... */ 7 180 2 status_word bit (36), /* last valid status word received... */ 7 181 2 dcw_list (16) bit (36), /* DCWs used to drive the console... */ 7 182 2 pad_oc_entry_end bit (36); /* pad to 34(8) words... */ 7 183 7 184 7 185 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 186 /* */ 7 187 /* This is the format of a console I/O. A pointer to this structure is passed to us by the process */ 7 188 /* wishing to perform a console I/O. The caller will fill in the following things for a read I/O: */ 7 189 /* */ 7 190 /* console_io.event_chan - Will be an event channel to wake the user on when the */ 7 191 /* I/O completes. */ 7 192 /* */ 7 193 /* console_io.read - Set to "1"b indicating a read. */ 7 194 /* */ 7 195 /* For a write the following information is supplied: */ 7 196 /* */ 7 197 /* console_io.alert - Set to "1"b if the console alarm is to be on for the */ 7 198 /* write. */ 7 199 /* */ 7 200 /* console_io.read - Set to "0"b. */ 7 201 /* */ 7 202 /* console_io.sequence_no - Set to the syserr sequence number for syserr calls. */ 7 203 /* */ 7 204 /* console_io.leng - Set to the word length of the message to be written. */ 7 205 /* */ 7 206 /* console_io.text - Set to the text of the message. */ 7 207 /* */ 7 208 /* In all cases ocdcm_ will properly reset those items not necessary to the type of I/O being */ 7 209 /* performed. */ 7 210 /* */ 7 211 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 212 7 213 dcl 1 console_io aligned based (console_io_ptr), /* format of a I/O, 112(8) words... */ 7 214 2 time_queued fixed bin (71), /* 0 indicates a free entry... */ 7 215 2 event_chan fixed bin (71), /* to send wakeup to when I/O completes.*/ 7 216 2 process_id bit (36), /* of the caller... */ 7 217 2 console char (4), /* name of the console the I/O went to..*/ 7 218 2 flags, /* start at console_io + 6(8)... */ 7 219 3 alert bit (1) unaligned, /* ON => ring bell first... */ 7 220 3 read bit (1) unaligned, /* ON => this is a read request... */ 7 221 3 alerted bit (1) unaligned, /* ON => we have successfully alerted...*/ 7 222 3 prompted bit (1) unaligned, /* ON => we have successfully prompted..*/ 7 223 3 in_progress bit (1) unaligned, /* ON => I/O has been started... */ 7 224 3 completed bit (1) unaligned, /* ON => the I/O has completed... */ 7 225 3 retry_reset bit (1) unaligned, /* ON => I/O was reset by retry_io... */ 7 226 3 pad_flag bit (29) unaligned, /* pad to word boundry... */ 7 227 2 sequence_no fixed bin (35), /* syserr sequence number... */ 7 228 2 leng fixed bin (17) unaligned, /* in words of the I/O... */ 7 229 2 MBZ fixed bin (17) unaligned, /* reserved for future use... */ 7 230 2 pad_text fixed bin (35), /* I/O must start on even word boundry..*/ 7 231 2 text char (MAX_IO_LENGTH); /* the actual I/O... */ 7 232 7 233 7 234 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 235 /* */ 7 236 /* The following structure is used to log an event occurring in in the console software. */ 7 237 /* */ 7 238 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 7 239 7 240 7 241 dcl 1 oc_event aligned based (oc_event_ptr), /* each event is 10(8) words long... */ 7 242 2 time fixed bin (71), /* time event took place... */ 7 243 2 opc_name char (4), /* bootload console at time of event... */ 7 244 2 opc_flags like oc_entry.flags, /* bootload console flags... */ 7 245 2 process_id bit (36), /* process logging the event... */ 7 246 2 event_number fixed bin (35), /* number of the event being logged... */ 7 247 2 event_io_ptr ptr; /* ptr to I/O in progress during event..*/ 7 248 7 249 dcl ( /* indices for ease of use... */ 7 250 RESET_DCW init (1), 7 251 ALERT_DCW init (2), 7 252 WRITE_DCW init (3), 7 253 NEWLINE_DCW init (5), 7 254 READ_DCW init (7), 7 255 READ_UNECHOED_DCW init (9), 7 256 PROMPT_DCW init (11), 7 257 DISCARD_DCW init (13), 7 258 LOCK_MCA_DCW init (15), 7 259 UNLOCK_MCA_DCW init (16) 7 260 ) fixed bin (17) 7 261 internal static options (constant); 7 262 dcl ( /* list of event numbers... */ 7 263 INIT_OC_DATA init (1), 7 264 GOT_SPECIAL_INT init (2), 7 265 PRIORITY_OUTPUT init (3), 7 266 QUEUED_READ init (4), 7 267 QUEUED_WRITE init (5), 7 268 STARTED_READ init (6), 7 269 STARTED_UNECHOED_READ init (7), 7 270 STARTED_WRITE init (8), 7 271 RESET_CHANNEL init (9), 7 272 SENT_ALERT init (10), 7 273 SENT_NEWLINE init (11), 7 274 SENT_PROMPT init (12), 7 275 TERMINATED_RESET init (13), 7 276 TERMINATED_ALERT init (14), 7 277 TERMINATED_NEWLINE init (15), 7 278 TERMINATED_PROMPT init (16), 7 279 TERMINATED_READ init (17), 7 280 TERMINATED_WRITE init (18), 7 281 SENT_WAKEUP init (19), 7 282 READ_PICKUP init (20), 7 283 PUSHED_READ init (21), 7 284 POPPED_READ init (22), 7 285 READ_NOT_IN_PROGRESS init (23), 7 286 LOGGED_ERROR init (24), 7 287 IO_TIMEOUT init (25), 7 288 RETRY_IO init (26), 7 289 GOT_LOCK init (27), 7 290 FREED_LOCK init (28), 7 291 DISCARDED_OUTPUT init (29), 7 292 SENT_MC_IO init (30), 7 293 SENT_MC_PRIORITY_IO init (31), 7 294 MC_IO_PICKUP init (32), 7 295 MC_IO_FAILURE init (33), 7 296 LOCK_MCA_IO init (34), 7 297 UNLOCK_MCA_IO init (35), 7 298 TERMINATED_MCA_LOCK init (36), 7 299 TERMINATED_MCA_UNLOCK init (37) 7 300 ) fixed bin (35) 7 301 internal static options (constant); 7 302 7 303 dcl oc_data_version char (4) init ("1.3") /* for general information... */ 7 304 static internal options (constant); 7 305 7 306 dcl ( 7 307 oc_data_ptr, 7 308 oc_entry_ptr, 7 309 oc_event_ptr, 7 310 console_io_ptr 7 311 ) ptr; 7 312 7 313 dcl ( 7 314 MAX_OPC_CNT init (8), /* maximum number of consoles... */ 7 315 MAX_RETRIES init (2), /* we retry I/O ops this many times... */ 7 316 EVENT_QUEUE_SIZE init (130), /* use up the rest of the 2 pages... */ 7 317 WRITE_QUEUE_SIZE init (8) /* number of queued writes allowed... */ 7 318 ) 7 319 fixed bin (17) 7 320 internal static options (constant); 7 321 7 322 dcl MAX_IMU_IO_TIME fixed bin (17) /* longest possible IMU I/O time... */ 7 323 internal static options (constant) 7 324 init (150); /* 2 minutes 30 seconds... */ 7 325 7 326 dcl MAX_IO_TIME (16) fixed bin (17) /* maximum time the associated I/O */ 7 327 internal static options (constant) /* operation is allowed to take in */ 7 328 init /* seconds... */ 7 329 ( 7 330 1, /* RESET_STATUS... */ 7 331 1, /* WRITE ALERT... */ 7 332 10, /* WRITE DATA... */ 7 333 0, /* DUMMY for WRITE DATA DCW... */ 7 334 2, /* WRITE CR, NL... */ 7 335 0, /* DUMMY for WRITE CR, NL DCW... */ 7 336 90, /* READ DATA... */ 7 337 0, /* DUMMY for READ DATA DCW... */ 7 338 90, /* READ_UNECHOED DATA... */ 7 339 0, /* DUMMY for READ_UNECHOED DATA DCW... */ 7 340 1, /* WRITE PROMPT... */ 7 341 0, /* DUMMY for WRITE PROMPT DCW... */ 7 342 10, /* DISCARD DCW... */ 7 343 0, /* DUMMY for DISCARD DCW... */ 7 344 30, /* LOCK MCA IO... */ 7 345 30 /* UNLOCK MCA IO... */ 7 346 ); 7 347 7 348 dcl MAX_IO_LENGTH fixed bin (17) 7 349 internal static options (constant) 7 350 init (256); /* in characters... */ 7 351 dcl MAX_MAX_IO_TIME fixed bin (17) /* longest possible I/O time... */ 7 352 internal static options (constant) 7 353 init (150); /* should be the same as the longest... */ 7 354 7 355 7 356 /* END OF: oc_data.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 54 call add ("oc_data", addr (p -> oc_data)); 8 1 /* Begin include file ... oc_log_meters.incl.pl1 8 2** 8 3** Created by Bill Silver on 08/11/73 8 4** This include file defines the meter areas used by the operator's console 8 5** software. These meter areas are used to keep statistics about the wired 8 6** buffers listed below. If this include files is changed the size of all 8 7** of these areas may also have to be changed. 8 8** 8 9** METER AREA WIRED BUFFER 8 10** ---------- ------------ 8 11** oc_data$sys_meters syserr write buffer 8 12** oc_data$dim_meters dim write buffer 8 13** wired_log_data$log_meters wired syserr log buffer 8 14**/ 8 15 8 16 dcl olm_ptr ptr; /* Pointer to an oc or log meter area. */ 8 17 8 18 8 19 dcl 1 olm based(olm_ptr) aligned, 8 20 8 21 2 totl_time fixed bin(71), /* Time elapsed since meters initialized. */ 8 22 2 last_time fixed bin(71), /* Time metering last performed. */ 8 23 2 full_time fixed bin(71), /* Total time buffer was full. */ 8 24 2 empt_time fixed bin(71), /* Total time buffer was empty. */ 8 25 8 26 2 tw_ave fixed bin(71), /* Time weighted average number of entries 8 27* * in the buffer. Actually this is just 8 28* * a total. To get the average just divide 8 29* * by olm.totl_time. */ 8 30 2 len_ave fixed bin(71), /* Average length of message texts. Actually 8 31* * this is just the total. To get the average 8 32* * just divide by olm.tot_num. */ 8 33 8 34 2 tot_num fixed bin, /* Total number of entries put into buffer. */ 8 35 2 max_num fixed bin, /* Maximum number of entries ever in buffer. */ 8 36 2 full_num fixed bin, /* Total number of times buffer was full. */ 8 37 2 full_flag bit(1); /* ON => buffer is now full. */ 8 38 8 39 8 40 /* End of include file ... oc_log_meters.incl.pl1 */ 55 56 dcl 1 oc_log_meters aligned like olm based; 57 call add ("oc_log_meters", addr (p -> oc_log_meters)); 58 9 1 /* BEGIN INCLUDE FILE pathname_am.incl.pl1 MODIFIED Februrary 2, 1976 BY R. Bratt */ 9 2 /* Modified November 1984 by Keith Loepere to change PAM to use uid's. */ 9 3 9 4 dcl active_hardcore_data$pam_flush_level fixed bin (34) ext, 9 5 active_hardcore_data$pam_flush_buffer (0:31) bit (36) aligned ext; 9 6 9 7 dcl pds$pathname_am ext; 9 8 9 9 dcl PAM_name_max_lth fixed bin (17) static options (constant) init (68); 9 10 9 11 dcl amp ptr; 9 12 dcl 1 pam aligned based (amp), 9 13 2 (fp, /* head of circular pam entry list */ 9 14 bp) ptr unaligned, 9 15 2 (sets, /* number of times a pathname was loaded into pam */ 9 16 gets, /* number of requests for segno given pathname */ 9 17 hits, /* number of sucessful searches for segno */ 9 18 getps, /* number of requests for pathname given segno */ 9 19 hitps, /* number of sucessful searches for pathname */ 9 20 rejects, /* number of pathnames that were too big to fit in pam */ 9 21 clears, /* number of times a directory was terminated */ 9 22 cleared, /* number of entries wiped in clears */ 9 23 flushes, /* number of times pam was flushed due to directory rename */ 9 24 flushed, /* number of entries cleared in response to flushes */ 9 25 overflows, /* number of times entire pam had to be flushed */ 9 26 overflow_uids, /* number of times too many uids in flush buffer appeared in addr space */ 9 27 initial_flush_level, /* global pam flush level at process creation time */ 9 28 flush_level) fixed bin (35), /* last pam flush level seen */ 9 29 2 search (30) aligned, 9 30 3 fp ptr unaligned, 9 31 3 bp ptr unaligned, 9 32 3 segno fixed bin (17) unaligned, 9 33 3 name_len fixed bin (17) unaligned, 9 34 3 name char (68); 9 35 9 36 dcl amep ptr; 9 37 dcl 1 ame based (amep) like pam.search; 9 38 9 39 /* END INCLUDE FILE pathname_am.incl.pl1 */ 59 60 dcl 1 pathname_am aligned like pam based; 61 call add ("pathname_am", addr (p -> pathname_am)); 10 1 /* BEGIN INCLUDE FILE ... pcb.incl.pl1 */ 10 2 10 3 10 4 10 5 /****^ HISTORY COMMENTS: 10 6* 1) change(88-06-15,Berno), approve(88-07-13,MCR7928), 10 7* audit(88-06-15,Parisek), install(88-07-19,MR12.2-1061): 10 8* Add data needed for the uncp multiplexer (DSA gateway) interface 10 9* implementation. 10 10* END HISTORY COMMENTS */ 10 11 10 12 10 13 /* Created 08/14/78 by Robert S. Coren */ 10 14 /* Modified 02/19/80 by Robert S. Coren to add read_first & read_last */ 10 15 /* Modified 12/10/80 by Robert S. Coren to add metering stuff */ 10 16 /* Modified May 1981 by Robert S.Coren to add tandd_attached flag */ 10 17 /* Modified in February 1982 to add: dumpout, turn, enter_receive_pending, 10 18* connection_type, send_lf, extra_nl,lfecho flags for DN7100 */ 10 19 10 20 /* Describes physical channel blocks for FNP channels */ 10 21 10 22 dcl n_pcbs fixed bin; 10 23 dcl pcbp ptr; 10 24 10 25 dcl 1 pcb_array (n_pcbs) based aligned like pcb; 10 26 10 27 dcl 1 pcb aligned based (pcbp), /* physical channel block declaration */ 10 28 2 channel_desc unaligned, 10 29 3 devx fixed bin (17), /* index of LCT entry */ 10 30 3 subchan fixed bin (7) unaligned, /* logical subchannel/lsla slot # correspondence */ 10 31 3 line_number unal, /* regular line number */ 10 32 4 is_hsla bit (1) unaligned, /* on if hsla, off if lsla */ 10 33 4 la_no bit (3) unaligned, /* line adapter (high or low speed) number */ 10 34 4 slot_no bit (6) unaligned, /* physical slot or subchannel number */ 10 35 2 write_first fixed bin (17) unaligned, /* offset of first buffer in output chain */ 10 36 2 write_last fixed bin (17) unaligned, /* offset of last buffer in output chain */ 10 37 2 baud_rate fixed bin (17) unaligned, /* baud rate of channel */ 10 38 2 line_type fixed bin (17) unaligned, /* line type */ 10 39 2 max_buf_size fixed bin (17) unaligned, /* largest buffer to be allocated for output */ 10 40 2 write_cnt fixed bin (17) unaligned, /* number of characters in write chain */ 10 41 2 flags unaligned, 10 42 3 listen bit (1), /* channel is ready for dialup */ 10 43 3 dialed bit (1), /* channel is dialed up or connected */ 10 44 3 send_output bit (1), /* channel is ready for output */ 10 45 3 high_speed bit (1), /* needs large send_out threshold */ 10 46 3 sync_line bit (1), /* synchronous channel */ 10 47 3 end_frame bit (1), /* channel is waiting for formfeed */ 10 48 3 hndlquit bit (1), /* channel in hndlquit mode */ 10 49 3 breakall_enabled bit (1), /* breakall mode allowed for this channel */ 10 50 3 output_mbx_pending bit (1), /* A wtx mbx has been sent, but not relinquished */ 10 51 3 copied_meters_ready bit (1), /* copy_meters operation has completed */ 10 52 3 get_meters_waiting bit (1), /* waiting for get_meters operation to complete */ 10 53 3 tandd_attached bit (1), /* this channel is in use by T & D */ 10 54 3 enter_receive_pending bit (1), /* enter_receive is waiting for send */ 10 55 3 turn bit (1), /* Multics owns the turn */ 10 56 3 extra_nl bit (1), /* add NL at end of buffer (read) */ 10 57 3 send_lf bit (1), /* send lf after read */ 10 58 3 lfecho bit (1), /* Validate lfecho mode */ 10 59 3 dumpout bit (1), /* To purge first write after special dial */ 10 60 3 buffer_flag bit (1), /* Utilisation of a buffer in place of the circular buffer. */ 10 61 3 connection_type bit (2), /* For full-duplex */ 10 62 3 padb bit (6), 10 63 3 uncp_pcbx fixed bin (9) unal uns, /* To manage the full duplex with the datanet 7100 */ 10 64 2 read_first fixed bin (18) unsigned unaligned, /* head of read chain (while reading from FNP) */ 10 65 2 read_last fixed bin (18) unsigned unaligned, /* tail of read chain (likewise) */ 10 66 2 saved_meters_ptr pointer unaligned, /* pointer to (unwired) copy of meters at last dialup */ 10 67 2 copied_meters_offset fixed bin (18) unsigned; /* offset in tty_buf of buffer meters copied to */ 10 68 10 69 /* END INCLUDE FILE ... pcb.incl.pl1 */ 62 call add ("pcb", addr (p -> pcb)); 63 begin; 64 /* BEGIN INCLUDE FILE ... pit.incl.pl1 */ 11 2 11 3 /****^ ******************************************** 11 4* * * 11 5* * Copyright, (C) Honeywell Bull Inc., 1988 * 11 6* * * 11 7* ******************************************** */ 11 8 11 9 /* Requires user_attributes.incl.pl1 */ 11 10 /* Declaration of the Process Inititalization Table (PIT) */ 11 11 11 12 /****^ HISTORY COMMENTS: 11 13* 1) change(86-03-01,Gilcrease), approve(86-03-27,MCR7370), 11 14* audit(86-06-25,Lippard), install(86-06-30,MR12.0-1082): 11 15* First comment for hcom. Modified 750430 by PG to add terminal_access_class 11 16* Modified 6/20/77 by J. Stern to add term_type_name Modified Feb 1980 by M. 11 17* B. Armstrong to implement multiple rate structures. (UNCA) Modified by R. 11 18* McDonald May 1980 to include page charges, replaces cpu in iod (UNCA) 11 19* Modified by Benson I. Margulies November 1981 do declare pit_$, pit_ptr, 11 20* and unaligned character strings. Modified by E. N. Kittlitz January 1982 11 21* for user_attributes.incl.pl1 changes Modified by E. N. Kittlitz October 11 22* 1982 for request_id. Modified by BIM 1984-09-12 for auth range. The max 11 23* copies the pds, but this is the only home of the min. 11 24* 2) change(86-03-01,Gilcrease), approve(86-03-27,MCR7370), 11 25* audit(86-06-25,Lippard), install(86-06-30,MR12.0-1082): 11 26* Add the truncate_absout and restarted bits for the 11 27* -truncate .absout SCP 6297, version 3. 11 28* 3) change(86-12-11,GDixon), approve(87-07-16,MCR7741), 11 29* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 11 30* Changed structure under pit.abs_attributes to use like structure in 11 31* abs_attributes.incl.pl1. This allows the same attributes to be used 11 32* in abs_message_format.incl.pl1 and user_table_entry.incl.pl1 as well as 11 33* this include file. 11 34* 4) change(88-06-03,Parisek), approve(88-06-10,MCR7920), 11 35* audit(88-06-23,Hunter), install(87-07-05,MR12.2-1053): 11 36* Remove "pitmsg" in END comment string. pitmsg.incl.pl1 is no longer a 11 37* name of pit.incl.pl1. 11 38* 5) change(88-07-11,Parisek), approve(88-07-11,MCR7849), 11 39* audit(88-07-03,Lippard), install(88-07-13,MR12.2-1047): 11 40* Removed the ringpad element and added the min_ring & max_ring elements so 11 41* users may access their lowest and/or highest possible login ring value. 11 42* SCP6367. 11 43* END HISTORY COMMENTS */ 11 44 11 45 11 46 /* format: style4 */ 11 47 declare pit_$ bit (36) aligned external static; 11 48 declare pit_ptr pointer; 11 49 11 50 dcl 1 pit aligned based (pit_ptr), 11 51 2 version fixed bin, /* indicates which version of the pit */ 11 52 2 process_type fixed bin, /* initializer, interactive, or absentee process */ 11 53 2 login_responder char (64) unal, /* path name of login responder */ 11 54 11 55 /* All of these are going to be word aligned whether or not they are declared aligned, 11 56* and unaligning them cleans up code in many places */ 11 57 11 58 2 homedir char (64) unal, /* path name of home directory */ 11 59 2 project char (28) unal, /* name of this process' project affiliation */ 11 60 2 account char (32) unal, /* name of account to which this process is charged */ 11 61 2 n_processes fixed bin, /* number of previous processes for this session */ 11 62 2 login_time fixed bin (71), /* clock time at login */ 11 63 2 proc_creation_time fixed bin (71), /* clock time at creation of this process */ 11 64 2 old_proc_cpu fixed bin (71), /* cpu time used by previous processes in this session */ 11 65 2 user_weight fixed bin, /* weight of this process */ 11 66 2 anonymous fixed bin, /* 1 if anonymous user */ 11 67 2 login_name char (28) unal, /* name of user given at login */ 11 68 2 logout_pid bit (36), /* process id of answering service */ 11 69 2 logout_channel fixed bin (71), /* channel for signalling logouts to answering service */ 11 70 2 group char (8) unal, /* party group */ 11 71 2 min_ring fixed bin, /* min ring */ 11 72 2 max_ring fixed bin, /* max ring */ 11 73 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 11 74 2 whox fixed bin, /* this process's index in whotab (or 0) */ 11 75 2 outer_module char (32) unaligned, 11 76 2 pad (2) fixed bin, 11 77 2 dont_call_init_admin bit (1) aligned, /* Call process_overseer_ directly */ 11 78 2 terminal_access_class bit (72) aligned, /* access class of user's terminal */ 11 79 2 dollar_charge float bin, /* Month-to-date expenditure */ 11 80 2 dollar_limit float bin, /* Limit stop on usage */ 11 81 2 shift_limit (0:7) float bin, /* Stops on each shift's usage */ 11 82 2 logins fixed bin, /* Number of logins this month */ 11 83 2 crashes fixed bin, /* Number of sessions crashed */ 11 84 2 interactive (0:7), /* interactive usage by shift */ 11 85 3 charge float bin, /* Total charge */ 11 86 3 xxx fixed bin, 11 87 3 cpu fixed bin (71), /* CPU usage in microseconds */ 11 88 3 core fixed bin (71), /* Memory usage in page-microseconds */ 11 89 3 connect fixed bin (71), /* Connect time in microseconds */ 11 90 3 io_ops fixed bin (71), /* Terminal I/O operations */ 11 91 2 absentee (4), /* Absentee usage by queue */ 11 92 3 charge float bin, /* Total absentee charge */ 11 93 3 jobs fixed bin, /* Number of jobs */ 11 94 3 cpu fixed bin (71), /* CPU usage in microseconds */ 11 95 3 memory fixed bin (71), /* Memory usage in mu */ 11 96 2 iod (4), /* IO Daemon usage, by queue */ 11 97 3 charge float bin, /* Total charge */ 11 98 3 pieces fixed bin, /* Number of requests */ 11 99 3 pad fixed bin (35), 11 100 3 pages fixed bin (35), /* number of pages output */ 11 101 3 lines fixed bin (71), /* Record count */ 11 102 2 devices (16) float bin, /* Usage of attached devices */ 11 103 2 time_last_reset fixed bin (71), /* time last updated the PDT */ 11 104 2 absolute_limit float bin, /* Limit, not reset monthly */ 11 105 2 absolute_spent float bin, /* Spending against this */ 11 106 2 absolute_cutoff fixed bin (71), /* Spending will be reset on this date */ 11 107 2 absolute_increm fixed bin, /* .. time increment code. 0 = don't reset */ 11 108 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0= default rates) */ 11 109 2 pad1a fixed bin (27) unsigned unaligned, /* remainder of word */ 11 110 2 request_id fixed bin (71), /* absentee request id */ 11 111 2 authorization_range (2) bit (72) aligned, 11 112 2 pad1 (73) fixed bin, /* extra space */ 11 113 2 charge_type fixed bin, /* device charge type of console */ 11 114 2 term_type_name char (32) unal, /* terminal type name */ 11 115 2 line_type fixed bin, /* line type of user's console */ 11 116 2 tty_type fixed bin, /* old terminal type (obsolete, kept for compatibility) */ 11 117 2 service_type fixed bin, /* type of service console is performing */ 11 118 2 tty_answerback char (4) unaligned, /* original answerback of user's console */ 11 119 2 old_tty char (6), /* (obsolete) attachment name of user's console */ 11 120 2 standby fixed bin, /* 1 if standby user */ 11 121 2 login_line char (120) unal, /* line typed at login */ 11 122 2 cant_bump_until fixed bin (71), /* cannot be preempted until this time (0 for abs) */ 11 123 2 input_seg char (168) unal, /* path name of absentee input file */ 11 124 2 output_seg char (168) unal, /* path name of absentee output file */ 11 125 2 max_cpu_time fixed bin, /* max number of seconds allowed to this absentee proc */ 11 126 2 abs_queue fixed bin, /* absentee queue if absentee, else -1 */ 11 127 2 abs_attributes aligned like user_abs_attributes, /* include abs_attributes.incl.pl1 */ 11 128 2 arg_info_ptr fixed bin (18) unsigned, /* Relative pointer to information on absentee args. */ 11 129 2 old_proc_core fixed bin (71), /* Memory usage by previous processes in this session */ 11 130 2 old_proc_io_ops fixed bin (71), /* I/O operations from previous processes in this session */ 11 131 2 tty char (32) unaligned, /* Attachment name of users channel */ 11 132 2 start_arg_info fixed bin; /* Put absentee args information here. */ 11 133 11 134 11 135 /* Structure to contain information on absentee arguments */ 11 136 dcl 1 arg_info aligned based, 11 137 2 arg_count fixed bin, /* Number of arguments for replacement in absentee segment */ 11 138 2 ln_args fixed bin, /* Length of string containing arguments. */ 11 139 2 arg_lengths (25 refer (arg_info.arg_count)) fixed bin, /* Array of argument lengths */ 11 140 2 args char (128 refer (arg_info.ln_args)) unal; 11 141 /* Args used for replacement in absentee control segment. */ 11 142 11 143 declare PIT_version_3 fixed bin int static options (constant) init (3); 11 144 11 145 /* END INCLUDE FILE ... pit.incl.pl1 */ 64 65 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 12 2 12 3 12 4 /****^ HISTORY COMMENTS: 12 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 12 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 12 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 12 8* attribute switches. 12 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 12 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 12 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 12 12* be deleted. 12 13* B) Add constants identifying attributes that can be changed by user at 12 14* login, etc. 12 15* END HISTORY COMMENTS */ 12 16 12 17 12 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 12 19 12 20 /* format: style4 */ 12 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 12 22 (2 administrator bit (1), /* 1 system administrator privileges */ 12 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 12 24 2 nobump bit (1), /* 2 user cannot be bumped */ 12 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 12 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 12 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 12 28* . of same project (distinct from "nobump") */ 12 29 2 nolist bit (1), /* 7 don't list user on "who" */ 12 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 12 31 2 multip bit (1), /* 9 user may have several processes */ 12 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 12 33 2 brief bit (1), /* 11 no login or logout message */ 12 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 12 35 2 vhomedir bit (1), /* 13 user may change homedir */ 12 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 12 37 2 sb_ok bit (1), /* 15 user may be standby */ 12 38 2 pm_ok bit (1), /* 16 user may be primary */ 12 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 12 40 2 daemon bit (1), /* 18 user may login as daemon */ 12 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 12 42 2 no_warning bit (1), /* 20 no warning message */ 12 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 12 44* . in PDT: this user has an individual load control group */ 12 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 12 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 12 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 12 48 2 pad bit (12)) unaligned; 12 49 12 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 12 51 ("none", /* 0 */ 12 52 "administrator", /* 1 */ 12 53 "primary_line", /* 2 */ 12 54 "nobump", /* 3 */ 12 55 "guaranteed_login", /* 4 */ 12 56 "anonymous", /* 5 */ 12 57 "nopreempt", /* 6 */ 12 58 "nolist", /* 7 */ 12 59 "dialok", /* 8 */ 12 60 "multip", /* 9 */ 12 61 "bumping", /* 10 */ 12 62 "brief", /* 11 */ 12 63 "vinitproc", /* 12 */ 12 64 "vhomedir", /* 13 */ 12 65 "nostartup", /* 14 */ 12 66 "no_secondary", /* 15 */ 12 67 "no_prime", /* 16 */ 12 68 "no_eo", /* 17 */ 12 69 "daemon", /* 18 */ 12 70 "", /* 19 vdim OBSOLETE */ 12 71 "no_warning", /* 20 */ 12 72 "igroup", /* 21 */ 12 73 "save_pdir", /* 22 */ 12 74 "disconnect_ok", /* 23 */ 12 75 "save_on_disconnect"); /* 24 */ 12 76 12 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 12 78 ("null", /* 0 */ 12 79 "admin", /* 1 */ 12 80 "", "", /* 2 - 3 */ 12 81 "guar", /* 4 */ 12 82 "anon", /* 5 */ 12 83 "", "", /* 6 - 7 */ 12 84 "dial", /* 8 */ 12 85 "multi_login", /* 9 */ 12 86 "preempting", /* 10 */ 12 87 "", /* 11 */ 12 88 "v_process_overseer", /* 12 */ 12 89 "v_home_dir", /* 13 */ 12 90 "no_start_up", /* 14 */ 12 91 "no_sec", /* 15 */ 12 92 "no_primary", /* 16 */ 12 93 "no_edit_only", /* 17 */ 12 94 "op_login", /* 18 */ 12 95 "", /* 19 */ 12 96 "nowarn", /* 20 */ 12 97 "", "", "", /* 21 - 23 */ 12 98 "save"); /* 24 */ 12 99 12 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 12 101 options(constant) init("000000000010000000010000000000000000"b); 12 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 12 103 12 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 12 105 options(constant) init("000000000010000000010000000000000000"b); 12 106 /* PDT value for (brief, no_warning) is default */ 12 107 12 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 12 109 options(constant) init("000100000110010000010000000000000000"b); 12 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 12 111 13 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 13 2 13 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 4 /* */ 13 5 /* This include file describes the attributes of an absentee job. It is */ 13 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 13 7 /* and PIT.incl.pl1. */ 13 8 /* */ 13 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 13 10 13 11 /****^ HISTORY COMMENTS: 13 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 13 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 14* Separated abs_attributes from the request structure 13 15* (abs_message_format.incl.pl1) so that the identical structure could be 13 16* used in the ute structure (user_table_entry.incl.pl1). 13 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 13 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 13 19* Added ABS_ATTRIBUTE_NAMES array. 13 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 13 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 13 22* Added the no_start_up flag. SCP6367 13 23* END HISTORY COMMENTS */ 13 24 13 25 dcl 1 user_abs_attributes aligned based, 13 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 13 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 13 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 13 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 13 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 13 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 13 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 13 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 13 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 13 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 13 36 2 attributes_pad bit (26) unaligned; 13 37 13 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 13 39 "restartable", 13 40 "user_deferred_until_time", 13 41 "proxy", 13 42 "set_bit_cnt", 13 43 "time_in_gmt", 13 44 "user_deferred_indefinitely", 13 45 "secondary_ok", 13 46 "truncate_absout", 13 47 "restarted", 13 48 "no_start_up"); 13 49 13 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 13 51 12 112 12 113 12 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 65 66 call add ("pit", addr (p -> pit)); 67 end; 68 dcl ptp pointer; 14 1 /* BEGIN INCLUDE FILE ... ptw.adp.incl.pl1 ... 02/11/81, for ADP conversion */ 14 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 14 3 14 4 dcl 1 adp_core_ptw aligned based (ptp), /* PTW for in-core page */ 14 5 2 pad1 bit (2) unaligned, 14 6 2 frame fixed bin (16) unsigned unaligned, /* Core frame number */ 14 7 2 flags like adp_ptw_flags unaligned; /* add_type = "00"b; */ 14 8 14 9 dcl 1 adp_ptw aligned based (ptp), /* General declaration for out-of-core PTW */ 14 10 2 add bit (18) unaligned, 14 11 2 flags like adp_ptw_flags unaligned; 14 12 14 13 dcl 1 adp_special_ptw aligned based (ptp) like adp_ptw; /* Page is somewhere peculiar -- add_type = "01"b */ 14 14 dcl 1 adp_real_disk_ptw aligned based (ptp) like adp_ptw; /* PTW for page actually on disk -- add_type = "10"b */ 14 15 dcl 1 adp_null_disk_ptw aligned based (ptp) like adp_ptw; /* PTW for page not yet on disk -- add_type = "11"b */ 14 16 14 17 dcl 1 adp_ptw_flags unaligned based, /* Common lower halfword for ADP PTW */ 14 18 (2 add_type bit (4), /* See specific declarations */ 14 19 2 er bit (1), /* error on last page I/O (also used by post-purge as temp) */ 14 20 2 wired bit (1), /* page is to remain in core */ 14 21 2 os bit (1), /* page is out-of-service (I/O in progress) */ 14 22 2 phu1 bit (1), /* page has been used in the quantum */ 14 23 2 phm1 bit (1), /* Cumulative OR of hardware phm's */ 14 24 14 25 2 unusable1 bit (3), /* Shares hardware byte */ 14 26 2 valid bit (1), /* "1"b if page is in core */ 14 27 2 write bit (1), /* "1"b if page may be written into */ 14 28 2 unusable2 bit (1), /* Shares hardware byte */ 14 29 2 iox bit (1), /* "1"b if page is to be present to IOX */ 14 30 2 phm bit (1), /* page has been modified bit */ 14 31 2 phu bit (1)) unaligned; /* page has been used bit */ 14 32 14 33 /* END INCLUDE FILE ... ptw.adp.incl.pl1 */ 69 call add ("adp_core_ptw", addr (p -> adp_core_ptw)); 70 call add ("adp_ptw", addr (p -> adp_ptw)); 15 1 /* BEGIN INCLUDE FILE ... ptw.l68.incl.pl1 ... 02/26/81, for ADP conversion */ 15 2 /* Note: This include file has an ALM counterpart made with cif. Keep it up to date */ 15 3 15 4 dcl 1 l68_core_ptw aligned based (ptp), /* In-core page descriptor */ 15 5 2 frame fixed bin (14) unsigned unaligned, /* Core frame number */ 15 6 2 pad1 bit (4) unaligned, 15 7 2 flags unaligned like l68_ptw_flags; 15 8 15 9 dcl 1 l68_ptw aligned based (ptp), /* General declaration for out-of-core PTW */ 15 10 2 add bit (18) unaligned, 15 11 2 flags like l68_ptw_flags unaligned; 15 12 15 13 dcl 1 l68_special_ptw aligned based (ptp) like l68_ptw; /* Page is somewhere peculiar -- add_type = "01"b */ 15 14 dcl 1 l68_real_disk_ptw aligned based (ptp) like l68_ptw; /* PTW for page actually on disk -- add_type = "10"b */ 15 15 dcl 1 l68_null_disk_ptw aligned based (ptp) like l68_ptw; /* PTW for page not yet on disk -- add_type = "11"b */ 15 16 15 17 dcl 1 l68_ptw_flags unaligned based, /* Various software/hardware flags */ 15 18 (2 add_type bit (4), /* 0000=null, 1000=core, 0100=disk, 0010=pd, 0001=swap */ 15 19 2 first bit (1), /* the page has not yet been written out */ 15 20 2 er bit (1), /* error on last page I/O (also used by post-purge as temp) */ 15 21 15 22 2 pad1 bit (1), 15 23 2 unusable1 bit (1), /* can't be used because hardware resets this bit */ 15 24 2 phu bit (1), /* page has been used bit */ 15 25 15 26 2 phm1 bit (1), /* Cumulative OR of hardware phm's */ 15 27 2 nypd bit (1), /* must be moved to paging device */ 15 28 2 phm bit (1), /* page has been modified bit */ 15 29 15 30 2 phu1 bit (1), /* page has been used in the quantum */ 15 31 2 wired bit (1), /* page is to remain in core */ 15 32 2 os bit (1), /* page is out-of-service (I/O in progress) */ 15 33 2 valid bit (1), /* directed fault if this is 0 (page not in core) */ 15 34 2 df_no bit (2)) unaligned; /* directed fault number for page faults */ 15 35 15 36 /* END INCLUDE FILE ... ptw.l68.incl.pl1 */ 71 call add ("l68_core_ptw", addr (p -> l68_core_ptw)); 72 call add ("l68_ptw", addr (p -> l68_ptw)); 16 1 /* BEGIN INCLUDE FILE ... pv_holdt.incl.pl1 ... */ 16 2 16 3 16 4 dcl pv_holdtp ptr; 16 5 16 6 dcl 1 pv_holdt (1 : 64) based (pv_holdtp) aligned, 16 7 16 8 2 pvtx fixed bin(17) unaligned, 16 9 2 apterp bit(18) unaligned; 16 10 16 11 16 12 /* END INCLUDE FILE ... pv_holdt.incl.pl1 ...*/ 73 call add ("pv_holdt", addr (p -> pv_holdt)); 17 1 /* BEGIN INCLUDE FILE ... pvt.incl.pl1 ... last modified January 1982 */ 17 2 17 3 17 4 /* The physical volume table (PVT) is a wired-down table. 17 5* It has one entry for each spindle present, be it for 17 6* Storage System or "I/O" use. 17 7**/ 17 8 17 9 dcl pvt$ ext, 17 10 pvtp ptr; 17 11 17 12 17 13 dcl 1 pvt based (pvtp) aligned, 17 14 17 15 2 n_entries fixed bin (17), /* number of PVT entries */ 17 16 2 max_n_entries fixed bin (17), /* max number of PVT entries */ 17 17 2 n_in_use fixed bin (17), /* number of PVT entries in use */ 17 18 2 rwun_pvtx fixed bin, /* rewind_unloading pvtx */ 17 19 2 shutdown_state fixed bin, /* state of previous shutdown */ 17 20 2 esd_state fixed bin, /* state of ESD, >0 iff in ESD */ 17 21 2 prev_shutdown_state fixed bin, /* shutdown state of previous bootload */ 17 22 2 prev_esd_state fixed bin, /* ESD state of previous bootload */ 17 23 17 24 2 time_of_bootload fixed bin (71), /* Time of bootload */ 17 25 2 root_lvid bit (36) aligned, /* Logical volume ID of Root Logical Volume (RLV) */ 17 26 2 root_pvid bit (36) aligned, /* Physical volume ID of Root Physical Volume (RPV) */ 17 27 2 root_pvtx fixed bin, /* Index to PVTE for Root Physical Volume (RPV) */ 17 28 2 root_vtocx fixed bin, /* VTOCE index for root (>) */ 17 29 2 disk_table_vtocx fixed bin, /* VTOCE index for disk table on RPV */ 17 30 2 disk_table_uid bit (36) aligned, /* File System UID for disk_table */ 17 31 17 32 2 rpvs_requested bit (1) aligned, /* RPVS keyword given on BOOT */ 17 33 2 rpv_needs_salv bit (1) aligned, /* RPV required (not requested) salvage */ 17 34 2 rlv_needs_salv bit (1) aligned, /* RLV required (not requested) salvage */ 17 35 2 volmap_lock_wait_constant bit (36) aligned,/* For constructing wait event: OR pvte_rel into lower */ 17 36 2 volmap_idle_wait_constant bit (36) aligned,/* For constructing wait event: OR pvte_rel into lower */ 17 37 2 vtoc_map_lock_wait_constant bit (36) aligned, /* For constructing wait event: OR pvte_rel into lower */ 17 38 2 n_volmap_locks_held fixed bin (17), /* Current number of volmap locks held */ 17 39 2 n_vtoc_map_locks_held fixed bin (17), /* Current number of VTOC Map locks held */ 17 40 17 41 2 last_volmap_time fixed bin (71), /* Time a volmap was last locked/unlocked */ 17 42 2 last_vtoc_map_time fixed bin (71), /* Time a VTOC Map was last locked/unlocked */ 17 43 2 total_volmap_lock_time fixed bin (71), /* Total time volmap's were locked (integral) */ 17 44 2 total_vtoc_map_lock_time fixed bin (71), /* Total time VTOC Maps were locked (integral) */ 17 45 17 46 2 n_volmap_locks fixed bin (35), /* Number times a volmap was locked */ 17 47 2 n_vtoc_map_locks fixed bin (35), /* Number times a vtoc_map was locked */ 17 48 2 volmap_lock_nowait_calls fixed bin (35), /* Number calls to lock volmap, no wait */ 17 49 2 volmap_lock_nowait_fails fixed bin (35), /* Number times lock failed */ 17 50 2 volmap_lock_wait_calls fixed bin (35), /* Number calls to lock volmap, wait */ 17 51 2 volmap_lock_wait_fails fixed bin (35), /* Number times lock failed */ 17 52 2 pad (2) bit (36) aligned, 17 53 17 54 2 array fixed bin (71); /* Array of PVTE's -- must be double-word aligned */ 17 55 17 56 17 57 17 58 /* END INCLUDE FILE ...pvt.incl.pl1 */ 74 75 call add ("pvt", addr (p -> pvt)); 18 1 /* START OF: pvte.incl.pl1 July 1982 * * * * * * * * * * * * * * * * */ 18 2 18 3 /* Added pc_vacating, Benson Margulies 84-10-17 */ 18 4 18 5 /****^ HISTORY COMMENTS: 18 6* 1) change(86-04-11,Fawcett), approve(86-04-11,MCR7383), 18 7* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 18 8* Add the support for subvolumes 18 9* 2) change(86-04-11,Lippard), approve(86-04-11,MCR7309), 18 10* audit(86-05-29,GDixon), install(86-07-18,MR12.0-1098): 18 11* Add root_lv flag to mount RLVs that do not have hardcore partitions. 18 12* 3) change(88-05-27,GWMay), approve(88-05-27,MCR7883), 18 13* audit(88-06-14,Beattie), install(88-07-19,MR12.2-1061): 18 14* Added inconsistent_dbm bit for determining the status of volume 18 15* dumper bit maps. 18 16* END HISTORY COMMENTS */ 18 17 18 18 dcl pvt$array aligned external; 18 19 dcl pvt$max_n_entries fixed bin external; 18 20 18 21 dcl pvt_arrayp ptr; 18 22 dcl pvtep ptr; 18 23 18 24 dcl 1 pvt_array (pvt$max_n_entries) aligned like pvte based (pvt_arrayp); 18 25 18 26 dcl 1 pvte based (pvtep) aligned, 18 27 18 28 2 pvid bit (36), /* physical volume ID */ 18 29 18 30 2 lvid bit (36), /* logical volume ID */ 18 31 18 32 2 dmpr_in_use (3) bit (1) unaligned, /* physical volume dumper interlock */ 18 33 2 is_sv bit (1) unaligned, /* true if this entry defines a subvolume */ 18 34 2 root_lv bit (1) unaligned, /* true if this is on the root LV */ 18 35 2 removable_pack bit (1) unaligned, /* true if packs are eremoveable */ 18 36 2 inconsistent_dbm bit (1) unaligned, /* true if trouble count is incremented */ 18 37 2 pad3 bit (2) unaligned, 18 38 2 brother_pvtx fixed bin (8) unaligned,/* next pvte in lv chain */ 18 39 2 skip_queue_count fixed bin (18) unsigned unaligned, /* number of times this pv skipped for per-proc allocation due to saturation */ 18 40 18 41 18 42 18 43 2 devname char (4), /* device name */ 18 44 18 45 (2 device_type fixed bin (8), /* device type */ 18 46 2 logical_area_number fixed bin (8), /* disk drive number */ 18 47 2 used bit (1), /* TRUE if this entry is used */ 18 48 2 storage_system bit (1), /* TRUE for storage system (vs io disk) */ 18 49 2 permanent bit (1), /* TRUE if cannot be demounted */ 18 50 2 testing bit (1), /* Protocol bit for read_disk$test */ 18 51 2 being_mounted bit (1), /* TRUE if the physical volume is being mounted */ 18 52 2 being_demounted bit (1), /* TRUE if the pysical volume is being demounted */ 18 53 2 check_read_incomplete bit (1), /* page control should check read incomplete */ 18 54 2 device_inoperative bit (1), /* TRUE if disk_control decides dev busted */ 18 55 2 rpv bit (1), /* TRUE if this is the root physical volume */ 18 56 2 scav_check_address 18 57 bit (1), /* TRUE is page control should check deposits/withdrawals against scavenger table */ 18 58 2 deposit_to_volmap bit (1), /* TRUE if deposits should got to volume map, not stock */ 18 59 2 being_demounted2 bit (1), /* No more vtoc I/O during demount */ 18 60 2 pc_vacating bit (1), /* No more withdraws from this volume -- for debugging */ 18 61 2 vacating bit (1), /* don't put new segs on this vol */ 18 62 2 hc_part_used bit (1), /* HC part set up by init_pvt */ 18 63 2 volmap_lock_notify bit (1) unal, /* TRUE if notify required when volmap lock is unlocked */ 18 64 2 volmap_idle_notify bit (1) unal, /* TRUE if notify required when volmap state is idle */ 18 65 2 vtoc_map_lock_notify bit (1) unal, /* TRUE if notify required when vtoc map lock is unlocked */ 18 66 18 67 18 68 2 n_free_vtoce fixed bin (17), /* number of free VTOC entries */ 18 69 2 vtoc_size fixed bin (17), /* size of the VTOC part of the disk - in records */ 18 70 18 71 2 dbmrp (2) bit (18), /* rel ptr to dumber bit maps for this volume */ 18 72 18 73 2 nleft fixed bin (17), /* number of records left */ 18 74 2 totrec fixed bin (17)) unaligned, /* Total records in this map */ 18 75 18 76 2 dim_info bit (36), /* Information peculiar to DIM */ 18 77 2 sv_num fixed bin, /* the number of this subvolume starting at 0 */ 18 78 2 num_of_svs fixed bin, /* number of subvolumes for this device */ 18 79 2 records_per_cyl fixed bin, 18 80 2 record_factor fixed bin, /* the record factor for logical to real seek calculation */ 18 81 2 sv_name char (2) aligned, 18 82 2 curn_dmpr_vtocx (3) fixed bin unaligned,/* current vtocx being dumped */ 18 83 2 n_vtoce fixed bin unaligned, /* number of vtoce on this volume */ 18 84 18 85 2 baseadd fixed bin (18) uns unaligned, /* Base of paging region */ 18 86 2 pad2 bit (18) unaligned, 18 87 18 88 2 pad_for_mod_2 fixed bin (35), /* Make volmap_seg_sdw double word aligned */ 18 89 18 90 2 volmap_seg_sdw fixed bin (71), /* SDW describing volmap_seg */ 18 91 18 92 2 volmap_astep ptr unal, /* Packed pointer to ASTE for volmap_seg */ 18 93 18 94 2 volmap_offset bit (18) unal, /* Offset in volmap_seg of volume map */ 18 95 2 vtoc_map_offset bit (18) unal, /* Offset in volmap_seg of VTOC map */ 18 96 18 97 18 98 2 volmap_lock bit (36) aligned, /* Lock on volume map operations */ 18 99 18 100 2 vtoc_map_lock bit (36) aligned, /* Lock on VTOC map operations */ 18 101 18 102 2 volmap_stock_ptr ptr unal, /* Packed pointer to record stock */ 18 103 18 104 2 vtoc_map_stock_ptr ptr unal, /* Packed pointer to VTOCE stock */ 18 105 18 106 2 volmap_async_state fixed bin (17) unaligned, /* Asynchronous update state of Volume Map */ 18 107 2 volmap_async_page fixed bin (17) unaligned, /* Page number for asynchronous update */ 18 108 18 109 2 vol_trouble_count fixed bin (17) unaligned, /* Count of inconsistencies since last salvage */ 18 110 2 scavenger_block_rel bit (18) unaligned; /* Offset to scavenger block, ^0 => scavenging */ 18 111 18 112 18 113 dcl (VOLMAP_ASYNC_IDLE init (0), /* for volmap_async_state */ 18 114 VOLMAP_ASYNC_READ init (1), 18 115 VOLMAP_ASYNC_WRITE init (2)) fixed bin int static options (constant); 18 116 18 117 18 118 /* END OF: pvte.incl.pl1 * * * * * * * * * * * * * * * * */ 76 77 call add ("pvte", addr (p -> pvte)); 78 call add ("pvt_array", addr (p -> pvt_array)); 79 19 1 /* Begin include file ... rcp_com_seg.incl.pl1 19 2* * 19 3* * Created on 11/20/74 by Bill Silver. 19 4* * Modified on 09/19/77 by R.J.C. Kissel to add label authentication bits. 19 5* * Modified on 12/09/78 by Michael R. Jordan to add removable media bit and label_type. 19 6* * Modified 1/79 by R.J.C. Kissel to add disk label authentication bits. 19 7* * Modified 2/79 by Michael R. Jordan to add volume_density. 19 8* * Modified 11/84 by Paul Farley to add fips flag. 19 9* * Modified 1/3/85 by Fawcett to allow room for mca device type 19 10* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 19 11* * This include file defines the Resource Control Package communication segment. 19 12* * This segment is used to communicate requests between the various internal 19 13* * parts of RCP. 19 14**/ 19 15 19 16 /****^ HISTORY COMMENTS: 19 17* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 19 18* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 19 19* Support MCA and FIPS. 19 20* END HISTORY COMMENTS */ 19 21 19 22 dcl lock_info_ptr ptr; /* Pointer to lock info structure. */ 19 23 dcl rcs_ptr ptr; /* Pointer to base of RCS. */ 19 24 dcl rcse_ptr ptr; /* Pointer to an RCS entry. */ 19 25 19 26 dcl 1 based_rcp_id based aligned, /* Overlay of an rcp_id. */ 19 27 (2 id_count fixed bin (17), /* Unique count index. */ 19 28 2 rcse_off bit (18)) unaligned; /* Offset of rcp_com_seg entry. */ 19 29 19 30 dcl 1 rcs based (rcs_ptr) aligned, /* Begin at word zero of rcp_com_seg. */ 19 31 2 lock_info like lock_info, /* Data used to lock this segment. */ 19 32 2 ws_maxs (8) fixed bin (19), /* Max IOI workspace size in words. */ 19 33 2 ws_pmaxs (8) fixed bin (19), /* Max IOI workspace size for priv attachments. */ 19 34 2 to_maxs (8) fixed bin (71), /* Max IOI time-out intervals in microseconds. */ 19 35 2 sys_directory char (32), /* Directory used to define a system process. */ 19 36 2 sys_acs char (32), /* Entry name used to define a system process. */ 19 37 2 acs_directory char (32), /* Directory containing device ACSs. */ 19 38 2 id_count fixed bin (35), /* Counter used to form rcp_id. */ 19 39 2 max_entries fixed bin, /* Maximum number of entries allowed. */ 19 40 2 num_entries fixed bin, /* Total number of entries. */ 19 41 2 first_free_off bit (18), /* Offset of first free entry. */ 19 42 2 entry (0 refer (rcs.num_entries)) /* Array of request entries. */ 19 43 like rcse, /* See structure below. */ 19 44 2 end bit (36); /* End of rcp_com_seg. */ 19 45 19 46 dcl 1 lock_info based (lock_info_ptr) aligned, /* Used to meter locking. */ 19 47 2 lock bit (36), /* The lock itself. */ 19 48 2 num_locks fixed bin (35), /* Number of times locked. */ 19 49 2 num_lock_waits fixed bin (35), /* Number of lock waits. */ 19 50 2 time_of_lock fixed bin (71), /* Time of last lock. */ 19 51 2 tot_lock_time fixed bin (71), /* Total time locked. */ 19 52 2 tot_wait_time fixed bin (71), /* Total time waiting for lock. */ 19 53 2 starting_time fixed bin (71); /* Time metering started. */ 19 54 19 55 dcl 1 rcse based (rcse_ptr) aligned, /* Up to state must = rcpd.device. */ 19 56 2 device_name char (8), /* Name of device associated with this entry. */ 19 57 2 volume_name char (32), /* Volume name. Blank => no volume. */ 19 58 2 dtypex fixed bin, /* Device type index. */ 19 59 2 model fixed bin, /* Device model number. */ 19 60 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 19 61 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 19 62 2 state_time fixed bin (71), /* Time device put into current state. */ 19 63 2 state fixed bin, /* 0 - free 1 - assigning 2 - assigned */ 19 64 /* 3 - attaching 4 - attached 5 - completed. */ 19 65 19 66 /* * * * * ** Following fields are unique to RCS entry. */ 19 67 2 kind fixed bin, /* 1 => attach, 2 => assign */ 19 68 2 free_off bit (18), /* Offset of next free entry. 0 => not free. */ 19 69 2 user_off bit (18), /* Offset of next entry in user list. */ 19 70 2 device_off bit (18), /* Offset of device entry in RCPD. */ 19 71 2 volume_off bit (18), /* Offset of volume entry in RCPD. */ 19 72 2 rcse_off bit (18), /* Offset of associated RCS entry. */ 19 73 2 caller_level fixed bin, /* Caller's validation level. */ 19 74 2 disposition bit (1), /* ON => retain, OFF => unassign. */ 19 75 2 flags, /* Special info flags. */ 19 76 (3 device bit (1), /* ON => assigning a specific device. */ 19 77 3 priv bit (1), /* ON => attached with IOI privilege. */ 19 78 3 system bit (1), /* ON => assigned to a system process. */ 19 79 3 t_and_d bit (1), /* ON => T&D attachment. */ 19 80 3 volume bit (1), /* ON => volume associated with this device. */ 19 81 3 writing bit (1), /* ON => writing on volume. */ 19 82 3 have_auth bit (1), /* ON => tape volume authenticated. */ 19 83 3 need_auth bit (1), /* ON => tape volume needs authentication. */ 19 84 3 auth_set bit (1), /* ON => "have_auth" has been set. */ 19 85 3 preload_allowed bit (1), /* ON => preloading of volumes is allowed. */ 19 86 3 preloaded bit (1), /* ON => volume may be loaded on device. */ 19 87 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 19 88 3 disk_ss_pack bit (1), /* ON => disk is a storage system volume. */ 19 89 3 disk_copy_of_ss_pack bit (1), /* ON => disk is a copy of a storage system volume. */ 19 90 3 disk_io_pack bit (1), /* ON => disk has label but is not storage system. */ 19 91 3 disk_unregistered bit (1), /* ON => disk is unregistered storage system volume. */ 19 92 3 disk_unreadable bit (1), /* ON => io error reading disk label. */ 19 93 3 must_auto_register bit (1), /* ON => unregistered volume requested */ 19 94 3 fips bit (1), /* ON => FIPS device. */ 19 95 3 no_protect bit (1), /* ON => device has no protect sw. */ 19 96 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 19 97 3 unused bit (6), 19 98 3 volume_density_index fixed bin (3) unsigned, /* Density of volume */ 19 99 3 label_type fixed bin (6) unsigned)unaligned, /* Type of label read by RCP. */ 19 100 2 rcp_id bit (36), /* ID of this entry. */ 19 101 2 event_id fixed bin (71), /* Caller's event channel ID. */ 19 102 2 process_id bit (36), /* ID of calling process. */ 19 103 2 group_id char (32), /* Group ID of calling process. */ 19 104 2 ecode fixed bin (35), /* Assignment error code. */ 19 105 2 version_num fixed bin, /* Device info version number. */ 19 106 2 workspace_max fixed bin (19), /* Max size of IOI workspace buffer. */ 19 107 2 timeout_max fixed bin (71), /* Max IOI time-out interval. */ 19 108 2 ioi_index fixed bin, /* IOI device index. */ 19 109 2 workspace_ptr ptr, /* Pointer to IOI workspace buffer. */ 19 110 2 caller_comment char (64); /* Caller's comment. */ 19 111 19 112 /* End of include file ... rcp_com_seg.incl.pl1 */ 80 81 call add ("rcs", addr (p -> rcs)); 82 call add ("rcse", addr (p -> rcse)); 20 1 /* Begin include file ... rcp_data.incl.pl1 20 2* * 20 3* * Created on 09/06/74 by Bill Silver. 20 4* * This include file defines the Resource Control Package data base, rcp_data. 20 5* * It is initialized in ring 0 by rcp_init. It is maintained in ring 1 by RCP. 20 6* * It contains information about all of the devices and volumes managed by RCP. 20 7* * This include file references rcp_com_seg.incl.pl1. 20 8* 20 9* * Modified by R.J.C. Kissel on 10/5/77 to add the check_label bit. 20 10* * Modified by Michael R. Jordan on 04/24/78 to add modes and attached flag. 20 11* * Modified on 12/09/78 to add removable media bit. 20 12* * Modified 3/79 by Michael R. Jordan for MR7.0R. 20 13* * Modified 3/79 by C. D. Tavares for expandable RCP modes. 20 14* * Modified 11/84 by Paul Farley to add fips flag. 20 15* * Modified 02/85 by Paul Farley to add no_protect and opr_int_available flags. 20 16**/ 20 17 20 18 /****^ HISTORY COMMENTS: 20 19* 1) change(85-09-09,Farley), approve(85-09-09,MCR6979), 20 20* audit(85-12-09,CLJones), install(86-03-21,MR12.0-1033): 20 21* Support FIPS and IMU. 20 22* END HISTORY COMMENTS */ 20 23 20 24 dcl rcpd_ptr ptr; /* Points to base of RCPD. */ 20 25 dcl dtype_ptr ptr; /* Points to a device type entry. */ 20 26 dcl device_ptr ptr; /* Points to a device entry. */ 20 27 dcl volume_ptr ptr; /* Points to a volume entry. */ 20 28 20 29 dcl 1 rcpd based (rcpd_ptr) aligned, /* Begin at word 0 of RCPD. */ 20 30 2 lock_info like lock_info, /* Data used to lock this segment. */ 20 31 2 init bit (1) unal, /* ON => rcp_ring1_init_ has executed */ 20 32 2 modes like rcp_init_flags unaligned, 20 33 2 tot_dtypes fixed bin, /* Number of known device types. */ 20 34 2 tot_devices fixed bin, /* Total number of devices configured. */ 20 35 2 tot_volumes fixed bin, /* Number of possible attached volumes. */ 20 36 2 last_volume fixed bin, /* The last volume entry currently in use. */ 20 37 2 mtimer_chan fixed bin (71), /* Event channel for mount timer. */ 20 38 2 mtimer_pid bit (36), /* ID of mount timer process. */ 20 39 2 accounting_chan fixed bin (71), /* Event channel for device accounting */ 20 40 2 accounting_pid bit (36), /* ID of accounting process */ 20 41 2 unload_sleep_time fixed bin (71), /* Number of microseconds to wait for unload completion. */ 20 42 2 pad (7) fixed bin, 20 43 2 dtype (0 refer (rcpd.tot_dtypes)) /* One entry per device type. */ 20 44 like dtype, /* See structure below. */ 20 45 2 device (0 refer (rcpd.tot_devices)) /* One entry per configured device. */ 20 46 like device, /* See structure below. */ 20 47 2 volume (0 refer (rcpd.tot_volumes)) /* One entry per possible attached volume. */ 20 48 like volume, /* See structure below. */ 20 49 2 end bit (36) aligned; /* End of rcp_data. */ 20 50 20 51 dcl 1 dtype based (dtype_ptr) aligned, /* Entry for one device type. */ 20 52 2 device_type char (32), /* Name of this device type. */ 20 53 2 max_concurrent fixed bin, /* Max number of concurrently assigned devices. */ 20 54 2 num_reserved fixed bin, /* Num of devices reserved for system processes. */ 20 55 2 num_devices fixed bin, /* Num of devices of this type that are configured. */ 20 56 2 first_off bit (18), /* Offset of first device entry. */ 20 57 2 histo_times (3) fixed bin; /* Used to compute histograms for this device type. */ 20 58 20 59 dcl 1 device based (device_ptr) aligned, /* Up to state must = rcs.rcse. */ 20 60 2 device_name char (8), /* Name of device associated with this entry. */ 20 61 2 volume_name char (32), /* Volume name. Blank => no volume. */ 20 62 2 dtypex fixed bin, /* Device type index. */ 20 63 2 model fixed bin, /* Device model number. */ 20 64 2 num_qualifiers fixed bin, /* Number of device qualifiers. */ 20 65 2 qualifiers (4) fixed bin (35), /* Device qualifiers. */ 20 66 2 state_time fixed bin (71), /* Time device put into current state. */ 20 67 2 state fixed bin, /* 0 => free, 1 => assigned, 2 => deleted, 20 68* 3 => storage system, 4 => reserved */ 20 69 20 70 /* * * * * ** Following fields are unique to device entry. */ 20 71 20 72 2 unassign_state fixed bin, /* State to return when unassigning. */ 20 73 2 acs_name char (12), /* Entry name of ACS for this device. */ 20 74 2 next_off bit (18), /* Offset of next entry for this device type. */ 20 75 2 iom_num fixed bin, /* IOM number for this device. */ 20 76 2 chan_num fixed bin, /* Channel number for this device. */ 20 77 2 num_channels fixed bin, /* Num channels that may address device. */ 20 78 2 flags, /* Special info flags. */ 20 79 (3 delete bit (1), /* ON => Delete device when it is unassigned. */ 20 80 3 priv bit (1), /* ON => Deleted device assigned for priv attach. */ 20 81 3 reservable bit (1), /* ON => may be reserved for system process. */ 20 82 3 reserved bit (1), /* ON => reserved to a reserved process. */ 20 83 3 mounting bit (1), /* ON => mount pending. */ 20 84 3 writing bit (1), /* ON => mounting for writing. */ 20 85 3 attached bit (1) unal, /* ON => device is attached. */ 20 86 3 not_removable_media bit (1), /* ON => cannot remove volume from device. */ 20 87 3 fips bit (1), /* ON => FIPS device. */ 20 88 3 no_protect bit (1), /* ON => device has no protect sw. */ 20 89 3 opr_int_available bit (1), /* ON => device connected to MPC with OI button. */ 20 90 3 unused bit (25)) unal, 20 91 2 process_id bit (36), /* ID of assigned process. */ 20 92 2 group_id char (32), /* Process group ID. */ 20 93 2 error_count fixed bin (35), /* Total error count. Defined by user ring. */ 20 94 2 num_assigns fixed bin (35), /* Total # of times device assigned & unassigned. */ 20 95 2 tot_assign_time fixed bin (71), /* Total time that device was assigned. */ 20 96 2 histogram (4) fixed bin, /* Assignment time histogram. */ 20 97 2 reservation_id fixed bin (71), 20 98 2 reserved_by char (32), /* Who made this reservation. */ 20 99 2 current_authorization bit (72) aligned; /* Authoization of process using this device. */ 20 100 20 101 dcl 1 volume based (volume_ptr) aligned, /* Entry for one volume. */ 20 102 2 process_id bit (36), /* "0"b => unassigned. */ 20 103 2 volume_name char (32), /* Volume name. */ 20 104 2 vtypex fixed bin, /* Volume type index. */ 20 105 2 group_id char (32), /* This is used for the reserved_for field. */ 20 106 2 reserved_by char (32), 20 107 2 reservation_id fixed bin (71), 20 108 2 state_time fixed bin (71), /* Same as for a device. */ 20 109 2 state fixed bin, /* Same as for a device. */ 20 110 2 unassign_state fixed bin, /* State to return when unassigning. */ 20 111 2 current_authorization bit (72) aligned; /* Authorization of process using this volume. */ 20 112 21 1 /* BEGIN INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 21 2 21 3 /* Created on 04/24/78 by Michael R. Jordan */ 21 4 /* Modified 04/10/79 by C. D. Tavares */ 21 5 21 6 dcl rifp ptr; 21 7 21 8 dcl 1 rcp_init_flags based (rifp), 21 9 2 unload_on_detach bit (1) unaligned, /* ON => tape volumes are unloaded after detaching */ 21 10 2 pad1 bit (2) unaligned, /* obsolete */ 21 11 2 resource_mgmt_enabled bit (1) unaligned, /* ON => resource management has been enabled */ 21 12 2 auto_registration bit (1) unaligned, /* ON => auto registration allowed */ 21 13 2 pad2 bit (2) unaligned, /* future expansion, possibly of authentication_level */ 21 14 2 authentication_level fixed bin (2) unaligned unsigned; /* see below for values */ 21 15 21 16 dcl (No_authentication initial (0), 21 17 Nominal_authentication initial (1), 21 18 Automatic_authentication initial (2), 21 19 Manual_authentication initial (3)) fixed bin internal static options (constant); 21 20 21 21 dcl authentication_level_names (0:3) char (12) internal static options (constant) initial 21 22 ("none", "nominal", "automatic", "manual"); 21 23 21 24 /* END INCLUDE FILE ... rcp_init_flags.incl.pl1 */ 20 113 20 114 20 115 /* End of include file ... rcp_data.incl.pl1 */ 83 84 call add ("rcpd", addr (p -> rcpd)); 85 dcl 1 rcp_dtype aligned like dtype based; 86 call add ("rcp_dtype", addr (p -> rcp_dtype)); 87 dcl 1 rcp_device aligned like device based; 88 call add ("rcp_device", addr (p -> rcp_device)); 89 dcl 1 rcp_volume aligned like volume based; 90 call add ("rcp_volume", addr (p -> rcp_volume)); 22 1 /* BEGIN INCLUDE FILE RNT.INCL.PL1 - WRITTEN SEPTEMBER 1974 BY R. BRATT */ 22 2 /* modified July 1976 by R. Bratt; updated March 1977 by M. Weaver */ 22 3 /* modified November 1977 by M. Weaver to use PL/I offsets instead of pointers */ 22 4 22 5 dcl (rntp, rntep) ptr; 22 6 dcl lth fixed bin (17); 22 7 dcl based_rnt_area area based; 22 8 22 9 dcl 1 rnt aligned based (rntp), 22 10 2 areap ptr, /* pointer to area for rnte allocations */ 22 11 2 meters, 22 12 3 insert, 22 13 4 trys fixed bin (17) unaligned, 22 14 4 wins fixed bin (17) unaligned, 22 15 3 get_segno like insert, 22 16 3 get_refnames like insert, 22 17 3 delete_segno like insert, 22 18 3 delete_name like insert, 22 19 2 rnt_area_size fixed bin, 22 20 2 srulep ptr, 22 21 2 name_hash_table (0:127) offset (rnt.areap -> based_rnt_area), 22 22 2 segno_hash_table (0:127) offset (rnt.areap -> based_rnt_area); 22 23 22 24 dcl 1 rnte aligned based (rntep), 22 25 2 name_fp offset (rnt.areap -> based_rnt_area), 22 26 2 segno_fp offset (rnt.areap -> based_rnt_area), 22 27 (2 segno fixed bin (17), 22 28 2 length fixed bin (17), 22 29 2 name char (lth refer (rnte.length)))unaligned; 22 30 22 31 /* --------------------END RNT.INCL.PL1--------------------- */ 91 92 call add ("rnt", addr (p -> rnt)); 93 call add ("rnte", addr (p -> rnte)); 94 95 /* Followed by the include file containing the code to do the work */ 96 97 dcl WHOAMI char (32) internal static options (constant) init ("structure_library_4_"); 98 dcl (divide, hbound, pointer) builtin; 99 23 1 23 2 23 3 /* * STRUCTURE_LIBRARY_CODE.INCL.PL1 23 4* * 23 5* * This procedure generates the default library segment for the 23 6* * structure display system. The way it operates is hardly what one 23 7* * would call normal, however. It has to do a number of rather unclean 23 8* * things, and modifications must be made carefully following these 23 9* * conventions: 23 10* * 23 11* * Because the compiler insists on actually having a structure appear 23 12* * in some reference context for it to appear in the symbol table, 23 13* * regardless of options, every structure defined herein must be 23 14* * referenced somehow. This is accomplished with the calls to the 23 15* * "add" procedure. The first argument to the "add" procedure is the 23 16* * name of the structure, put there so it can be added to the table 23 17* * of contents for the segment. 23 18* * 23 19* * The second argument to the add procedure is a pointer, which must 23 20* * always be of the form "addr (p -> structure)". This is done to 23 21* * that the structure will be referenced, while at the same time 23 22* * avoiding any reference to its implicit base, or to other values 23 23* * which must be initialized to avoid warnings. 23 24* * 23 25* * Finally, this program compiles and runs itself using 23 26* * create_data_segment; this is done both to ensure that it gets 23 27* * compiled with a symbol table, and to make it possible copy the 23 28* * object segment and write into the internal static options (constant) 23 29* * array that is the table of structures. All in all, it's pretty 23 30* * complicated. 23 31* * 23 32* * The code for this program is in an include file in order to ease 23 33* * the construction of user-defined structure libraries. In order to 23 34* * use this code, one must create a program looking like this: 23 35* * 23 36* * structure_library_7_: 23 37* * procedure (); 23 38* * 23 39* * < %include statements, calls to add > 23 40* * 23 41* * dcl WHOAMI char (32) internal static options (constant) init ("structure_library_7_"); 23 42* * %include structure_library_code; 23 43* * end structure_library_7_; 23 44* * 23 45* * The standard structure libraries (structure_library_1_.cds, 23 46* * for example, provide a good example of this. 23 47* * 23 48* * 30 May 1983, W. Olin Sibert 23 49* */ 23 50 23 51 /* */ 23 52 23 53 /* Now come the more ordinary parts of code that usually appear in a program */ 23 54 23 55 dcl code fixed binary (35); 23 56 dcl severity_ptr pointer; 23 57 dcl severity_value fixed bin (35) based (severity_ptr); 23 58 dcl answer bit (1) aligned; 23 59 dcl new_segp pointer; 23 60 dcl old_segp pointer; 23 61 dcl bitcount fixed bin (24); 23 62 dcl n_words fixed bin (18); 23 63 dcl based_words (n_words) bit (36) aligned based; 23 64 23 65 dcl p pointer init (null ()); /* our general-purpose base */ 23 66 23 67 dcl com_err_ entry options (variable); 23 68 dcl command_query_$yes_no entry options (variable); 23 69 dcl get_external_variable_ entry (char (*), pointer, fixed bin (19), pointer, fixed bin (35)); 23 70 dcl get_wdir_ entry () returns (char (168)); 23 71 dcl hcs_$make_seg entry (char (*), char (*), char (*), 23 72 fixed bin (5), pointer, fixed bin (35)); 23 73 dcl hcs_$set_bc_seg entry (pointer, fixed bin (24), fixed bin (35)); 23 74 dcl hcs_$status_mins entry 23 75 (pointer, fixed bin (2), fixed bin (24), fixed bin (35)); 23 76 dcl hcs_$terminate_noname entry (pointer, fixed bin (35)); 23 77 dcl nothing entry options (variable); 23 78 23 79 dcl INITIALIZED bit (1) aligned internal static options (constant) init ("0"b); 23 80 dcl initialized_bit bit (1) aligned based; 23 81 23 82 /* The following array is important: it defines the "table of contents" 23 83* for the structure library segment. It is declared and initialized to 23 84* empty, but when the object segment is copied into the library segment, 23 85* it is filled in with the actual names of all the structures, which were 23 86* collected by all the calls to "add", above. */ 23 87 23 88 dcl STRUCTURES (200) char (32) unaligned internal static options (constant) 23 89 init ((200)(32)""); 23 90 23 91 /* This is the automatic array where the data is collected, and the based 23 92* overlay used later on to copy it into the new segment */ 23 93 23 94 dcl based_structures (n_structures) char (32) unaligned based; 23 95 dcl structures (hbound (STRUCTURES, 1)) char (32) unaligned automatic; 23 96 dcl n_structures fixed bin init (0); 23 97 23 98 dcl (addr, codeptr, null, rel, size, unspec) builtin; 23 99 23 100 /* */ 23 101 23 102 /* Finally, the real code, which copies one segment onto the other and 23 103* updates the structures arrays. */ 23 104 23 105 if INITIALIZED then do; 23 106 call com_err_ (0, WHOAMI, "This program is a data segment, and may not be executed."); 23 107 return; 23 108 end; 23 109 23 110 call get_external_variable_ ("pl1_severity_", severity_ptr, (0), (null ()), code); 23 111 if (code ^= 0) then do; 23 112 call com_err_ (code, WHOAMI, "Cannot determine severity for compilation of ^a.", WHOAMI); 23 113 return; 23 114 end; 23 115 23 116 if (severity_value = 2) then do; 23 117 call command_query_$yes_no (answer, 0, WHOAMI, 23 118 23 119 "ERROR 366 means that the program is too large to construct a symbol table; 23 120 this quite commonly happens to structure libraries because of their enormous 23 121 symbol tables. You may be able to fix the error by rearranging some of the 23 122 include files.", 23 123 23 124 "Warning: A severity two PL/I error has occurred. 23 125 If it is ERROR 366, the result of this compilation will be partially invalid. 23 126 Do you wish to continue and generate the library segment anyway?"); 23 127 23 128 if ^answer then return; 23 129 end; 23 130 23 131 old_segp = pointer (addr (STRUCTURES), 0); 23 132 23 133 call hcs_$status_mins (old_segp, (0), bitcount, code); 23 134 if (code ^= 0) then do; 23 135 call com_err_ (code, WHOAMI, 23 136 "Cannot get bitcount of original segment."); 23 137 return; 23 138 end; 23 139 23 140 call hcs_$make_seg ((get_wdir_ ()), WHOAMI, "", 01010b, new_segp, code); 23 141 if (new_segp = null ()) then do; 23 142 call com_err_ (code, WHOAMI, "Cannot create [wd]>^a", WHOAMI); 23 143 return; 23 144 end; 23 145 23 146 n_words = divide (bitcount, 36, 18, 0); 23 147 new_segp -> based_words = old_segp -> based_words; 23 148 23 149 call hcs_$set_bc_seg (new_segp, bitcount, code); 23 150 if (code ^= 0) then do; 23 151 call com_err_ (code, WHOAMI, 23 152 "Cannot set bitcount on [wd]>^a", WHOAMI); 23 153 return; 23 154 end; 23 155 23 156 /* Finally, copy in the structure list */ 23 157 23 158 pointer (new_segp, rel (addr (STRUCTURES))) -> based_structures 23 159 = addr (structures) -> based_structures; 23 160 pointer (new_segp, rel (addr (INITIALIZED))) -> initialized_bit = "1"b; 23 161 23 162 call hcs_$terminate_noname (new_segp, (0)); 23 163 23 164 ERROR_RETURN: 23 165 return; 23 166 23 167 /* */ 23 168 23 169 /* This is called once for each structure which goes in the table of contents. 23 170* It adds the structure to the automatic array, and increments the count. */ 23 171 23 172 add: 23 173 addx: 23 174 procedure (name, useless_pointer); 23 175 23 176 dcl name char (32); 23 177 dcl useless_pointer pointer; 23 178 23 179 /* The bounds check is against hbound - 1, since it is necessary to always 23 180* leave at least one blank entry in the table of contents to show where 23 181* the last valid entry is. */ 23 182 23 183 23 184 if (n_structures >= (hbound (STRUCTURES, 1) - 1)) then do; 23 185 call com_err_ (0, WHOAMI, 23 186 "Too many structures defined. Max is ^d.^/^3xChange the dimension of the STRUCTURES array and recompile.", 23 187 hbound (STRUCTURES, 1)); 23 188 goto ERROR_RETURN; 23 189 end; 23 190 23 191 n_structures = n_structures + 1; 23 192 structures (n_structures) = name; 23 193 structures (n_structures + 1) = ""; 23 194 return; 23 195 end add; 100 101 102 end structure_library_4_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/11/89 1236.9 !BBBJZgCBdlkwLD.pl1 >spec>install>MR12.3-1091>structure_library_4_.cds 24 1 12/15/83 1100.4 mc.incl.pl1 >ldd>include>mc.incl.pl1 28 2 08/18/77 0953.5 mc_trace_buf.incl.pl1 >ldd>include>mc_trace_buf.incl.pl1 29 3 03/19/81 1131.8 mcs_modes_change_list.incl.pl1 >ldd>include>mcs_modes_change_list.incl.pl1 34 4 06/30/80 1400.3 mcs_trace_data.incl.pl1 >ldd>include>mcs_trace_data.incl.pl1 39 5 11/20/84 1944.9 mdcs.incl.pl1 >ldd>include>mdcs.incl.pl1 47 6 12/20/82 1113.8 mstr.incl.pl1 >ldd>include>mstr.incl.pl1 54 7 10/11/89 1234.9 oc_data.incl.pl1 >spec>install>MR12.3-1091>oc_data.incl.pl1 55 8 07/02/74 1712.7 oc_log_meters.incl.pl1 >ldd>include>oc_log_meters.incl.pl1 59 9 01/30/85 1221.4 pathname_am.incl.pl1 >ldd>include>pathname_am.incl.pl1 62 10 07/21/88 2036.0 pcb.incl.pl1 >ldd>include>pcb.incl.pl1 64 11 07/14/88 2015.0 pit.incl.pl1 >ldd>include>pit.incl.pl1 65 12 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 12-112 13 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 69 14 03/27/82 0430.2 ptw.adp.incl.pl1 >ldd>include>ptw.adp.incl.pl1 71 15 03/27/82 0430.2 ptw.l68.incl.pl1 >ldd>include>ptw.l68.incl.pl1 73 16 05/20/76 0630.6 pv_holdt.incl.pl1 >ldd>include>pv_holdt.incl.pl1 74 17 05/27/82 1525.8 pvt.incl.pl1 >ldd>include>pvt.incl.pl1 76 18 07/21/88 2036.0 pvte.incl.pl1 >ldd>include>pvte.incl.pl1 80 19 03/27/86 1120.0 rcp_com_seg.incl.pl1 >ldd>include>rcp_com_seg.incl.pl1 83 20 03/27/86 1120.0 rcp_data.incl.pl1 >ldd>include>rcp_data.incl.pl1 20-113 21 11/21/79 1458.3 rcp_init_flags.incl.pl1 >ldd>include>rcp_init_flags.incl.pl1 91 22 01/27/78 1711.4 rnt.incl.pl1 >ldd>include>rnt.incl.pl1 100 23 09/12/84 2307.0 structure_library_code.incl.pl1 >ldd>include>structure_library_code.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. EVENT_QUEUE_SIZE 000033 constant fixed bin(17,0) initial dcl 7-313 ref 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 INITIALIZED 000057 constant bit(1) initial dcl 23-79 set ref 23-105 23-160 MAX_IMU_IO_TIME 000032 constant fixed bin(17,0) initial dcl 7-322 MAX_IO_LENGTH 000011 constant fixed bin(17,0) initial dcl 7-348 ref 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-213 MAX_IO_TIME 000012 constant fixed bin(17,0) initial array dcl 7-326 MAX_OPC_CNT 016544 constant fixed bin(17,0) initial dcl 7-313 ref 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 STRUCTURES 013444 constant char(32) initial array packed unaligned dcl 23-88 set ref 23-95 23-131 23-158 23-184 23-185 23-185 USER_ATTRIBUTES_always_allowed 000000 constant bit(36) initial dcl 12-100 WHOAMI 000001 constant char(32) initial packed unaligned dcl 97 set ref 23-106* 23-112* 23-112* 23-117* 23-135* 23-140* 23-142* 23-142* 23-151* 23-151* 23-185* WRITE_QUEUE_SIZE 016544 constant fixed bin(17,0) initial dcl 7-313 ref 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 acctent based structure level 1 dcl 5-45 acctp 000124 automatic pointer dcl 5-43 ref 5-45 5-45 5-45 5-45 5-45 5-45 5-45 5-45 5-45 5-45 5-45 5-45 addr builtin function dcl 23-98 ref 25 25 26 26 27 27 28 28 31 31 33 33 36 36 38 38 40 40 42 42 44 44 46 46 48 48 49 49 50 50 52 52 54 54 57 57 61 61 62 62 69 69 70 70 71 71 72 72 73 73 75 75 77 77 78 78 81 81 82 82 84 84 86 86 88 88 90 90 92 92 93 93 23-131 23-158 23-158 23-160 66 66 adp_core_ptw based structure level 1 dcl 14-4 set ref 69 69 adp_ptw based structure level 1 dcl 14-9 set ref 70 70 adp_ptw_flags based structure level 1 packed packed unaligned dcl 14-17 amp 000144 automatic pointer dcl 9-11 ref 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 9-12 answer 000216 automatic bit(1) dcl 23-58 set ref 23-117* 23-128 area_size 22 based fixed bin(18,0) level 3 dcl 5-8 set ref 5-8 areap based pointer level 2 dcl 22-9 set ref 22-9 22-9 22-24 22-24 based_rnt_area based area(1024) dcl 22-7 ref 22-9 22-9 22-24 22-24 based_structures based char(32) array packed unaligned dcl 23-94 set ref 23-158* 23-158 based_words based bit(36) array dcl 23-63 set ref 23-147* 23-147 bitcount 000224 automatic fixed bin(24,0) dcl 23-61 set ref 23-133* 23-146 23-149* boot_pgm_len 244 based fixed bin(17,0) level 2 dcl 6-16 set ref 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 bp 000104 automatic pointer dcl 2-6 ref 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 code 000213 automatic fixed bin(35,0) dcl 23-55 set ref 23-110* 23-111 23-112* 23-133* 23-134 23-135* 23-140* 23-142* 23-149* 23-150 23-151* com_err_ 000036 constant entry external dcl 23-67 ref 23-106 23-112 23-135 23-142 23-151 23-185 command_query_$yes_no 000040 constant entry external dcl 23-68 ref 23-117 console_io based structure level 1 dcl 7-213 console_io_ptr 000140 automatic pointer dcl 7-306 ref 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 7-213 device based structure level 1 dcl 20-59 device_ptr 000200 automatic pointer dcl 20-26 ref 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 20-59 divide builtin function dcl 98 ref 23-146 dtype based structure level 1 dcl 20-51 dtype_ptr 000176 automatic pointer dcl 20-25 ref 20-51 20-51 20-51 20-51 20-51 20-51 20-51 flags 2 based structure level 2 in structure "oc_entry" dcl 7-149 in procedure "structure_library_4_" flags based structure array level 3 in structure "oc_data" dcl 7-90 in procedure "structure_library_4_" get_external_variable_ 000042 constant entry external dcl 23-69 ref 23-110 get_wdir_ 000044 constant entry external dcl 23-70 ref 23-140 hbound builtin function dcl 98 ref 23-95 23-184 23-185 23-185 hcs_$make_seg 000046 constant entry external dcl 23-71 ref 23-140 hcs_$set_bc_seg 000050 constant entry external dcl 23-73 ref 23-149 hcs_$status_mins 000052 constant entry external dcl 23-74 ref 23-133 hcs_$terminate_noname 000054 constant entry external dcl 23-76 ref 23-162 head based structure level 2 dcl 5-8 hr_cnt 3(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 2-8 set ref 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 initialized_bit based bit(1) dcl 23-80 set ref 23-160* insert 2 based structure level 3 dcl 22-9 l68_core_ptw based structure level 1 dcl 15-4 set ref 71 71 l68_ptw based structure level 1 dcl 15-9 set ref 72 72 l68_ptw_flags based structure level 1 packed packed unaligned dcl 15-17 length 2(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 22-24 set ref 22-24 lock_info based structure level 1 dcl 19-46 lock_info_ptr 000166 automatic pointer dcl 19-22 ref 19-46 19-46 19-46 19-46 19-46 19-46 19-46 19-46 mc based structure level 1 dcl 1-12 set ref 25 25 mc_cnt 1(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 2-8 set ref 2-8 2-8 2-8 2-8 2-8 2-8 mc_trace_buf based structure level 1 dcl 2-8 set ref 28 28 mcl based structure level 1 dcl 3-10 mcle based structure level 1 dcl 3-26 mclep 000110 automatic pointer dcl 3-24 ref 3-26 3-26 3-26 3-26 3-26 3-26 3-26 3-26 mclp 000106 automatic pointer dcl 3-7 ref 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 3-10 mcp 000100 automatic pointer dcl 1-10 ref 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 1-12 mcs_trace_array based structure level 1 dcl 35 set ref 36 36 mcs_trace_entry based structure level 1 dcl 37 set ref 38 38 mdcs based structure level 1 dcl 5-8 set ref 40 40 mdcs_account based structure level 1 dcl 43 set ref 44 44 mdcs_head based structure level 1 dcl 5-12 mdcs_mdir based structure level 1 dcl 41 set ref 42 42 mdcs_path based structure level 1 dcl 45 set ref 46 46 mdcsp 000120 automatic pointer dcl 5-6 ref 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 5-8 mdirent based structure level 1 dcl 5-31 mdirp 000122 automatic pointer dcl 5-29 ref 5-31 5-31 5-31 5-31 5-31 5-31 5-31 5-31 5-31 5-31 5-31 meters 2 based structure level 2 dcl 22-9 modes_change_list based structure level 1 dcl 30 set ref 31 31 modes_change_list_entry based structure level 1 dcl 32 set ref 33 33 mst_label based structure level 1 dcl 6-16 set ref 48 48 mst_volume_id based structure level 1 dcl 51 set ref 52 52 mstr_header based structure level 1 dcl 6-37 set ref 49 49 mstr_trailer based structure level 1 dcl 6-62 set ref 50 50 mstrp 000130 automatic pointer dcl 6-8 ref 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 6-16 n_structures 000230 automatic fixed bin(17,0) initial dcl 23-96 set ref 23-94 23-96* 23-158 23-158 23-158 23-184 23-191* 23-191 23-192 23-193 n_words 000225 automatic fixed bin(18,0) dcl 23-62 set ref 23-63 23-146* 23-147 name parameter char(32) packed unaligned dcl 23-176 ref 23-172 23-172 23-192 new_segp 000220 automatic pointer dcl 23-59 set ref 23-140* 23-141 23-147 23-149* 23-158 23-160 23-162* null builtin function dcl 23-98 ref 23-65 23-110 23-141 num_entries based fixed bin(18,0) level 2 in structure "trace_array" unsigned dcl 4-6 in procedure "structure_library_4_" ref 4-6 4-6 4-6 4-6 35 35 35 35 num_entries 106 based fixed bin(17,0) level 2 in structure "rcs" dcl 19-30 in procedure "structure_library_4_" set ref 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 oc_data based structure level 1 dcl 7-90 set ref 54 54 oc_data_ptr 000132 automatic pointer dcl 7-306 ref 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 7-90 oc_entry based structure level 1 dcl 7-149 oc_entry_ptr 000134 automatic pointer dcl 7-306 ref 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 7-149 oc_event based structure level 1 dcl 7-241 oc_event_ptr 000136 automatic pointer dcl 7-306 ref 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 7-241 oc_log_meters based structure level 1 dcl 56 set ref 57 57 old_segp 000222 automatic pointer dcl 23-60 set ref 23-131* 23-133* 23-147 olm based structure level 1 dcl 8-19 olm_ptr 000142 automatic pointer dcl 8-16 ref 8-19 8-19 8-19 8-19 8-19 8-19 8-19 8-19 8-19 8-19 8-19 p 000226 automatic pointer initial dcl 23-65 set ref 25 25 26 26 27 27 28 28 31 31 33 33 36 36 38 38 40 40 42 42 44 44 46 46 48 48 49 49 50 50 52 52 54 54 57 57 61 61 62 62 69 69 70 70 71 71 72 72 73 73 75 75 77 77 78 78 81 81 82 82 84 84 86 86 88 88 90 90 92 92 93 93 23-65* 66 66 pam based structure level 1 dcl 9-12 pathent based structure level 1 dcl 5-60 pathname_am based structure level 1 dcl 60 set ref 61 61 pathp 000126 automatic pointer dcl 5-58 ref 5-60 5-60 5-60 5-60 pcb based structure level 1 dcl 10-27 set ref 62 62 pcbp 000152 automatic pointer dcl 10-23 ref 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 10-27 pit based structure level 1 dcl 11-50 set ref 66 66 pit_ptr 000236 automatic pointer dcl 11-48 ref 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 11-50 pointer builtin function dcl 98 ref 23-131 23-158 23-160 ptp 000154 automatic pointer dcl 68 ref 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-4 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 14-9 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-4 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 15-9 pv_holdt based structure array level 1 dcl 16-6 set ref 73 73 pv_holdtp 000156 automatic pointer dcl 16-4 ref 16-6 16-6 16-6 pvt based structure level 1 dcl 17-13 set ref 75 75 pvt$max_n_entries 000034 external static fixed bin(17,0) dcl 18-19 ref 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 pvt_array based structure array level 1 dcl 18-24 set ref 78 78 pvt_arrayp 000162 automatic pointer dcl 18-21 ref 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 18-24 pvte based structure level 1 dcl 18-26 set ref 77 77 pvtep 000164 automatic pointer dcl 18-22 ref 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 18-26 pvtp 000160 automatic pointer dcl 17-9 ref 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 17-13 rcp_device based structure level 1 dcl 87 set ref 88 88 rcp_dtype based structure level 1 dcl 85 set ref 86 86 rcp_init_flags based structure level 1 packed packed unaligned dcl 21-8 rcp_volume based structure level 1 dcl 89 set ref 90 90 rcpd based structure level 1 dcl 20-29 set ref 84 84 rcpd_ptr 000174 automatic pointer dcl 20-24 ref 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 rcs based structure level 1 dcl 19-30 set ref 81 81 rcs_ptr 000170 automatic pointer dcl 19-23 ref 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 19-30 rcse based structure level 1 dcl 19-55 set ref 82 82 rcse_ptr 000172 automatic pointer dcl 19-24 ref 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 19-55 rel builtin function dcl 23-98 ref 23-158 23-160 rifp 000204 automatic pointer dcl 21-6 ref 21-8 21-8 21-8 21-8 21-8 21-8 21-8 rnt based structure level 1 dcl 22-9 set ref 92 92 rnte based structure level 1 dcl 22-24 set ref 93 93 rntep 000210 automatic pointer dcl 22-5 ref 22-24 22-24 22-24 22-24 22-24 22-24 rntp 000206 automatic pointer dcl 22-5 ref 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 22-9 scu based structure level 1 dcl 1-56 set ref 26 26 scup 000102 automatic pointer dcl 1-54 ref 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-56 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 1-207 scux based structure level 1 dcl 1-207 set ref 27 27 search 20 based structure array level 2 in structure "pathname_am" dcl 60 in procedure "structure_library_4_" search 20 based structure array level 2 in structure "pam" dcl 9-12 in procedure "structure_library_4_" severity_ptr 000214 automatic pointer dcl 23-56 set ref 23-57 23-110* 23-116 severity_value based fixed bin(35,0) dcl 23-57 ref 23-116 structures 000230 automatic char(32) array packed unaligned dcl 23-95 set ref 23-158 23-192* 23-193* tot_devices 16 based fixed bin(17,0) level 2 dcl 20-29 set ref 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 tot_dtypes 15 based fixed bin(17,0) level 2 dcl 20-29 set ref 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 tot_volumes 17 based fixed bin(17,0) level 2 dcl 20-29 set ref 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 20-29 trace_array based structure level 1 dcl 4-6 trace_array_ptr 000112 automatic pointer dcl 4-3 ref 4-6 4-6 4-6 4-6 4-6 4-6 4-6 trace_entry based structure level 1 dcl 4-11 trace_entry_ptr 000114 automatic pointer dcl 4-3 ref 4-11 4-11 4-11 4-11 useless_pointer parameter pointer dcl 23-177 ref 23-172 23-172 user_abs_attributes based structure level 1 dcl 13-25 user_attributes based structure level 1 dcl 12-21 volume based structure level 1 dcl 20-101 volume_identifier based structure level 1 dcl 6-73 volume_ptr 000202 automatic pointer dcl 20-27 ref 20-101 20-101 20-101 20-101 20-101 20-101 20-101 20-101 20-101 20-101 20-101 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES constant varying char(28) initial array dcl 13-38 ALERT_DCW constant fixed bin(17,0) initial dcl 7-249 ALT_USER_ATTRIBUTE_NAMES constant char(20) initial array packed unaligned dcl 12-77 Automatic_authentication constant fixed bin(17,0) initial dcl 21-16 DISCARDED_OUTPUT constant fixed bin(35,0) initial dcl 7-262 DISCARD_DCW constant fixed bin(17,0) initial dcl 7-249 FREED_LOCK constant fixed bin(35,0) initial dcl 7-262 GOT_LOCK constant fixed bin(35,0) initial dcl 7-262 GOT_SPECIAL_INT constant fixed bin(35,0) initial dcl 7-262 HEADER_VERSION constant fixed bin(17,0) initial dcl 6-89 INIT_OC_DATA constant fixed bin(35,0) initial dcl 7-262 IO_TIMEOUT constant fixed bin(35,0) initial dcl 7-262 LABEL_VERSION constant fixed bin(17,0) initial dcl 6-87 LOCK_MCA_DCW constant fixed bin(17,0) initial dcl 7-249 LOCK_MCA_IO constant fixed bin(35,0) initial dcl 7-262 LOGGED_ERROR constant fixed bin(35,0) initial dcl 7-262 MAX_MAX_IO_TIME constant fixed bin(17,0) initial dcl 7-351 MAX_RETRIES constant fixed bin(17,0) initial dcl 7-313 MC_IO_FAILURE constant fixed bin(35,0) initial dcl 7-262 MC_IO_PICKUP constant fixed bin(35,0) initial dcl 7-262 Manual_authentication constant fixed bin(17,0) initial dcl 21-16 NEWLINE_DCW constant fixed bin(17,0) initial dcl 7-249 No_authentication constant fixed bin(17,0) initial dcl 21-16 Nominal_authentication constant fixed bin(17,0) initial dcl 21-16 PAM_name_max_lth constant fixed bin(17,0) initial dcl 9-9 PIT_version_3 constant fixed bin(17,0) initial dcl 11-143 POPPED_READ constant fixed bin(35,0) initial dcl 7-262 PRIORITY_OUTPUT constant fixed bin(35,0) initial dcl 7-262 PROMPT_DCW constant fixed bin(17,0) initial dcl 7-249 PUSHED_READ constant fixed bin(35,0) initial dcl 7-262 QUEUED_READ constant fixed bin(35,0) initial dcl 7-262 QUEUED_WRITE constant fixed bin(35,0) initial dcl 7-262 READ_DCW constant fixed bin(17,0) initial dcl 7-249 READ_NOT_IN_PROGRESS constant fixed bin(35,0) initial dcl 7-262 READ_PICKUP constant fixed bin(35,0) initial dcl 7-262 READ_UNECHOED_DCW constant fixed bin(17,0) initial dcl 7-249 RESET_CHANNEL constant fixed bin(35,0) initial dcl 7-262 RESET_DCW constant fixed bin(17,0) initial dcl 7-249 RETRY_IO constant fixed bin(35,0) initial dcl 7-262 SENT_ALERT constant fixed bin(35,0) initial dcl 7-262 SENT_MC_IO constant fixed bin(35,0) initial dcl 7-262 SENT_MC_PRIORITY_IO constant fixed bin(35,0) initial dcl 7-262 SENT_NEWLINE constant fixed bin(35,0) initial dcl 7-262 SENT_PROMPT constant fixed bin(35,0) initial dcl 7-262 SENT_WAKEUP constant fixed bin(35,0) initial dcl 7-262 STARTED_READ constant fixed bin(35,0) initial dcl 7-262 STARTED_UNECHOED_READ constant fixed bin(35,0) initial dcl 7-262 STARTED_WRITE constant fixed bin(35,0) initial dcl 7-262 TERMINATED_ALERT constant fixed bin(35,0) initial dcl 7-262 TERMINATED_MCA_LOCK constant fixed bin(35,0) initial dcl 7-262 TERMINATED_MCA_UNLOCK constant fixed bin(35,0) initial dcl 7-262 TERMINATED_NEWLINE constant fixed bin(35,0) initial dcl 7-262 TERMINATED_PROMPT constant fixed bin(35,0) initial dcl 7-262 TERMINATED_READ constant fixed bin(35,0) initial dcl 7-262 TERMINATED_RESET constant fixed bin(35,0) initial dcl 7-262 TERMINATED_WRITE constant fixed bin(35,0) initial dcl 7-262 UNLOCK_MCA_DCW constant fixed bin(17,0) initial dcl 7-249 UNLOCK_MCA_IO constant fixed bin(35,0) initial dcl 7-262 USER_ATTRIBUTES_default_in_pdt constant bit(36) initial dcl 12-104 USER_ATTRIBUTES_settable_by_user constant bit(36) initial dcl 12-108 USER_ATTRIBUTE_NAMES constant char(20) initial array packed unaligned dcl 12-50 VOLMAP_ASYNC_IDLE constant fixed bin(17,0) initial dcl 18-113 VOLMAP_ASYNC_READ constant fixed bin(17,0) initial dcl 18-113 VOLMAP_ASYNC_WRITE constant fixed bin(17,0) initial dcl 18-113 WRITE_DCW constant fixed bin(17,0) initial dcl 7-249 abx constant fixed bin(17,0) initial dcl 1-42 active_hardcore_data$pam_flush_buffer 000024 external static bit(36) array dcl 9-4 active_hardcore_data$pam_flush_level 000022 external static fixed bin(34,0) dcl 9-4 adp_null_disk_ptw based structure level 1 dcl 14-15 adp_real_disk_ptw based structure level 1 dcl 14-14 adp_special_ptw based structure level 1 dcl 14-13 ame based structure level 1 packed packed unaligned dcl 9-37 amep 000146 automatic pointer dcl 9-36 apx constant fixed bin(17,0) initial dcl 1-42 arg_info based structure level 1 dcl 11-136 authentication_level_names constant char(12) initial array packed unaligned dcl 21-21 based_rcp_id based structure level 1 dcl 19-26 bbx constant fixed bin(17,0) initial dcl 1-42 bpx constant fixed bin(17,0) initial dcl 1-42 buf_init constant bit(36) initial packed unaligned dcl 2-33 codeptr builtin function dcl 23-98 header_c1 000010 internal static bit(36) initial packed unaligned dcl 6-79 header_c2 000011 internal static bit(36) initial packed unaligned dcl 6-79 hr_size constant fixed bin(17,0) initial dcl 2-31 l68_null_disk_ptw based structure level 1 dcl 15-15 l68_real_disk_ptw based structure level 1 dcl 15-14 l68_special_ptw based structure level 1 dcl 15-13 label_c1 000014 internal static bit(36) initial packed unaligned dcl 6-79 lbx constant fixed bin(17,0) initial dcl 1-42 lpx constant fixed bin(17,0) initial dcl 1-42 lth 000212 automatic fixed bin(17,0) dcl 22-6 max_buf_size constant fixed bin(17,0) initial dcl 2-32 mc_size constant fixed bin(17,0) initial dcl 2-30 mcl_version_2 constant fixed bin(17,0) initial dcl 3-8 mdcs_version constant fixed bin(17,0) initial dcl 5-27 mstr based structure level 1 dcl 6-10 n_pcbs 000150 automatic fixed bin(17,0) dcl 10-22 nothing 000000 constant entry external dcl 23-77 oc_data$ 000020 external static fixed bin(17,0) dcl 7-88 oc_data_version constant char(4) initial packed unaligned dcl 7-303 pcb_array based structure array level 1 dcl 10-25 pds$pathname_am 000026 external static fixed bin(17,0) dcl 9-7 pit_$ 000056 external static bit(36) dcl 11-47 pvt$ 000030 external static fixed bin(17,0) dcl 17-9 pvt$array 000032 external static fixed bin(17,0) dcl 18-18 sbx constant fixed bin(17,0) initial dcl 1-42 size builtin function dcl 23-98 spx constant fixed bin(17,0) initial dcl 1-42 trace_array_size 000116 automatic fixed bin(18,0) unsigned dcl 4-4 trailer_c1 000012 internal static bit(36) initial packed unaligned dcl 6-79 trailer_c2 000013 internal static bit(36) initial packed unaligned dcl 6-79 unspec builtin function dcl 23-98 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR_RETURN 013343 constant label dcl 23-164 ref 23-188 add 013347 constant entry internal dcl 23-172 ref 25 26 27 28 31 33 36 38 40 42 44 46 48 49 50 52 54 57 61 62 66 69 70 71 72 73 75 77 78 81 82 84 86 88 90 92 93 addx 013344 constant entry internal dcl 23-172 structure_library_4_ 012226 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 16764 17044 16546 16774 Length 54376 16546 60 35316 216 6 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME structure_library_4_ 398 external procedure is an external procedure. begin block on line 63 begin block shares stack frame of external procedure structure_library_4_. addx internal procedure shares stack frame of external procedure structure_library_4_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 header_c1 structure_library_4_ 000011 header_c2 structure_library_4_ 000012 trailer_c1 structure_library_4_ 000013 trailer_c2 structure_library_4_ 000014 label_c1 structure_library_4_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME structure_library_4_ 000100 mcp structure_library_4_ 000102 scup structure_library_4_ 000104 bp structure_library_4_ 000106 mclp structure_library_4_ 000110 mclep structure_library_4_ 000112 trace_array_ptr structure_library_4_ 000114 trace_entry_ptr structure_library_4_ 000116 trace_array_size structure_library_4_ 000120 mdcsp structure_library_4_ 000122 mdirp structure_library_4_ 000124 acctp structure_library_4_ 000126 pathp structure_library_4_ 000130 mstrp structure_library_4_ 000132 oc_data_ptr structure_library_4_ 000134 oc_entry_ptr structure_library_4_ 000136 oc_event_ptr structure_library_4_ 000140 console_io_ptr structure_library_4_ 000142 olm_ptr structure_library_4_ 000144 amp structure_library_4_ 000146 amep structure_library_4_ 000150 n_pcbs structure_library_4_ 000152 pcbp structure_library_4_ 000154 ptp structure_library_4_ 000156 pv_holdtp structure_library_4_ 000160 pvtp structure_library_4_ 000162 pvt_arrayp structure_library_4_ 000164 pvtep structure_library_4_ 000166 lock_info_ptr structure_library_4_ 000170 rcs_ptr structure_library_4_ 000172 rcse_ptr structure_library_4_ 000174 rcpd_ptr structure_library_4_ 000176 dtype_ptr structure_library_4_ 000200 device_ptr structure_library_4_ 000202 volume_ptr structure_library_4_ 000204 rifp structure_library_4_ 000206 rntp structure_library_4_ 000210 rntep structure_library_4_ 000212 lth structure_library_4_ 000213 code structure_library_4_ 000214 severity_ptr structure_library_4_ 000216 answer structure_library_4_ 000220 new_segp structure_library_4_ 000222 old_segp structure_library_4_ 000224 bitcount structure_library_4_ 000225 n_words structure_library_4_ 000226 p structure_library_4_ 000230 n_structures structure_library_4_ 000230 structures structure_library_4_ 000236 pit_ptr begin block on line 63 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_temp call_ext_out_desc call_ext_out return_mac alloc_auto_adj shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ command_query_$yes_no get_external_variable_ get_wdir_ hcs_$make_seg hcs_$set_bc_seg hcs_$status_mins hcs_$terminate_noname THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. pvt$max_n_entries LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 19 012225 23 65 012233 23 95 012235 23 96 012244 25 012245 26 012254 27 012263 28 012272 31 012301 33 012310 36 012317 38 012326 40 012335 42 012344 44 012353 46 012362 48 012371 49 012400 50 012407 52 012416 54 012425 57 012434 61 012443 62 012452 66 012461 69 012470 70 012477 71 012506 72 012515 73 012524 75 012533 77 012542 78 012551 81 012560 82 012567 84 012576 86 012605 88 012614 90 012623 92 012632 93 012641 23 105 012650 23 106 012652 23 107 012677 23 110 012700 23 111 012737 23 112 012741 23 113 012770 23 116 012771 23 117 012774 23 128 013034 23 131 013037 23 133 013042 23 134 013061 23 135 013063 23 137 013107 23 140 013110 23 141 013156 23 142 013162 23 143 013211 23 146 013212 23 147 013215 23 149 013223 23 150 013236 23 151 013240 23 153 013267 23 158 013270 23 160 013320 23 162 013327 23 164 013343 23 172 013344 23 184 013351 23 185 013354 23 188 013407 23 191 013410 23 192 013411 23 193 013421 23 194 013427 Object Segment >spec>install>MR12.3-1091>structure_library_4_ Created on 10/11/89 1236.9 mst Wed by Hirneisen.SysMaint.a using Multics PL/I Compiler, Release 32f, of October 9, 1989 Object Text Defs Link Symb Static Start 0 0 16546 16764 17044 16774 Length 54376 16546 216 60 35316 6 3 Definitions: segname: !BBBJZgCBdlkwLD text|12226 structure_library_4_ Entrypoint symb|0 symbol_table 17 Links: link|16 *symbol|0 link|24 active_hardcore_data$pam_flush_buffer link|22 active_hardcore_data$pam_flush_level link|36 com_err_ link|40 command_query_$yes_no link|42 get_external_variable_ link|44 get_wdir_ link|54 hcs_$terminate_noname link|52 hcs_$status_mins link|50 hcs_$set_bc_seg link|46 hcs_$make_seg link|20 oc_data|0 link|26 pds$pathname_am link|56 pit_|0 link|34 pvt$max_n_entries link|32 pvt$array link|30 pvt|0 ----------------------------------------------------------- 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