COMPILATION LISTING OF SEGMENT pnt_db_interface_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/13/85 1146.5 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* format: style2 */ 7 8 /* PNT_DB_INTERFACE_: This is one of two programs that are the target 9* of PNT-related gates. This program is primarily the gate-level 10* interface to pnt_db_util_ which does the actual work of database 11* related manipulations of PNTs. Pnt_fs_interface_ is the gate-level 12* interface to pnt_fs_util_ which does the actual work of file system 13* related manipulations of the PNT. 14* 15* This program, and pnt_fs_interface_, being the target of ring-1 gates, 16* copy arguments, manipulate the validation level, and call supporting 17* routines. 18* 19* The only caller of these entrypoints through pnt_db_gate_ are 20* callers of pnt_manager_ who manipulate only THE PNT (>sc1>PNT.pnt). 21* Therefore, to spare them the agony and time of opening and closing 22* the pnt, and maintaining and passing a pointer to it for each call, 23* this program maintains a static pointer which it passes on each 24* call to pnt_db_util_. */ 25 26 pnt_db_interface_: 27 procedure (); 28 29 return; /* Not a valid entrypoint */ 30 31 /* Written 1984-08-09 by E. Swenson. 32* Modified 1985-01-25 by E. Swenson for auditing. 33**/ 34 35 /* Parameters */ 36 37 dcl P_code fixed bin (35) parameter; 38 dcl P_num_entries fixed bin (35) parameter; 39 dcl P_password char (*) parameter; 40 dcl P_person_id char (*) parameter; 41 dcl P_pnt_entry_ptr ptr parameter; 42 dcl P_pnt_info_ptr ptr parameter; 43 dcl P_record_no fixed bin (35) parameter; 44 dcl P_set_network_password bit (1) parameter; 45 dcl P_set_password bit (1) parameter; 46 dcl P_short_password bit (1) parameter; 47 48 /* Automatic */ 49 50 dcl code fixed bin (35); /* status code */ 51 dcl num_entries fixed bin (35); /* for $table_data entrypoint */ 52 dcl person_id char (32); 53 dcl password char (32); 54 dcl pnt_entry_ptr ptr; 55 dcl pnt_info_ptr ptr; 56 dcl record_no fixed bin (35); 57 dcl saved_level fixed bin (3); /* saved validation level */ 58 dcl set_network_password bit (1); 59 dcl set_password bit (1); 60 dcl short_password bit (1); 61 62 dcl 1 pnt_entry_copy aligned like pnt_entry automatic; 63 dcl 1 pnt_info_copy aligned like ms_table_info automatic; 64 /* External Entries */ 65 66 dcl get_ring_ entry () returns (fixed bin (3)); 67 dcl hcs_$level_get entry (fixed bin (3)); 68 dcl hcs_$level_set entry (fixed bin (3)); 69 dcl pnt_db_util_$add_entry entry (ptr, bit (1) aligned, char (*), ptr, fixed bin (35)); 70 dcl pnt_db_util_$admin_get_entry 71 entry (ptr, bit (1) aligned, char (*), ptr, fixed bin (35)); 72 dcl pnt_db_util_$close entry (ptr, bit (1) aligned, fixed bin (35)); 73 dcl pnt_db_util_$get_abs_entry 74 entry (ptr, bit (1) aligned, fixed bin (35), ptr, fixed bin (35)); 75 dcl pnt_db_util_$get_network_password 76 entry (ptr, bit (1) aligned, char (*), char (*), bit (1), fixed bin (35)); 77 dcl pnt_db_util_$login_get_entry 78 entry (ptr, bit (1) aligned, char (*), char (*), ptr, fixed bin (35)); 79 dcl pnt_db_util_$network_get_entry 80 entry (ptr, bit (1) aligned, char (*), char (*), ptr, fixed bin (35)); 81 dcl pnt_db_util_$open entry (char (*), char (*), bit (1) aligned, ptr, fixed bin (35)); 82 dcl pnt_db_util_$priv_get_abs_entry 83 entry (ptr, bit (1) aligned, fixed bin (35), ptr, fixed bin (35)); 84 dcl pnt_db_util_$priv_get_entry 85 entry (ptr, bit (1) aligned, char (*), ptr, fixed bin (35)); 86 dcl pnt_db_util_$remove_entry 87 entry (ptr, bit (1) aligned, char (*), fixed bin (35)); 88 dcl pnt_db_util_$table_data 89 entry (ptr, bit (1) aligned, ptr, fixed bin (35), fixed bin (35)); 90 dcl pnt_db_util_$update_entry 91 entry (ptr, bit (1) aligned, ptr, bit (1), bit (1), fixed bin (35)); 92 dcl pnt_db_util_$validate_entry 93 entry (ptr, bit (1) aligned, char (*), fixed bin (35)); 94 95 96 /* Static */ 97 98 dcl initialized bit (1) internal static initial ("0"b); 99 dcl pnt_ptr ptr internal static initial (null ()); 100 101 /* Constant */ 102 103 dcl DO_AUDIT bit (1) aligned initial ("1"b) internal static options (constant); 104 dcl PNT_DIRNAME char (168) internal static options (constant) initial (">system_control_1"); 105 dcl PNT_ENTRYNAME char (32) internal static options (constant) initial ("PNT.pnt"); 106 107 /* Conditions */ 108 109 declare cleanup condition; 110 111 get_abs_entry: 112 entry (P_record_no, P_pnt_entry_ptr, P_code); 113 114 record_no = P_record_no; 115 pnt_entry_ptr = P_pnt_entry_ptr; 116 117 code = 0; 118 119 saved_level = -1; 120 on condition (cleanup) call reset_level (); 121 call set_level; 122 123 if ^initialized 124 then call INITIALIZE (); 125 126 call pnt_db_util_$get_abs_entry (pnt_ptr, DO_AUDIT, record_no, addr (pnt_entry_copy), code); 127 128 pnt_entry_ptr -> pnt_entry = pnt_entry_copy; 129 goto RETURN_TO_CALLER; 130 131 priv_get_abs_entry: 132 entry (P_record_no, P_pnt_entry_ptr, P_code); 133 134 record_no = P_record_no; 135 pnt_entry_ptr = P_pnt_entry_ptr; 136 137 code = 0; 138 139 saved_level = -1; 140 on condition (cleanup) call reset_level (); 141 call set_level; 142 143 if ^initialized 144 then call INITIALIZE (); 145 146 call pnt_db_util_$priv_get_abs_entry (pnt_ptr, DO_AUDIT, record_no, addr (pnt_entry_copy), code); 147 148 pnt_entry_ptr -> pnt_entry = pnt_entry_copy; 149 goto RETURN_TO_CALLER; 150 151 admin_get_entry: 152 entry (P_person_id, P_pnt_entry_ptr, P_code); 153 154 person_id = P_person_id; 155 pnt_entry_ptr = P_pnt_entry_ptr; 156 157 code = 0; 158 159 saved_level = -1; 160 on condition (cleanup) call reset_level (); 161 call set_level; 162 163 if ^initialized 164 then call INITIALIZE (); 165 166 call pnt_db_util_$admin_get_entry (pnt_ptr, DO_AUDIT, person_id, addr (pnt_entry_copy), code); 167 168 pnt_entry_ptr -> pnt_entry = pnt_entry_copy; 169 goto RETURN_TO_CALLER; 170 171 login_get_entry: 172 entry (P_person_id, P_password, P_pnt_entry_ptr, P_code); 173 174 person_id = P_person_id; 175 password = P_password; 176 pnt_entry_ptr = P_pnt_entry_ptr; 177 178 code = 0; 179 180 saved_level = -1; 181 on condition (cleanup) call reset_level (); 182 call set_level; 183 184 if ^initialized 185 then call INITIALIZE (); 186 187 call pnt_db_util_$login_get_entry (pnt_ptr, DO_AUDIT, person_id, password, addr (pnt_entry_copy), code); 188 189 pnt_entry_ptr -> pnt_entry = pnt_entry_copy; 190 goto RETURN_TO_CALLER; 191 192 network_get_entry: 193 entry (P_person_id, P_password, P_pnt_entry_ptr, P_code); 194 195 person_id = P_person_id; 196 password = P_password; 197 pnt_entry_ptr = P_pnt_entry_ptr; 198 199 code = 0; 200 201 saved_level = -1; 202 on condition (cleanup) call reset_level (); 203 call set_level; 204 205 if ^initialized 206 then call INITIALIZE (); 207 208 call pnt_db_util_$network_get_entry (pnt_ptr, DO_AUDIT, person_id, password, addr (pnt_entry_copy), code); 209 210 pnt_entry_ptr -> pnt_entry = pnt_entry_copy; 211 goto RETURN_TO_CALLER; 212 213 priv_get_entry: 214 entry (P_person_id, P_pnt_entry_ptr, P_code); 215 216 person_id = P_person_id; 217 pnt_entry_ptr = P_pnt_entry_ptr; 218 219 code = 0; 220 221 saved_level = -1; 222 on condition (cleanup) call reset_level (); 223 call set_level; 224 225 if ^initialized 226 then call INITIALIZE (); 227 228 call pnt_db_util_$priv_get_entry (pnt_ptr, DO_AUDIT, person_id, addr (pnt_entry_copy), code); 229 230 pnt_entry_ptr -> pnt_entry = pnt_entry_copy; 231 goto RETURN_TO_CALLER; 232 233 get_network_password: 234 entry (P_person_id, P_password, P_short_password, P_code); 235 236 person_id = P_person_id; 237 238 password = ""; 239 short_password = "0"b; 240 code = 0; 241 242 saved_level = -1; 243 on condition (cleanup) call reset_level (); 244 call set_level; 245 246 if ^initialized 247 then call INITIALIZE (); 248 249 call pnt_db_util_$get_network_password (pnt_ptr, DO_AUDIT, person_id, password, short_password, code); 250 251 P_password = password; 252 P_short_password = short_password; 253 goto RETURN_TO_CALLER; 254 255 update_entry: 256 entry (P_pnt_entry_ptr, P_set_password, P_set_network_password, P_code); 257 258 pnt_entry_ptr = P_pnt_entry_ptr; 259 set_password = P_set_password; 260 set_network_password = P_set_network_password; 261 262 pnt_entry_copy = pnt_entry_ptr -> pnt_entry; /* Copy whole structure */ 263 264 code = 0; 265 266 saved_level = -1; 267 on condition (cleanup) call reset_level (); 268 call set_level; 269 270 if ^initialized 271 then call INITIALIZE (); 272 273 call pnt_db_util_$update_entry (pnt_ptr, DO_AUDIT, addr (pnt_entry_copy), set_password, set_network_password, 274 code); 275 276 goto RETURN_TO_CALLER; 277 278 add_entry: 279 entry (P_person_id, P_pnt_entry_ptr, P_code); 280 281 person_id = P_person_id; 282 pnt_entry_ptr = P_pnt_entry_ptr; /* Copy the pointer */ 283 284 pnt_entry_copy = pnt_entry_ptr -> pnt_entry; /* And the entire structure */ 285 286 code = 0; 287 288 saved_level = -1; 289 on condition (cleanup) call reset_level (); 290 call set_level; 291 292 if ^initialized 293 then call INITIALIZE (); 294 295 call pnt_db_util_$add_entry (pnt_ptr, DO_AUDIT, person_id, addr (pnt_entry_copy), code); 296 297 goto RETURN_TO_CALLER; 298 299 remove_entry: 300 entry (P_person_id, P_code); 301 302 person_id = P_person_id; 303 304 code = 0; 305 306 saved_level = -1; 307 on condition (cleanup) call reset_level (); 308 call set_level; 309 310 if ^initialized 311 then call INITIALIZE (); 312 313 call pnt_db_util_$remove_entry (pnt_ptr, DO_AUDIT, person_id, code); 314 315 goto RETURN_TO_CALLER; 316 317 table_data: 318 entry (P_pnt_info_ptr, P_num_entries, P_code); 319 320 pnt_info_ptr = P_pnt_info_ptr; 321 num_entries = 0; 322 code = 0; 323 324 saved_level = -1; 325 on condition (cleanup) call reset_level (); 326 call set_level; 327 328 if ^initialized 329 then call INITIALIZE (); 330 331 call pnt_db_util_$table_data (pnt_ptr, DO_AUDIT, addr (pnt_info_copy), num_entries, code); 332 pnt_info_ptr -> ms_table_info = pnt_info_copy; 333 P_num_entries = num_entries; 334 335 goto RETURN_TO_CALLER; 336 337 validate_entry: 338 entry (P_person_id, P_code); 339 340 person_id = P_person_id; 341 342 code = 0; 343 344 saved_level = -1; 345 on condition (cleanup) call reset_level (); 346 call set_level (); 347 348 if ^initialized 349 then call INITIALIZE (); 350 351 call pnt_db_util_$validate_entry (pnt_ptr, DO_AUDIT, person_id, code); 352 goto RETURN_TO_CALLER; 353 354 /* Global return point */ 355 356 RETURN_TO_CALLER: 357 call reset_level (); 358 P_code = code; 359 return; 360 361 /* Internal Procedures */ 362 INITIALIZE: 363 procedure (); 364 365 code = 0; 366 call pnt_db_util_$open (PNT_DIRNAME, PNT_ENTRYNAME, DO_AUDIT, pnt_ptr, code); 367 if code ^= 0 368 then goto RETURN_TO_CALLER; 369 370 initialized = "1"b; 371 return; 372 end INITIALIZE; 373 374 reset_level: 375 procedure (); 376 377 /* This procedure resets the validation level, it it was previously 378* set by calling entry. */ 379 380 if saved_level ^= -1 381 then do; 382 call hcs_$level_set (saved_level); 383 saved_level = -1; 384 end; 385 return; 386 end reset_level; 387 388 set_level: 389 procedure (); 390 391 /* This procedure gets the current validation level and saves it away in 392* saved_level. It then sets the validation level to the PNT level (1). */ 393 394 call hcs_$level_get (saved_level); 395 call hcs_$level_set (get_ring_ ()); 396 return; 397 end set_level; 398 399 /* format: off */ 1 1 /* Begin include file ms_table_info.incl.pl1 */ 1 2 /* Written by C. Hornig, June 1979 */ 1 3 /* Modified by B. Margolin, July 1983, for version 2 */ 1 4 /* Modified 1984-07-24 BIM for V3, improved hash, checksums */ 1 5 1 6 /* This information is passed to ms_table_mgr_$create when a multi-segment 1 7* table is created. */ 1 8 1 9 /* format: style3 */ 1 10 1 11 declare MS_TABLE_INFO_VERSION_3 1 12 fixed init (3) internal static options (constant); 1 13 1 14 declare 1 ms_table_info aligned based, 1 15 2 version fixed, /* Should be 3 */ 1 16 2 type character (32), /* what table is this? */ 1 17 2 ( 1 18 header_size, /* length of table header in words */ 1 19 entry_size 1 20 ) unsigned fixed (18), /* same for table entries */ 1 21 2 max_entries unsigned fixed bin (18), /* how many entries */ 1 22 2 max_size fixed bin (19), /* max segment length */ 1 23 2 keep_meters bit (1) aligned; /* table is writable to readers */ 1 24 1 25 /* End include file ms_table_info.incl.pl1 */ 400 2 1 /* BEGIN INCLUDE FILE ... pnt_entry.incl.pl1 */ 2 2 2 3 /* Modified 790702 by C. Hornig for MSF PNT */ 2 4 /* Modified 84-07-18 BIM for V2, aim ranges, long passwords. */ 2 5 /* Modified 84-09-25 for operator attribute... -E. A. Ranzenbach */ 2 6 /* Modified 85-03-05 E. Swenson for user_validated_time */ 2 7 2 8 /**** The ms_table_mgr_ has fixed sized entries, for now. 2 9* The presence of a version field and some pad allow 2 10* us to have incrementally-upgraded PNTE's in a future change. 2 11**/ 2 12 2 13 /**** The conversion to V2 copies the existing encrypted passwords. 2 14* Since the 32 character scrambling algorithm will not give the 2 15* same results, the short_XX flags indicate that the old scrambler 2 16* should be used. The short flags are automatically turned off 2 17* by calls to update the password with the long-scrambled form. */ 2 18 2 19 /* format: style4,insnl,delnl */ 2 20 2 21 declare pntep pointer automatic; 2 22 declare 1 pnt_entry based (pntep) aligned, /* declaration of a single PNT entry */ 2 23 2 version fixed bin, 2 24 2 private aligned, 2 25 3 pw_flags aligned, 2 26 4 short_pw bit (1) unal, /* ON password is eight-character form */ 2 27 4 short_network_pw bit (1) unal, /* ON card password is eight character form. */ 2 28 3 password character (32), /* person's password */ 2 29 3 network_password character (32), 2 30 2 public, 2 31 3 user_id character (32), /* user ID (for alias entries */ 2 32 3 alias character (8), 2 33 3 default_project character (16), /* user's default project */ 2 34 3 flags, /* one-bit flags */ 2 35 4 has_password bit (1) unaligned, 2 36 4 has_network_password bit (1) unaligned, 2 37 4 trap bit (1) unal, /* If this password is used, holler */ 2 38 4 lock bit (1) unal, /* prevent login if on. */ 2 39 4 nochange bit (1) unal, /* user cannot change password */ 2 40 4 must_change bit unal, /* user must change password at next login */ 2 41 4 pw_time_lock bit (1) unal, /* if password has a time lock */ 2 42 4 generate_pw bit (1) unal, /* ON if we give new pw, OFF lets user select new pw */ 2 43 4 last_bad_pw_reported bit (1) unal, /* ON if user has NOT been told about last bad password */ 2 44 4 operator bit (1) unal, /* ON if user can login as an operator... */ 2 45 4 pads bit (26) unal, 2 46 3 n_good_pw fixed bin, /* Number of good passwords */ 2 47 3 n_bad_pw fixed bin, /* Number of wrong passwords */ 2 48 3 n_bad_pw_since_good fixed bin, /* Number of wrong passwords since good */ 2 49 3 time_pw_changed fixed bin (71), /* When password was modified by user */ 2 50 2 51 3 time_last_good_pw fixed bin (71), 2 52 3 time_last_bad_pw fixed bin (71), /* When pw was last given wrong */ 2 53 3 bad_pw_term_id character (4), /* where bad password from */ 2 54 3 bad_pw_line_type fixed bin (17), /* ... */ 2 55 3 bad_pw_term_type character (32), 2 56 3 password_timelock fixed bin (71), /* Password is locked up until here */ 2 57 3 person_authorization (2) bit (72), /* authorization of this person */ 2 58 3 default_person_authorization bit (72), /* default authorization of this person */ 2 59 3 audit bit (36), /* audit flags for person */ 2 60 3 pad1 bit (36), /* pad to even word boundary */ 2 61 3 user_validated_time fixed bin (71), /* time this PNT entry was last validated by an administrator */ 2 62 2 pad (80 - 64) bit (36) aligned; 2 63 2 64 declare PNT_ENTRY_VERSION_2 fixed bin init (2) int static options (constant); 2 65 2 66 /* END INCLUDE FILE ... pnte.incl.pl1 */ 401 402 /* format: on */ 403 404 end pnt_db_interface_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/13/85 1028.5 pnt_db_interface_.pl1 >spec>on>41-11>pnt_db_interface_.pl1 400 1 12/07/84 1102.1 ms_table_info.incl.pl1 >ldd>include>ms_table_info.incl.pl1 401 2 03/12/85 1556.6 pnt_entry.incl.pl1 >spec>on>41-11>pnt_entry.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. DO_AUDIT 000062 constant bit(1) initial dcl 103 set ref 126* 146* 166* 187* 208* 228* 249* 273* 295* 313* 331* 351* 366* PNT_DIRNAME 000010 constant char(168) initial unaligned dcl 104 set ref 366* PNT_ENTRYNAME 000000 constant char(32) initial unaligned dcl 105 set ref 366* P_code parameter fixed bin(35,0) dcl 37 set ref 111 131 151 171 192 213 233 255 278 299 317 337 358* P_num_entries parameter fixed bin(35,0) dcl 38 set ref 317 333* P_password parameter char unaligned dcl 39 set ref 171 175 192 196 233 251* P_person_id parameter char unaligned dcl 40 ref 151 154 171 174 192 195 213 216 233 236 278 281 299 302 337 340 P_pnt_entry_ptr parameter pointer dcl 41 ref 111 115 131 135 151 155 171 176 192 197 213 217 255 258 278 282 P_pnt_info_ptr parameter pointer dcl 42 ref 317 320 P_record_no parameter fixed bin(35,0) dcl 43 ref 111 114 131 134 P_set_network_password parameter bit(1) unaligned dcl 44 ref 255 260 P_set_password parameter bit(1) unaligned dcl 45 ref 255 259 P_short_password parameter bit(1) unaligned dcl 46 set ref 233 252* cleanup 000272 stack reference condition dcl 109 ref 120 140 160 181 202 222 243 267 289 307 325 345 code 000100 automatic fixed bin(35,0) dcl 50 set ref 117* 126* 137* 146* 157* 166* 178* 187* 199* 208* 219* 228* 240* 249* 264* 273* 286* 295* 304* 313* 322* 331* 342* 351* 358 365* 366* 367 get_ring_ 000014 constant entry external dcl 66 ref 395 395 hcs_$level_get 000016 constant entry external dcl 67 ref 394 hcs_$level_set 000020 constant entry external dcl 68 ref 382 395 initialized 000010 internal static bit(1) initial unaligned dcl 98 set ref 123 143 163 184 205 225 246 270 292 310 328 348 370* ms_table_info based structure level 1 dcl 1-14 set ref 332* num_entries 000101 automatic fixed bin(35,0) dcl 51 set ref 321* 331* 333 password 000112 automatic char(32) unaligned dcl 53 set ref 175* 187* 196* 208* 238* 249* 251 person_id 000102 automatic char(32) unaligned dcl 52 set ref 154* 166* 174* 187* 195* 208* 216* 228* 236* 249* 281* 295* 302* 313* 340* 351* pnt_db_util_$add_entry 000022 constant entry external dcl 69 ref 295 pnt_db_util_$admin_get_entry 000024 constant entry external dcl 70 ref 166 pnt_db_util_$get_abs_entry 000026 constant entry external dcl 73 ref 126 pnt_db_util_$get_network_password 000030 constant entry external dcl 75 ref 249 pnt_db_util_$login_get_entry 000032 constant entry external dcl 77 ref 187 pnt_db_util_$network_get_entry 000034 constant entry external dcl 79 ref 208 pnt_db_util_$open 000036 constant entry external dcl 81 ref 366 pnt_db_util_$priv_get_abs_entry 000040 constant entry external dcl 82 ref 146 pnt_db_util_$priv_get_entry 000042 constant entry external dcl 84 ref 228 pnt_db_util_$remove_entry 000044 constant entry external dcl 86 ref 313 pnt_db_util_$table_data 000046 constant entry external dcl 88 ref 331 pnt_db_util_$update_entry 000050 constant entry external dcl 90 ref 273 pnt_db_util_$validate_entry 000052 constant entry external dcl 92 ref 351 pnt_entry based structure level 1 dcl 2-22 set ref 128* 148* 168* 189* 210* 230* 262 284 pnt_entry_copy 000134 automatic structure level 1 dcl 62 set ref 126 126 128 146 146 148 166 166 168 187 187 189 208 208 210 228 228 230 262* 273 273 284* 295 295 pnt_entry_ptr 000122 automatic pointer dcl 54 set ref 115* 128 135* 148 155* 168 176* 189 197* 210 217* 230 258* 262 282* 284 pnt_info_copy 000254 automatic structure level 1 dcl 63 set ref 331 331 332 pnt_info_ptr 000124 automatic pointer dcl 55 set ref 320* 332 pnt_ptr 000012 internal static pointer initial dcl 99 set ref 126* 146* 166* 187* 208* 228* 249* 273* 295* 313* 331* 351* 366* record_no 000126 automatic fixed bin(35,0) dcl 56 set ref 114* 126* 134* 146* saved_level 000127 automatic fixed bin(3,0) dcl 57 set ref 119* 139* 159* 180* 201* 221* 242* 266* 288* 306* 324* 344* 380 382* 383* 394* set_network_password 000130 automatic bit(1) unaligned dcl 58 set ref 260* 273* set_password 000131 automatic bit(1) unaligned dcl 59 set ref 259* 273* short_password 000132 automatic bit(1) unaligned dcl 60 set ref 239* 249* 252 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. MS_TABLE_INFO_VERSION_3 internal static fixed bin(17,0) initial dcl 1-11 PNT_ENTRY_VERSION_2 internal static fixed bin(17,0) initial dcl 2-64 pnt_db_util_$close 000000 constant entry external dcl 72 pntep automatic pointer dcl 2-21 NAMES DECLARED BY EXPLICIT CONTEXT. INITIALIZE 002027 constant entry internal dcl 362 ref 123 143 163 184 205 225 246 270 292 310 328 348 RETURN_TO_CALLER 002020 constant label dcl 356 ref 129 149 169 190 211 231 253 276 297 315 335 352 367 add_entry 001355 constant entry external dcl 278 admin_get_entry 000317 constant entry external dcl 151 get_abs_entry 000111 constant entry external dcl 111 get_network_password 001077 constant entry external dcl 233 login_get_entry 000446 constant entry external dcl 171 network_get_entry 000607 constant entry external dcl 192 pnt_db_interface_ 000077 constant entry external dcl 26 priv_get_abs_entry 000213 constant entry external dcl 131 priv_get_entry 000750 constant entry external dcl 213 remove_entry 001502 constant entry external dcl 299 reset_level 002071 constant entry internal dcl 374 ref 120 140 160 181 202 222 243 267 289 307 325 345 356 set_level 002114 constant entry internal dcl 388 ref 121 141 161 182 203 223 244 268 290 308 326 346 table_data 001612 constant entry external dcl 317 update_entry 001242 constant entry external dcl 255 validate_entry 001714 constant entry external dcl 337 NAME DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 126 126 146 146 166 166 187 187 208 208 228 228 273 273 295 295 331 331 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2540 2614 2144 2550 Length 3124 2144 54 273 373 4 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME pnt_db_interface_ 301 external procedure is an external procedure. on unit on line 120 64 on unit on unit on line 140 64 on unit on unit on line 160 64 on unit on unit on line 181 64 on unit on unit on line 202 64 on unit on unit on line 222 64 on unit on unit on line 243 64 on unit on unit on line 267 64 on unit on unit on line 289 64 on unit on unit on line 307 64 on unit on unit on line 325 64 on unit on unit on line 345 64 on unit INITIALIZE internal procedure shares stack frame of external procedure pnt_db_interface_. reset_level 68 internal procedure is called by several nonquick procedures. set_level internal procedure shares stack frame of external procedure pnt_db_interface_. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 initialized pnt_db_interface_ 000012 pnt_ptr pnt_db_interface_ STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME pnt_db_interface_ 000100 code pnt_db_interface_ 000101 num_entries pnt_db_interface_ 000102 person_id pnt_db_interface_ 000112 password pnt_db_interface_ 000122 pnt_entry_ptr pnt_db_interface_ 000124 pnt_info_ptr pnt_db_interface_ 000126 record_no pnt_db_interface_ 000127 saved_level pnt_db_interface_ 000130 set_network_password pnt_db_interface_ 000131 set_password pnt_db_interface_ 000132 short_password pnt_db_interface_ 000134 pnt_entry_copy pnt_db_interface_ 000254 pnt_info_copy pnt_db_interface_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return enable ext_entry ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_ring_ hcs_$level_get hcs_$level_set pnt_db_util_$add_entry pnt_db_util_$admin_get_entry pnt_db_util_$get_abs_entry pnt_db_util_$get_network_password pnt_db_util_$login_get_entry pnt_db_util_$network_get_entry pnt_db_util_$open pnt_db_util_$priv_get_abs_entry pnt_db_util_$priv_get_entry pnt_db_util_$remove_entry pnt_db_util_$table_data pnt_db_util_$update_entry pnt_db_util_$validate_entry NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 26 000076 29 000104 111 000105 114 000123 115 000126 117 000131 119 000132 120 000134 121 000156 123 000157 126 000163 128 000204 129 000210 131 000211 134 000225 135 000230 137 000233 139 000234 140 000236 141 000260 143 000261 146 000265 148 000306 149 000312 151 000313 154 000337 155 000345 157 000350 159 000351 160 000353 161 000375 163 000376 166 000402 168 000434 169 000440 171 000441 174 000473 175 000501 176 000506 178 000511 180 000512 181 000514 182 000536 184 000537 187 000543 189 000600 190 000604 192 000605 195 000634 196 000642 197 000647 199 000652 201 000653 202 000655 203 000677 205 000700 208 000704 210 000741 211 000745 213 000746 216 000770 217 000776 219 001001 221 001002 222 001004 223 001026 225 001027 228 001033 230 001065 231 001071 233 001072 236 001122 238 001130 239 001133 240 001134 242 001135 243 001137 244 001161 246 001162 249 001166 251 001222 252 001230 253 001234 255 001235 258 001254 259 001257 260 001265 262 001272 264 001275 266 001276 267 001300 268 001322 270 001323 273 001327 276 001352 278 001353 281 001375 282 001403 284 001406 286 001411 288 001412 289 001414 290 001436 292 001437 295 001443 297 001475 299 001476 302 001520 304 001526 306 001527 307 001531 308 001553 310 001554 313 001560 315 001605 317 001606 320 001622 321 001626 322 001627 324 001630 325 001632 326 001654 328 001655 331 001661 332 001702 333 001706 335 001711 337 001712 340 001732 342 001740 344 001741 345 001743 346 001765 348 001766 351 001772 352 002017 356 002020 358 002024 359 002026 362 002027 365 002030 366 002031 367 002062 370 002064 371 002067 374 002070 380 002076 382 002102 383 002110 385 002113 388 002114 394 002115 395 002124 396 002142 ----------------------------------------------------------- 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