COMPILATION LISTING OF SEGMENT db_fnp_sym_util_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/15/82 1619.0 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* DB_FNP_SYM_UTIL_ - Manages debug_fnp symbol tables */ 12 13 /* Written February 1977 by Larry Johnson */ 14 /* Modified August 1979 by Larry Johnson for apropos command */ 15 16 db_fnp_sym_util_: proc; 17 18 /* Arguments */ 19 20 dcl arg_sym char (*); 21 dcl arg_symp ptr; 22 dcl arg_user_tablep ptr; 23 dcl arg_expr_infop ptr; 24 dcl arg_corep ptr; 25 dcl arg_fnp fixed bin; 26 dcl arg_cmd_infop ptr; 27 dcl arg_member char (*); 28 dcl arg_value fixed bin; 29 30 /* Automatic */ 31 32 dcl (i, j) fixed bin; 33 dcl req bit (1) init ("0"b); 34 dcl set_sym_name char (6); 35 dcl set_sym_value fixed bin; 36 dcl code fixed bin (35); 37 dcl apropos_listp ptr; 38 dcl apr_cnt fixed bin; 39 dcl found bit (1); 40 41 /* Based */ 42 43 dcl apropos_list (32) char (32) var based (apropos_listp); 44 dcl based_area area based; 45 46 /* Constants */ 47 48 dcl name char (16) int static options (constant) init ("db_fnp_sym_util_"); 49 50 /* External */ 51 52 dcl sub_err_ entry options (variable); 53 dcl ioa_ entry options (variable); 54 dcl db_fnp_reader_$get_operand entry (ptr); 55 dcl db_fnp_eval_ entry (ptr, fixed bin, char (*), ptr, char (*), fixed bin, fixed bin (35)); 56 dcl get_system_free_area_ entry returns (ptr); 57 58 dcl cleanup condition; 59 60 dcl (addr, addrel, hbound, index, null, unspec) builtin; 61 62 /* Entry to lookup a name in the standard symbol table */ 63 64 lookup: entry (arg_sym, arg_symp); 65 66 67 lookup_start: 68 symbol_tablep = addr (db_fnp_symbols_$db_fnp_symbols_); 69 70 lookup_join: 71 do i = 1 to symbol_table.cnt; 72 symp = addr (symbol_table.entry (i)); 73 if arg_sym = sym.name then do; 74 arg_symp = symp; 75 return; 76 end; 77 end; 78 if req then call sub_err_ (0, name, "s", null, (0), "Unable to get value for FNP symbol ""^a"".", arg_sym); 79 arg_symp = null; /* Convertion meaning not found */ 80 return; 81 82 83 /* This entry is called by people who wont take no for an answer */ 84 85 lookup_req: entry (arg_sym, arg_symp); 86 87 req = "1"b; 88 go to lookup_start; 89 90 91 /* Entry to lookup symbol in users symbol table */ 92 93 lookup_user: entry (arg_user_tablep, arg_sym, arg_symp); 94 95 symbol_tablep = arg_user_tablep; 96 if symbol_tablep = null then do; 97 arg_symp = null; 98 return; 99 end; 100 else go to lookup_join; 101 102 103 /* Functions for returns values and lengths. these are not allowed to fail */ 104 105 get_value: entry (arg_sym) returns (fixed bin); 106 107 call lookup_req (arg_sym, symp); 108 return (sym.value); 109 110 get_length: entry (arg_sym) returns (fixed bin); 111 112 call lookup_req (arg_sym, symp); 113 return (sym.len); 114 115 /* This entry, given a flag type and a value, returns the symbol that matches both */ 116 117 lookup_member: entry (arg_value, arg_member, arg_sym); 118 119 symbol_tablep = addr (db_fnp_symbols_$db_fnp_symbols_); 120 do i = 1 to symbol_table.cnt; 121 symp = addr (symbol_table.entry (i)); 122 if sym.flag_mem = arg_member then 123 if sym.value = arg_value then do; 124 arg_sym = sym.name; 125 return; 126 end; 127 end; 128 arg_sym = ""; 129 return; 130 131 /* Entry to implement the set command */ 132 133 set_command: entry (arg_corep, arg_fnp, arg_cmd_infop, arg_expr_infop); 134 135 cmd_infop = arg_cmd_infop; 136 expr_infop = arg_expr_infop; 137 138 call db_fnp_reader_$get_operand (cmd_infop); 139 if cmd_info.error then go to error_return; 140 if cmd_info.endline then do; 141 call ioa_ ("Symbol missing."); 142 go to error_return; 143 end; 144 set_sym_name = operand; 145 if set_sym_name ^= operand then do; 146 call ioa_ ("Symbol name too long: ^a", operand); 147 go to error_return; 148 end; 149 call db_fnp_reader_$get_operand (cmd_infop); 150 if cmd_info.error then go to error_return; 151 if cmd_info.endline then do; 152 call ioa_ ("Value missing."); 153 go to error_return; 154 end; 155 call db_fnp_eval_ (arg_corep, arg_fnp, operand, expr_infop, "", set_sym_value, code); 156 if code ^= 0 then go to error_return; 157 158 if set_sym_name = "*" then do; /* Check for standard names */ 159 expr_info.star_addr = set_sym_value; 160 expr_info.star_known = "1"b; 161 return; 162 end; 163 else if set_sym_name = "tib" then do; 164 expr_info.tib_addr = set_sym_value; 165 expr_info.tib_known = "1"b; 166 return; 167 end; 168 else if set_sym_name = "hwcm" then do; 169 expr_info.hwcm_addr = set_sym_value; 170 expr_info.hwcm_known = "1"b; 171 return; 172 end; 173 else if set_sym_name = "sfcm" then do; 174 expr_info.sfcm_addr = set_sym_value; 175 expr_info.sfcm_known = "1"b; 176 return; 177 end; 178 179 180 /* User defined symbol */ 181 182 symbol_tablep = expr_info.user_tablep; 183 do i = 1 to symbol_table.cnt; /* See if already there */ 184 symp = addr (symbol_table.entry (i)); 185 if sym.name = set_sym_name then go to store_sym; 186 end; 187 188 if symbol_table.cnt ^< symbol_table.maxcnt then do; /* See if room */ 189 call ioa_ ("Symbol table full."); 190 go to error_return; 191 end; 192 193 symbol_table.cnt = symbol_table.cnt + 1; 194 i = symbol_table.cnt; 195 196 store_sym: 197 symp = addr (symbol_table.entry (i)); 198 unspec (sym) = "0"b; 199 sym.name = set_sym_name; 200 sym.value = set_sym_value; 201 sym.len = expr_info.len; 202 sym.type = expr_info.type; 203 sym.reloc = reloc_abs; 204 sym.flag_mem = ""; 205 return; 206 207 /* Entry to implement the explain command */ 208 209 explain: entry (arg_corep, arg_fnp, arg_cmd_infop, arg_expr_infop); 210 211 cmd_infop = arg_cmd_infop; 212 call db_fnp_reader_$get_operand (cmd_infop); 213 if cmd_info.error then go to error_return; 214 if cmd_info.endline then do; 215 call ioa_ ("Symbol missing"); 216 go to error_return; 217 end; 218 do while (^cmd_info.endline); 219 call lookup (operand, symp); 220 if symp = null then call ioa_ ("Symbol ""^a"" undefined.", operand); 221 else if sym.explain = "0"b then call ioa_ ("Symbol ""^a"" has no explanation.", operand); 222 else do; 223 exptextp = addrel (addr (db_fnp_symbols_$db_fnp_symbols_), sym.explain); 224 call ioa_ ("""^a""^[ (in ^a)^;^s^] = ^a", operand, 225 (sym.flag_mem ^= ""), sym.flag_mem, exptext.data); 226 end; 227 call db_fnp_reader_$get_operand (cmd_infop); 228 if cmd_info.error then go to error_return; 229 end; 230 return; 231 error_return: 232 cmd_info.flush = "1"b; 233 return; 234 235 /* Implement apropos command. print symbols whose explanation contains 236* the string given */ 237 238 apropos: entry (arg_corep, arg_fnp, arg_cmd_infop, arg_expr_infop); 239 240 cmd_infop = arg_cmd_infop; 241 apropos_listp = null (); 242 on cleanup call apropos_cleanup; 243 allocate apropos_list in (get_system_free_area_ () -> based_area); 244 245 call db_fnp_reader_$get_operand (cmd_infop); 246 if cmd_info.error then go to apropos_error; 247 if cmd_info.endline then do; 248 call ioa_ ("Argument missing."); 249 go to apropos_error; 250 end; 251 apr_cnt = 0; 252 do while (^cmd_info.endline); 253 if apr_cnt = hbound (apropos_list, 1) then do; 254 call ioa_ ("Too many arguments"); 255 go to apropos_error; 256 end; 257 apr_cnt = apr_cnt + 1; 258 apropos_list (apr_cnt) = operand; 259 call db_fnp_reader_$get_operand (cmd_infop); 260 if cmd_info.error then go to apropos_error; 261 end; 262 263 symbol_tablep = addr (db_fnp_symbols_$db_fnp_symbols_); 264 found = "0"b; 265 do i = 1 to symbol_table.cnt; 266 symp = addr (symbol_table.entry (i)); 267 if sym.explain ^= "0"b then do; 268 exptextp = addrel (symbol_tablep, sym.explain); 269 do j = 1 to apr_cnt; 270 if index (exptext.data, apropos_list (j)) ^= 0 then do; 271 found = "1"b; 272 call ioa_ ("""^a""^[ (in ^a)^;^s^] = ^a", sym.name, 273 (sym.flag_mem ^= ""), sym.flag_mem, exptext.data); 274 go to next_apropos; 275 end; 276 end; 277 end; 278 next_apropos: 279 end; 280 if ^found then do; 281 call ioa_ ("No symbols found."); 282 go to apropos_error; 283 end; 284 285 call apropos_cleanup; 286 return; 287 apropos_error: 288 call apropos_cleanup; 289 go to error_return; 290 291 apropos_cleanup: proc; 292 293 if apropos_listp ^= null () then free apropos_list; 294 return; 295 296 end apropos_cleanup; 297 298 /* This entry is a debuging entry to display the symbol table. It is called as a Multics command. */ 299 300 db_fnp_dump_symbols: entry; 301 302 symbol_tablep = addr (db_fnp_symbols_$db_fnp_symbols_); 303 if symbol_table.cnt = 0 then do; 304 call ioa_ ("No symbols."); 305 return; 306 end; 307 308 call ioa_ ("NAME VALUE LEN RELOC TYPE FLAG EXPLANATION^/"); 309 310 do i = 1 to symbol_table.cnt; 311 symp = addr (symbol_table.entry (i)); 312 exptextp = addrel (symbol_tablep, sym.explain); 313 call ioa_ ("^6a^7o^5o ^[ ^;tib ^;hwcm^;sfcm^;meters^] ^6a ^8a ^[^a^;^s^]", sym.name, sym.value, sym.len, 314 sym.reloc + 1, short_type_names (sym.type), sym.flag_mem, (sym.explain ^= "0"b), exptext.data); 315 end; 316 call ioa_ ("^/^d symbol^[s^].^/", symbol_table.cnt, symbol_table.cnt ^= 1); 317 return; 318 1 1 /* Begin include file ..... debug_fnp_data.incl.pl1 */ 1 2 1 3 /* Describes various structures used by the debug_fnp command */ 1 4 1 5 /* Written February 1977 by Larry Johnson */ 1 6 1 7 /* Structures describing a symbol table used by the debug_fnp command, 1 8* to find values for common FNP symbols. */ 1 9 1 10 dcl db_fnp_symbols_$db_fnp_symbols_ ext; 1 11 1 12 dcl symbol_tablep ptr; 1 13 1 14 dcl 1 symbol_table aligned based (symbol_tablep), 1 15 2 cnt fixed bin, /* Number of entries */ 1 16 2 maxcnt fixed bin, /* Max count */ 1 17 2 entry (symbol_table.cnt) unal, 1 18 3 one_symbol like sym unal; 1 19 1 20 dcl symp ptr; /* Pointer to one symbol */ 1 21 1 22 dcl 1 sym unal based (symp), 1 23 2 name char (6), 1 24 2 value fixed bin (17), 1 25 2 len fixed bin (17), /* Number of words */ 1 26 2 reloc fixed bin (17), 1 27 2 type fixed bin (17), 1 28 2 flag_mem char (6), /* If non blank, name of word in which this is a flag */ 1 29 2 explain bit (18), /* Offset to explanation for symbol */ 1 30 2 pad bit (18); 1 31 1 32 dcl exptextp ptr; 1 33 1 34 dcl 1 exptext aligned based (exptextp), /* Symbol explanation entry */ 1 35 2 len fixed bin (8) unal, 1 36 2 data char (exptext.len) unal; 1 37 1 38 /* Values for sym.reloc, which is relocation required to find the symbol */ 1 39 1 40 dcl (reloc_abs init (0), /* Value is absolute */ 1 41 reloc_tib init (1), /* Value is relative to current tib addr */ 1 42 reloc_hwcm init (2), /* Value is relative to current hwcm */ 1 43 reloc_sfcm init (3), /* Value is relative to software comm region */ 1 44 reloc_meters init (4)) /* Value is relative to tib meters */ 1 45 int static options (constant); 1 46 1 47 /* Values for sym.type, which is the mode to be used in displaying symbol */ 1 48 1 49 dcl (type_oct init (0), /* Octal, default for most symbols */ 1 50 type_char init (1), /* Ascii characters */ 1 51 type_addr init (2), /* Address to be converted to mod|offset */ 1 52 type_clock init (3), /* Multics clock value */ 1 53 type_inst init (4), /* Machine instruction */ 1 54 type_op init (5), /* Interpreter opblock format */ 1 55 type_dec init (6), /* Decimal */ 1 56 type_bit init (7), /* In bits */ 1 57 type_ebcdic init (8)) /* 8-bit ebcdic characters */ 1 58 int static options (constant); 1 59 1 60 dcl long_type_names (0:8) char (12) int static options (constant) init ( 1 61 "octal", "character", "address", "clock", "instruction", "opblock", "decimal", "bit", "ebcdic"); 1 62 dcl short_type_names (0:8) char (4) int static options (constant) init ( 1 63 "oct", "ch", "addr", "ck", "inst", "op", "dec", "bit", "ebc"); 1 64 1 65 1 66 /* Structure of suplmental data used in evaluating expressions */ 1 67 1 68 dcl expr_infop ptr; 1 69 1 70 dcl 1 expr_info aligned based (expr_infop), 1 71 2 flags, 1 72 3 star_known bit (1) unal, /* Value of "*" is known */ 1 73 3 tib_known bit (1) unal, /* TIB addresses may be used */ 1 74 3 hwcm_known bit (1) unal, /* HWCM address may be used */ 1 75 3 sfcm_known bit (1) unal, /* SFCM address may be used */ 1 76 3 pad bit (32) unal, 1 77 2 star_addr fixed bin, /* Value of "*" */ 1 78 2 tib_addr fixed bin, /* Address of TIB */ 1 79 2 hwcm_addr fixed bin, /* Address of HWCM */ 1 80 2 sfcm_addr fixed bin, /* Address of SFCM */ 1 81 2 type fixed bin, /* Expression type (mode for printing) */ 1 82 2 len fixed bin, /* Implied length of expression */ 1 83 2 user_tablep ptr; /* Pointer to a user symbol table */ 1 84 1 85 1 86 /* Structure of opcode table of machine instructions */ 1 87 1 88 dcl db_fnp_opcodes_$ ext; 1 89 1 90 dcl optablep ptr; 1 91 1 92 dcl 1 optable aligned based (optablep), 1 93 2 cnt fixed bin, 1 94 2 entry (optable.cnt) unal, 1 95 3 one_op like op; 1 96 1 97 dcl opp ptr; 1 98 1 99 dcl 1 op unal based (opp), 1 100 2 name char (6), /* The mneumonic */ 1 101 2 code bit (12), /* The opcode */ 1 102 2 mask bit (12), /* Mask that says where the opcode is */ 1 103 2 type fixed bin (11), /* Type of display required */ 1 104 2 pad bit (18); 1 105 1 106 /* Values for op.type are: 1 107* 0 - storage reference 1 108* 1 - non-storage reference (immediate), 1 109* 2 - non-storage reference (iacxn only), 1 110* 3 - non-storage reference (shifts), 1 111* 4 - non-storage reference (no operands) */ 1 112 1 113 1 114 /* Stuctures used while parsing commands into operands */ 1 115 1 116 dcl cmd_infop ptr; 1 117 1 118 dcl 1 cmd_info aligned based (cmd_infop), 1 119 2 inbuf char (256), /* For reading lines */ 1 120 2 opbuf char (256), /* Used for operand in undoubling quotes */ 1 121 2 commandp ptr, /* Address of unparsed part of command */ 1 122 2 commandl fixed bin, /* Length of unparsed part */ 1 123 2 operandp ptr, /* Address of current operand */ 1 124 2 operandl fixed bin, /* And its length */ 1 125 2 error bit (1), /* Set if error parsing operand */ 1 126 2 endline bit (1), /* Set if no more operands on line */ 1 127 2 opstring bit (1), /* Set if operand was unquoted string */ 1 128 2 flush bit (1), /* If set, rest of input line will be ignored */ 1 129 2 envp ptr; /* Pointer to the debug_fnp environment structure */ 1 130 1 131 dcl command char (cmd_info.commandl) based (cmd_info.commandp); 1 132 dcl operand char (cmd_info.operandl) based (cmd_info.operandp); 1 133 1 134 /* The following structure describes the current debug_fnp environment. */ 1 135 /* It specifies whether we are working on a dump, fnp, core image, etc. */ 1 136 1 137 dcl envp ptr; 1 138 1 139 dcl 1 env aligned based (envp), 1 140 2 corep ptr, /* Ptr to current dump or core-image. Null means live FNP */ 1 141 2 fnp fixed bin, /* Current fnp number */ 1 142 2 dump_dir char (168) unal, /* Directory where dumps are found */ 1 143 2 dir char (168) unal, /* Directory for current dump or core image */ 1 144 2 ename char (32) unal, /* Ename for current dump or core image */ 1 145 2 tty_name char (32), /* Name of current channel */ 1 146 2 segp ptr, /* Pointer to base of current segment */ 1 147 2 flags unal, 1 148 3 fnps_configured bit (8), /* Says which FNP's appear in config deck */ 1 149 3 fnp_sw bit (1), /* 1 if currently working on fnp */ 1 150 3 image_sw bit (1), /* 1 if currently working on a core-image */ 1 151 3 dump_sw bit (1), /* 1 if current working on a dump */ 1 152 3 fdump_sw bit (1), /* 1 if current dump is a fdump */ 1 153 3 pad bit (24), 1 154 2 dump_time fixed bin (71); /* Clock time dump occured */ 1 155 1 156 /* Structure of data defining table of interpreter opblock names */ 1 157 1 158 dcl db_fnp_opblocks_$ ext; 1 159 1 160 dcl opblock_tablep ptr; 1 161 1 162 dcl 1 opblock_table aligned based (opblock_tablep), 1 163 2 cnt fixed bin, 1 164 2 name (0:opblock_table.cnt) char (6) unal; 1 165 1 166 /* End include file ..... debug_fnp_data.incl.pl1 */ 319 320 321 end db_fnp_sym_util_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/15/82 1502.2 db_fnp_sym_util_.pl1 >dumps>old>recomp>db_fnp_sym_util_.pl1 319 1 06/19/81 2115.0 debug_fnp_data.incl.pl1 >ldd>include>debug_fnp_data.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. addr builtin function dcl 60 ref 67 72 119 121 184 196 223 263 266 302 311 addrel builtin function dcl 60 ref 223 268 312 apr_cnt 000112 automatic fixed bin(17,0) dcl 38 set ref 251* 253 257* 257 258 269 apropos_list based varying char(32) array dcl 43 set ref 243 253 258* 270 293 apropos_listp 000110 automatic pointer dcl 37 set ref 241* 243* 253 258 270 293 293 arg_cmd_infop parameter pointer dcl 26 ref 133 135 209 211 238 240 arg_corep parameter pointer dcl 24 set ref 133 155* 209 238 arg_expr_infop parameter pointer dcl 23 ref 133 136 209 238 arg_fnp parameter fixed bin(17,0) dcl 25 set ref 133 155* 209 238 arg_member parameter char unaligned dcl 27 ref 117 122 arg_sym parameter char unaligned dcl 20 set ref 64 73 78* 85 93 105 107* 110 112* 117 124* 128* arg_symp parameter pointer dcl 21 set ref 64 74* 79* 85 93 97* arg_user_tablep parameter pointer dcl 22 ref 93 95 arg_value parameter fixed bin(17,0) dcl 28 ref 117 122 based_area based area(1024) dcl 44 ref 243 cleanup 000114 stack reference condition dcl 58 ref 242 cmd_info based structure level 1 dcl 1-118 cmd_infop 000132 automatic pointer dcl 1-116 set ref 135* 138* 139 140 144 144 145 145 146 146 146 149* 150 151 155 155 155 211* 212* 213 214 218 219 219 219 220 220 220 221 221 221 224 224 224 227* 228 231 240* 245* 246 247 252 258 258 259* 260 cnt based fixed bin(17,0) level 2 dcl 1-14 set ref 70 120 183 188 193* 193 194 265 303 310 316* 316 code 000107 automatic fixed bin(35,0) dcl 36 set ref 155* 156 data 0(09) based char level 2 packed unaligned dcl 1-34 set ref 224* 270 272* 313* db_fnp_eval_ 000016 constant entry external dcl 55 ref 155 db_fnp_reader_$get_operand 000014 constant entry external dcl 54 ref 138 149 212 227 245 259 db_fnp_symbols_$db_fnp_symbols_ 000022 external static fixed bin(17,0) dcl 1-10 set ref 67 119 223 263 302 endline 210 based bit(1) level 2 dcl 1-118 ref 140 151 214 218 247 252 entry 2 based structure array level 2 packed unaligned dcl 1-14 set ref 72 121 184 196 266 311 error 207 based bit(1) level 2 dcl 1-118 ref 139 150 213 228 246 260 explain 5 based bit(18) level 2 packed unaligned dcl 1-22 set ref 221 223 267 268 312 313 expr_info based structure level 1 dcl 1-70 expr_infop 000130 automatic pointer dcl 1-68 set ref 136* 155* 159 160 164 165 169 170 174 175 182 201 202 exptext based structure level 1 dcl 1-34 exptextp 000126 automatic pointer dcl 1-32 set ref 223* 224 224 224 268* 270 270 272 272 272 312* 313 313 313 flag_mem 3(18) based char(6) level 2 packed unaligned dcl 1-22 set ref 122 204* 224 224* 272 272* 313* flags based structure level 2 dcl 1-70 flush 212 based bit(1) level 2 dcl 1-118 set ref 231* found 000113 automatic bit(1) unaligned dcl 39 set ref 264* 271* 280 get_system_free_area_ 000020 constant entry external dcl 56 ref 243 hbound builtin function dcl 60 ref 253 hwcm_addr 3 based fixed bin(17,0) level 2 dcl 1-70 set ref 169* hwcm_known 0(02) based bit(1) level 3 packed unaligned dcl 1-70 set ref 170* i 000100 automatic fixed bin(17,0) dcl 32 set ref 70* 72* 120* 121* 183* 184* 194* 196 265* 266* 310* 311* index builtin function dcl 60 ref 270 ioa_ 000012 constant entry external dcl 53 ref 141 146 152 189 215 220 221 224 248 254 272 281 304 308 313 316 j 000101 automatic fixed bin(17,0) dcl 32 set ref 269* 270* len 2 based fixed bin(17,0) level 2 in structure "sym" packed unaligned dcl 1-22 in procedure "db_fnp_sym_util_" set ref 113 201* 313* len 6 based fixed bin(17,0) level 2 in structure "expr_info" dcl 1-70 in procedure "db_fnp_sym_util_" ref 201 len based fixed bin(8,0) level 2 in structure "exptext" packed unaligned dcl 1-34 in procedure "db_fnp_sym_util_" ref 224 224 270 272 272 313 313 maxcnt 1 based fixed bin(17,0) level 2 dcl 1-14 ref 188 name 000011 constant char(16) initial unaligned dcl 48 in procedure "db_fnp_sym_util_" set ref 78* name based char(6) level 2 in structure "sym" packed unaligned dcl 1-22 in procedure "db_fnp_sym_util_" set ref 73 124 185 199* 272* 313* null builtin function dcl 60 ref 78 78 79 96 97 220 241 293 op based structure level 1 packed unaligned dcl 1-99 operand based char unaligned dcl 1-132 set ref 144 145 146* 155* 219* 220* 221* 224* 258 operandl 206 based fixed bin(17,0) level 2 dcl 1-118 ref 144 145 146 146 155 155 219 219 220 220 221 221 224 224 258 operandp 204 based pointer level 2 dcl 1-118 ref 144 145 146 155 219 220 221 224 258 reloc 2(18) based fixed bin(17,0) level 2 packed unaligned dcl 1-22 set ref 203* 313 reloc_abs constant fixed bin(17,0) initial dcl 1-40 ref 203 req 000102 automatic bit(1) initial unaligned dcl 33 set ref 33* 78 87* set_sym_name 000104 automatic char(6) unaligned dcl 34 set ref 144* 145 158 163 168 173 185 199 set_sym_value 000106 automatic fixed bin(17,0) dcl 35 set ref 155* 159 164 169 174 200 sfcm_addr 4 based fixed bin(17,0) level 2 dcl 1-70 set ref 174* sfcm_known 0(03) based bit(1) level 3 packed unaligned dcl 1-70 set ref 175* short_type_names 000000 constant char(4) initial array unaligned dcl 1-62 set ref 313* star_addr 1 based fixed bin(17,0) level 2 dcl 1-70 set ref 159* star_known based bit(1) level 3 packed unaligned dcl 1-70 set ref 160* sub_err_ 000010 constant entry external dcl 52 ref 78 sym based structure level 1 packed unaligned dcl 1-22 set ref 198* symbol_table based structure level 1 dcl 1-14 symbol_tablep 000122 automatic pointer dcl 1-12 set ref 67* 70 72 95* 96 119* 120 121 182* 183 184 188 188 193 193 194 196 263* 265 266 268 302* 303 310 311 312 316 316 symp 000124 automatic pointer dcl 1-20 set ref 72* 73 74 107* 108 112* 113 121* 122 122 124 184* 185 196* 198 199 200 201 202 203 204 219* 220 221 223 224 224 266* 267 268 272 272 272 311* 312 313 313 313 313 313 313 313 tib_addr 2 based fixed bin(17,0) level 2 dcl 1-70 set ref 164* tib_known 0(01) based bit(1) level 3 packed unaligned dcl 1-70 set ref 165* type 3 based fixed bin(17,0) level 2 in structure "sym" packed unaligned dcl 1-22 in procedure "db_fnp_sym_util_" set ref 202* 313 type 5 based fixed bin(17,0) level 2 in structure "expr_info" dcl 1-70 in procedure "db_fnp_sym_util_" ref 202 unspec builtin function dcl 60 set ref 198* user_tablep 10 based pointer level 2 dcl 1-70 ref 182 value 1(18) based fixed bin(17,0) level 2 packed unaligned dcl 1-22 set ref 108 122 200* 313* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. command based char unaligned dcl 1-131 db_fnp_opblocks_$ external static fixed bin(17,0) dcl 1-158 db_fnp_opcodes_$ external static fixed bin(17,0) dcl 1-88 env based structure level 1 dcl 1-139 envp automatic pointer dcl 1-137 long_type_names internal static char(12) initial array unaligned dcl 1-60 opblock_table based structure level 1 dcl 1-162 opblock_tablep automatic pointer dcl 1-160 opp automatic pointer dcl 1-97 optable based structure level 1 dcl 1-92 optablep automatic pointer dcl 1-90 reloc_hwcm internal static fixed bin(17,0) initial dcl 1-40 reloc_meters internal static fixed bin(17,0) initial dcl 1-40 reloc_sfcm internal static fixed bin(17,0) initial dcl 1-40 reloc_tib internal static fixed bin(17,0) initial dcl 1-40 type_addr internal static fixed bin(17,0) initial dcl 1-49 type_bit internal static fixed bin(17,0) initial dcl 1-49 type_char internal static fixed bin(17,0) initial dcl 1-49 type_clock internal static fixed bin(17,0) initial dcl 1-49 type_dec internal static fixed bin(17,0) initial dcl 1-49 type_ebcdic internal static fixed bin(17,0) initial dcl 1-49 type_inst internal static fixed bin(17,0) initial dcl 1-49 type_oct internal static fixed bin(17,0) initial dcl 1-49 type_op internal static fixed bin(17,0) initial dcl 1-49 NAMES DECLARED BY EXPLICIT CONTEXT. apropos 001755 constant entry external dcl 238 apropos_cleanup 002607 constant entry internal dcl 291 ref 242 285 287 apropos_error 002335 constant label dcl 287 ref 246 249 255 260 282 db_fnp_dump_symbols 002343 constant entry external dcl 300 db_fnp_sym_util_ 000251 constant entry external dcl 16 error_return 001741 constant label dcl 231 ref 139 142 147 150 153 156 190 213 216 228 289 explain 001454 constant entry external dcl 209 get_length 000603 constant entry external dcl 110 get_value 000531 constant entry external dcl 105 lookup 000266 constant entry external dcl 64 ref 219 lookup_join 000311 constant label dcl 70 ref 96 lookup_member 000657 constant entry external dcl 117 lookup_req 000435 constant entry external dcl 85 ref 107 112 lookup_start 000306 constant label dcl 67 ref 88 lookup_user 000464 constant entry external dcl 93 next_apropos 002276 constant label dcl 278 ref 274 set_command 001003 constant entry external dcl 133 store_sym 001400 constant label dcl 196 set ref 185 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3040 3064 2625 3050 Length 3320 2625 24 217 213 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME db_fnp_sym_util_ 194 external procedure is an external procedure. on unit on line 242 64 on unit apropos_cleanup 64 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME db_fnp_sym_util_ 000100 i db_fnp_sym_util_ 000101 j db_fnp_sym_util_ 000102 req db_fnp_sym_util_ 000104 set_sym_name db_fnp_sym_util_ 000106 set_sym_value db_fnp_sym_util_ 000107 code db_fnp_sym_util_ 000110 apropos_listp db_fnp_sym_util_ 000112 apr_cnt db_fnp_sym_util_ 000113 found db_fnp_sym_util_ 000122 symbol_tablep db_fnp_sym_util_ 000124 symp db_fnp_sym_util_ 000126 exptextp db_fnp_sym_util_ 000130 expr_infop db_fnp_sym_util_ 000132 cmd_infop db_fnp_sym_util_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_ne_as call_ext_in_desc call_ext_out_desc call_ext_out call_int_this call_int_other return signal enable ext_entry ext_entry_desc int_entry set_cs_eis index_cs_eis alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. db_fnp_eval_ db_fnp_reader_$get_operand get_system_free_area_ ioa_ sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. db_fnp_symbols_$db_fnp_symbols_ LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 33 000245 16 000250 64 000261 67 000306 70 000311 72 000320 73 000324 74 000335 75 000336 77 000345 78 000347 79 000422 80 000424 85 000433 87 000455 88 000457 93 000460 95 000504 96 000510 97 000514 98 000516 105 000525 107 000546 108 000562 110 000601 112 000620 113 000634 117 000653 119 000702 120 000705 121 000714 122 000720 124 000736 125 000746 127 000755 128 000757 129 000767 133 000776 135 001013 136 001017 138 001022 139 001031 140 001034 141 001036 142 001055 144 001056 145 001064 146 001070 147 001116 149 001117 150 001126 151 001131 152 001133 153 001152 155 001153 156 001216 158 001220 159 001226 160 001231 161 001233 163 001242 164 001250 165 001253 166 001255 168 001264 169 001272 170 001275 171 001277 173 001306 174 001314 175 001317 176 001321 182 001330 183 001333 184 001342 185 001346 186 001352 188 001354 189 001360 190 001374 193 001375 194 001376 196 001400 198 001404 199 001407 200 001412 201 001420 202 001427 203 001435 204 001440 205 001443 209 001452 211 001464 212 001470 213 001477 214 001502 215 001504 216 001523 218 001524 219 001527 220 001546 221 001602 223 001635 224 001642 227 001717 228 001726 229 001731 230 001732 231 001741 233 001744 238 001753 240 001765 241 001771 242 001773 243 002015 245 002031 246 002040 247 002043 248 002045 249 002064 251 002065 252 002066 253 002071 254 002074 255 002110 257 002111 258 002112 259 002130 260 002137 261 002142 263 002143 264 002146 265 002147 266 002156 267 002162 268 002166 269 002175 270 002204 271 002222 272 002224 274 002273 276 002274 278 002276 280 002300 281 002302 282 002321 285 002322 286 002326 287 002335 289 002341 300 002342 302 002353 303 002356 304 002360 305 002374 308 002403 310 002416 311 002425 312 002431 313 002440 315 002545 316 002547 317 002577 291 002606 293 002614 294 002623 ----------------------------------------------------------- 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