ASSEMBLY LISTING OF SEGMENT >spec>on>7138.pbf>lm_hash_.alm ASSEMBLED ON: 03/05/85 0840.3 mst Tue OPTIONS USED: list ASSEMBLED BY: ALM Version 6.6 November 1982 ASSEMBLER CREATED: 09/21/83 1227.3 mst Wed  1 " ***********************************************************  2 " * *  3 " * Copyright, (C) Honeywell Information Systems Inc., 1984 *  4 " * *  5 " ***********************************************************  6 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 7 "  8 " lm_hash_ - Routines to maintain lock hash tables in a ruthlessly  9 " efficient manner.  10 "  11 " Entries:  12 "  13 " hash_in - Adds an entry to the hash table  14 " hash_out - Deletes an entry from the hash table 15 " search - Searches for a UID, CI Number  16 "  17 " Written August 1982 by J. Bongiovanni 18 " Modified December 1982 by J. Bongiovanni for multi-segment lock data  19 "  20 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 21  000000 22 name lm_hash_  23  000002 24 entry hash_in  000017 25 entry hash_out 000037 26 entry search  27  28  29 even  000000 30 NULL_ITS:  000000 aa 077777 000043 31 its -1,1  000001 aa 000001 000000 32 "  33 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 34 "  35 " hash_in - Entry to add a lock object to a hash thread 36 "  37 " call lm_hash_$hash_in (lock_objectp)  38 "  39 " lock_objectp -> filled in lock object (Input)  40 "  41 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 42  43  000002 44 hash_in:  000002 aa 0 00002 3535 20 45 eppbb ap|2,* " bb -> ptr -> lock object  000003 aa 3 00000 3535 20 46 eppbb bb|0,* " bb -> lock object 47  000004 aa 3 00001 2351 00 48 lda bb|lock_object.uid " Mash UID/CI  000005 aa 3 00002 6751 00 49 era bb|lock_object.ci_no  000006 0a 000052 7000 00 50 tsx0 setup " Get hash bucket 51  000007 aa 2 00000 2351 00 52 lda bp|0 " First in thread  000010 aa 3 00005 7551 00 53 sta bb|lock_object.ht_fp " Make first second  000011 aa 3 00000 2351 00 54 lda bb|lock_object.seg_inx " And this first  000012 aa 3 00000 6361 00 55 eaq bb|0  000013 aa 000022 7710 00 56 arl 18 000014 aa 000022 7730 00 57 lrl 18 000015 aa 2 00000 7561 00 58 stq bp|0  59  000016 aa 7 00044 7101 20 60 short_return  61 "  62 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 63 "  64 " hash_out - Entry to remove a lock object from a hash thread  65 "  66 " call lm_hash_$hash_out (lock_objectp) 67 "  68 " lock_objectp -> lock object (Input)  69 "  70 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 71  72  000017 73 hash_out:  000017 aa 0 00002 3535 20 74 eppbb ap|2,* " bb -> ptr -> lock object  000020 aa 3 00000 3535 20 75 eppbb bb|0,* " bb -> lock object 76  000021 aa 3 00001 2351 00 77 lda bb|lock_object.uid " Mash UID/CI  000022 aa 3 00002 6751 00 78 era bb|lock_object.ci_no  000023 0a 000052 7000 00 79 tsx0 setup " Get hash bucket 80  000024 aa 3 00001 2351 00 81 lda bb|lock_object.uid " Setup for search 000025 aa 3 00002 2361 00 82 ldq bb|lock_object.ci_no  000026 0a 000061 7000 00 83 tsx0 search_thread " Look for it  000027 0a 000036 7100 00 84 tra hash_out_returns " Not found (?)  85  000030 aa 3 00005 2351 00 86 lda bb|lock_object.ht_fp " Next in thread  000031 aa 000000 6210 11 87 eax1 0,x1 " Is this the first?  000032 0a 000035 6000 00 88 tze hash_out_null " Yes  000033 aa 1 00005 7551 00 89 sta ab|lock_object.ht_fp " No - thread next to prev  000034 0a 000036 7100 00 90 tra hash_out_returns  91  000035 92 hash_out_null:  000035 aa 2 00000 7551 00 93 sta bp|0 " Make next first  94  000036 95 hash_out_returns:  000036 aa 7 00044 7101 20 96 short_return  97 "  98 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 99 "  100 " search - Entry to look for a UID/CI in the hash table 101 "  102 " call lm_hash_$search (UID, CI, lock_objectp)  103 "  104 " UID = Page File UID (Input)  105 " CI = Control Interval No. (Input)  106 " lock_objectp -> lock object, or null (Output) 107 "  108 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 109  110  000037 111 search: 000037 aa 0 00002 2351 20 112 lda ap|2,* " Mash UID/CI 000040 aa 0 00004 6751 20 113 era ap|4,* 000041 0a 000052 7000 00 114 tsx0 setup " Get hash bucket 115  000042 aa 0 00002 2351 20 116 lda ap|2,* " UID for search  000043 aa 0 00004 2361 20 117 ldq ap|4,* " CI for search  000044 0a 000061 7000 00 118 tsx0 search_thread " Look for it  000045 0a 000047 7100 00 119 tra search_not_found " Not found  000046 0a 000050 7100 00 120 tra search_returns " Found  121  000047 122 search_not_found:  000047 0a 000000 3534 20 123 eppbb NULL_ITS,* " Return null  000050 124 search_returns: 000050 aa 0 00006 2535 20 125 spribb ap|6,*  000051 aa 7 00044 7101 20 126 short_return  127 "  128 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 129 "  130 " setup - Internal procedure to find hash bucket  131 "  132 " tsx0 setup  133 "  134 " On entry, 135 " A = XOR of UID and CI  136 "  137 " On exit,  138 " bp -> hash table bucket  139 " lb -> lock segments array for this process 140 "  141 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 142  000052 143 setup:  000052 4a 4 00010 3715 20 144 epplb lm_data_$lock_segments_ptr,* " Per-Process segments array  000053 4a 4 00012 3515 20 145 eppab lm_data_$lock_seg_ptr,* " First system lock segment  000054 aa 1 00014 7211 00 146 lxl1 ab|lock_seg.hash_table_offset " Offset of hash table  000055 aa 1 00000 3521 11 147 eppbp ab|0,x1 " bp -> hash table 000056 aa 1 00011 3751 00 148 ana ab|lock_seg.hash_mask " Strip out index  000057 aa 2 00000 3521 05 149 eppbp bp|0,al " And apply it 000060 aa 000000 7100 10 150 tra 0,x0  151  152 "  153 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 154 "  155 " search_thread - Internal procedure to search for a UID/CI 156 "  157 " tsx0 search_thread  158 " 159 " 160 "  161 " On entry, 162 " bp -> hash table bucket  163 " A = UID  164 " Q = CI 165 "  166 " On exit,  167 " bb -> lock object  168 " ab -> previous or null 169 " x1 = offset of previous or 0  170 "  171 " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " 172  000061 173 search_thread:  000061 aa 000000 6210 00 174 eax1 0 " No previous 000062 0a 000000 3514 20 175 eppab NULL_ITS,* " Ditto  000063 aa 2 00000 2221 00 176 ldx2 bp|0 " Segment index of first  000064 aa 000000 6040 10 177 tmi 0,x0 " None  000065 aa 2 00000 7231 00 178 lxl3 bp|0 " Offset of first  000066 179 search_loop:  000066 aa 5 77777 7631 12 180 lprpbb lb|-1,x2 " bb -> segment of lock object  000067 aa 3 00000 3535 13 181 eppbb bb|0,x3 " bb -> lock object  000070 aa 3 00001 1151 00 182 cmpa bb|lock_object.uid " UID match?  000071 0a 000074 6010 00 183 tnz search_next " No  000072 aa 3 00002 1161 00 184 cmpq bb|lock_object.ci_no " CI match?  000073 aa 000001 6000 10 185 tze 1,x0 " Yes  000074 186 search_next:  000074 aa 000000 6210 13 187 eax1 0,x3 " Set previous to current  000075 aa 3 00005 2221 00 188 ldx2 bb|lock_object.ht_fp " And get next in thread 000076 aa 000000 6040 10 189 tmi 0,x0 " None  000077 aa 3 00005 7231 00 190 lxl3 bb|lock_object.ht_fp  000100 aa 3 00000 3515 00 191 eppab bb|0 " ab -> previous lock object  000101 0a 000066 7100 00 192 tra search_loop  193 "  194 include dm_lm_system_data  1-1  1-2  1-3 "BEGIN INCLUDE FILE dm_lm_system_data.incl.alm 1-4  1-5  1-6 "Created 10/23/84 0810.2 edt Tue by convert_include_file, 1-7 " Version of 12/01/81 1640.3 edt Tue.  1-8  1-9 "Note: Actually created from an include file containing only: 1-10 " %include dm_lm_system_data;  1-11 " %include dm_lm_meters; 1-12 " Converted by SSC, 10/23/84  1-13  1-14 "  1-15 " Structure lock_seg  1-16 "  1-17  000000 1-18 equ lock_seg.version,0 " DOUBLE  000002 1-19 equ lock_seg.header,2 " LEVEL 2  1-20  000002 1-21 equ lock_seg.lock,2 " DOUBLE  000004 1-22 equ lock_seg.n_lock_segments,4 000005 1-23 equ lock_seg.lock_seg_size,5  000006 1-24 equ lock_seg.max_lock_segments,6  1-25 " equ lock_seg.n_transaction_table_entries,7  000010 1-26 equ lock_seg.n_hash_table_entries,8  000011 1-27 equ lock_seg.hash_mask,9  000012 1-28 equ lock_seg.free_list_ptr,10 " LEVEL 3  1-29  1-30 " equ lock_seg.transaction_table_offset,11  000014 1-31 equ lock_seg.hash_table_offset,12  000015 1-32 equ lock_seg.n_lock_blocks,13  000016 1-33 equ lock_seg.lock_array_offset,14  000020 1-34 equ lock_seg.transaction_table,16 " LEVEL 2  1-35  000000 1-36 equ lock_seg.hash_table,0 " LEVEL 2  1-37  000000 1-38 equ lock_seg.meters,0 " LEVEL 2  1-39  000000 1-40 equ lock_seg.free,0 " DOUBLE  1-41  1-42 "  1-43 " Structure lock_aux_seg  1-44 "  000004 1-45 equ lock_aux_seg_size,4  1-46  000000 1-47 equ lock_aux_seg.n_lock_blocks,0  000001 1-48 equ lock_aux_seg.lock_array_offset,1  000002 1-49 equ lock_aux_seg.free,2 " DOUBLE  1-50  1-51 "  1-52 " Structure lock_transaction_table  1-53 "  000010 1-54 equ lock_transaction_table_size,8  1-55  1-56 " equ lock_transaction_table.deadlock_inx,0 1-57 " equ lock_transaction_table.process_id,1  000002 1-58 equ lock_transaction_table.txn_id,2  1-59 " equ lock_transaction_table.ev_channel,4 " DOUBLE  000006 1-60 equ lock_transaction_table.own_ptr,6 " LEVEL 2 1-61  000007 1-62 equ lock_transaction_table.wait_ptr,7 " LEVEL 2  1-63  1-64  1-65 "  1-66 " Structure lock_hash_table 1-67 "  000000 1-68 equ lock_hash_table.buckets,0 " LEVEL 2  1-69  1-70  1-71 "  1-72 " Structure lock_block  1-73 "  000006 1-74 equ lock_block_size,6  1-75  000000 1-76 equ lock_block.seg_inx,0 " UPPER  000000 1-77 equ lock_block.type,0 " LOWER 1-78  1-79 "  1-80 " Structure lock_block_array  1-81 "  1-82  1-83 "  1-84 " Structure lock_free_block 1-85 "  000006 1-86 equ lock_free_block_size,6 1-87  000000 1-88 equ lock_free_block.seg_inx,0 " UPPER  000000 1-89 equ lock_free_block.type,0 " LOWER 1-90  000001 1-91 equ lock_free_block.free_fp,1 " LEVEL 2  1-92  1-93  1-94 "  1-95 " Structure lock_object 1-96 "  000006 1-97 equ lock_object_size,6 1-98  000000 1-99 equ lock_object.seg_inx,0 " UPPER  000000 1-100 equ lock_object.type,0 " LOWER  1-101  000001 1-102 equ lock_object.uid,1  000002 1-103 equ lock_object.ci_no,2  000003 1-104 equ lock_object.owners_ptr,3 " LEVEL 2 1-105  000004 1-106 equ lock_object.waiters_ptr,4 " LEVEL 2  1-107  000005 1-108 equ lock_object.ht_fp,5 " LEVEL 2 1-109  1-110  1-111 "  1-112 " Structure lock_owner  1-113 "  000006 1-114 equ lock_owner_size,6  1-115  000000 1-116 equ lock_owner.seg_inx,0 " UPPER  000000 1-117 equ lock_owner.type,0 " LOWER 1-118  000001 1-119 equ lock_owner.lock_ptr,1 " LEVEL 2  1-120  000002 1-121 equ lock_owner.mode,2  000003 1-122 equ lock_owner.owners_fp,3 " LEVEL 2  1-123  000004 1-124 equ lock_owner.transaction_fp,4 " LEVEL 2  1-125  000005 1-126 equ lock_owner.transaction_ptr,5 " LEVEL 2 1-127  1-128  1-129 "  1-130 " Structure lock_waiter 1-131 "  000006 1-132 equ lock_waiter_size,6 1-133  000000 1-134 equ lock_waiter.seg_inx,0 " UPPER  000000 1-135 equ lock_waiter.type,0 " LOWER  1-136  000001 1-137 equ lock_waiter.lock_ptr,1 " LEVEL 2  1-138  000002 1-139 equ lock_waiter.mode,2 000003 1-140 equ lock_waiter.waiters_fp,3 " LEVEL 2 1-141  000004 1-142 equ lock_waiter.transaction_ptr,4 " LEVEL 2  1-143  1-144  1-145 "  1-146 " Structure lock_segments  1-147 "  000000 1-148 equ lock_segments.seg_baseptr,0  1-149  1-150 "  1-151 " Structure lock_virtual_ptr  1-152 "  000000 1-153 equ lock_virtual_ptr.seg_inx,0 " UPPER 000000 1-154 equ lock_virtual_ptr.offset,0 " LOWER  1-155  1-156 "  1-157 " Structure lock_deadlock  1-158 "  000000 1-159 equ lock_deadlock.wait_own_word,0  400000 1-160 bool lock_deadlock.wait_own,400000 " DU  1-161  1-162 "  1-163 " Structure lock_deadlock_36  1-164 "  000044 1-165 equ lock_deadlock_36_size,36  1-166  000000 1-167 equ lock_deadlock_36.wait_own_word,0  400000 1-168 bool lock_deadlock_36.wait_own,400000 " DU 1-169  1-170 "  1-171 " Structure lock_deadlock_72  1-172 "  000220 1-173 equ lock_deadlock_72_size,144  1-174  000000 1-175 equ lock_deadlock_72.wait_own_word,0  400000 1-176 bool lock_deadlock_72.wait_own,400000 " DU 1-177  000001 1-178 equ TYPE_FREE,1 " MANIFEST  000002 1-179 equ TYPE_OBJECT,2 " MANIFEST  000003 1-180 equ TYPE_OWNER,3 " MANIFEST  000004 1-181 equ TYPE_WAITER,4 " MANIFEST  000004 1-182 equ MAX_TYPE,4 " MANIFEST 1-183  1-184 "  1-185 " Structure NULL_VPTR  1-186 "  000000 1-187 equ NULL_VPTR.seg_inx,0 " UPPER  000000 1-188 equ NULL_VPTR.offset,0 " LOWER  1-189  000006 1-190 equ LOCK_BLOCK_SIZE,6 " MANIFEST  1-191  1-192 "  1-193 " Structure lock_meters (Deleted, SSC)  1-194 "  1-195  1-196 "END INCLUDE FILE dm_lm_system_data.incl.alm  195 end  ENTRY SEQUENCES  000102 5a 000024 0000 00 000103 aa 7 00046 2721 20 000104 0a 000002 7100 00 000105 5a 000016 0000 00 000106 aa 7 00046 2721 20 000107 0a 000017 7100 00 000110 5a 000011 0000 00 000111 aa 7 00046 2721 20 000112 0a 000037 7100 00 NO LITERALS  NAME DEFINITIONS FOR ENTRY POINTS AND SEGDEFS 000114 5a 000003 000000 000115 5a 000040 600000 000116 aa 000000 000000 000117 55 000011 000002 000120 5a 000002 400003 000121 55 000006 000011 000122 aa 010 154 155 137 000123 aa 150 141 163 150 000124 aa 137 000 000 000 000125 55 000016 000003 000126 0a 000111 500000 000127 55 000014 000003 000130 aa 006 163 145 141 search  000131 aa 162 143 150 000 000132 55 000024 000011 000133 0a 000106 500000 000134 55 000021 000003 000135 aa 010 150 141 163 hash_out  000136 aa 150 137 157 165 000137 aa 164 000 000 000 000140 55 000031 000016 000141 0a 000103 500000 000142 55 000027 000003 000143 aa 007 150 141 163 hash_in 000144 aa 150 137 151 156 000145 55 000002 000024 000146 6a 000000 400002 000147 55 000034 000003 000150 aa 014 163 171 155 symbol_table  000151 aa 142 157 154 137 000152 aa 164 141 142 154 000153 aa 145 000 000 000 DEFINITIONS HASH TABLE  000154 aa 000000 000015 000155 aa 000000 000000 000156 5a 000016 000000 000157 5a 000011 000000 000160 aa 000000 000000 000161 aa 000000 000000 000162 aa 000000 000000 000163 5a 000024 000000 000164 5a 000031 000000 000165 aa 000000 000000 000166 aa 000000 000000 000167 aa 000000 000000 000170 aa 000000 000000 000171 aa 000000 000000 EXTERNAL NAMES  000172 aa 014 154 157 143 lock_seg_ptr  000173 aa 153 137 163 145 000174 aa 147 137 160 164 000175 aa 162 000 000 000 000176 aa 021 154 157 143 lock_segments_ptr  000177 aa 153 137 163 145 000200 aa 147 155 145 156 000201 aa 164 163 137 160 000202 aa 164 162 000 000 000203 aa 010 154 155 137 lm_data_  000204 aa 144 141 164 141 000205 aa 137 000 000 000 NO TRAP POINTER WORDS  TYPE PAIR BLOCKS  000206 aa 000004 000000 000207 55 000067 000056 000210 aa 000004 000000 000211 55 000067 000062 000212 aa 000001 000000 000213 aa 000000 000000 INTERNAL EXPRESSION WORDS 000214 5a 000072 000000 000215 5a 000074 000000 LINKAGE INFORMATION 000000 aa 000000 000000 000001 0a 000114 000000 000002 aa 000000 000000 000003 aa 000000 000000 000004 aa 000000 000000 000005 aa 000000 000000 000006 22 000010 000014 000007 a2 000000 000000 000010 9a 777770 0000 46 lm_data_|lock_segments_ptr  000011 5a 000101 0000 20 000012 9a 777766 0000 46 lm_data_|lock_seg_ptr  000013 5a 000100 0000 20 SYMBOL INFORMATION SYMBOL TABLE HEADER  000000 aa 000000 000001 000001 aa 163171 155142 000002 aa 164162 145145 000003 aa 000000 000004 000004 aa 000000 112143 000005 aa 305203 523135 000006 aa 000000 113376 000007 aa 634400 422163 000010 aa 141154 155040 000011 aa 040040 040040 000012 aa 000024 000040 000013 aa 000034 000040 000014 aa 000044 000100 000015 aa 000002 000002 000016 aa 000064 000000 000017 aa 000000 000144 000020 aa 000000 000120 000021 aa 000000 000131 000022 aa 000135 000120 000023 aa 000064 000000 000024 aa 101114 115040 000025 aa 126145 162163 000026 aa 151157 156040 000027 aa 040066 056066 000030 aa 040040 116157 000031 aa 166145 155142 000032 aa 145162 040061 000033 aa 071070 062040 000034 aa 107112 157150 000035 aa 156163 157156 000036 aa 056123 171163 000037 aa 115141 151156 000040 aa 164056 155040 000041 aa 040040 040040 000042 aa 040040 040040 000043 aa 040040 040040 000044 aa 154151 163164 000045 aa 040040 040040 000046 aa 040040 040040 000047 aa 040040 040040 000050 aa 040040 040040 000051 aa 040040 040040 000052 aa 040040 040040 000053 aa 040040 040040 000054 aa 040040 040040 000055 aa 040040 040040 000056 aa 040040 040040 000057 aa 040040 040040 000060 aa 040040 040040 000061 aa 040040 040040 000062 aa 040040 040040 000063 aa 040040 040040 000064 aa 000000 000001 000065 aa 000000 000002 000066 aa 000076 000036 000067 aa 133727 542603 000070 aa 000000 113376 000071 aa 612246 600000 000072 aa 000106 000047 000073 aa 132643 421561 000074 aa 000000 113267 000075 aa 120242 400000 000076 aa 076163 160145 >spec>on>7138.pbf>lm_hash_.alm  000077 aa 143076 157156 000100 aa 076067 061063 000101 aa 070056 160142 000102 aa 146076 154155 000103 aa 137150 141163 000104 aa 150137 056141 000105 aa 154155 040040 000106 aa 076154 144144 >ldd>include>dm_lm_system_data.incl.alm 000107 aa 076151 156143 000110 aa 154165 144145 000111 aa 076144 155137 000112 aa 154155 137163 000113 aa 171163 164145 000114 aa 155137 144141 000115 aa 164141 056151 000116 aa 156143 154056 000117 aa 141154 155040 MULTICS ASSEMBLY CROSS REFERENCE LISTING Value Symbol Source file Line number  2 hash_in lm_hash_: 24, 44.  17 hash_out lm_hash_: 25, 73.  35 hash_out_null lm_hash_: 88, 92.  36 hash_out_returns lm_hash_: 84, 90, 95. lm_data_ lm_hash_: 144, 145.  2 lock_aux_seg.free dm_lm_system_data: 49.  1 lock_aux_seg.lock_array_offset dm_lm_system_data: 48.  0 lock_aux_seg.n_lock_blocks dm_lm_system_data: 47. 4 lock_aux_seg_size dm_lm_system_data: 45.  0 lock_block.seg_inx dm_lm_system_data: 76.  0 lock_block.type dm_lm_system_data: 77.  6 LOCK_BLOCK_SIZE dm_lm_system_data: 190.  6 lock_block_size dm_lm_system_data: 74.  400000 lock_deadlock.wait_own dm_lm_system_data: 160.  0 lock_deadlock.wait_own_word dm_lm_system_data: 159. 400000 lock_deadlock_36.wait_own dm_lm_system_data: 168. 0 lock_deadlock_36.wait_own_word dm_lm_system_data: 167.  44 lock_deadlock_36_size dm_lm_system_data: 165.  400000 lock_deadlock_72.wait_own dm_lm_system_data: 176. 0 lock_deadlock_72.wait_own_word dm_lm_system_data: 175.  220 lock_deadlock_72_size dm_lm_system_data: 173.  1 lock_free_block.free_fp dm_lm_system_data: 91.  0 lock_free_block.seg_inx dm_lm_system_data: 88.  0 lock_free_block.type dm_lm_system_data: 89.  6 lock_free_block_size dm_lm_system_data: 86.  0 lock_hash_table.buckets dm_lm_system_data: 68.  2 lock_object.ci_no lm_hash_: 49, 78, 82, 184,  dm_lm_system_data: 103.  5 lock_object.ht_fp lm_hash_: 53, 86, 89, 188, 190, dm_lm_system_data: 108.  3 lock_object.owners_ptr dm_lm_system_data: 104.  0 lock_object.seg_inx lm_hash_: 54, dm_lm_system_data: 99.  0 lock_object.type dm_lm_system_data: 100.  1 lock_object.uid lm_hash_: 48, 77, 81, 182,  dm_lm_system_data: 102.  4 lock_object.waiters_ptr dm_lm_system_data: 106.  6 lock_object_size dm_lm_system_data: 97.  1 lock_owner.lock_ptr dm_lm_system_data: 119.  2 lock_owner.mode dm_lm_system_data: 121.  3 lock_owner.owners_fp dm_lm_system_data: 122.  0 lock_owner.seg_inx dm_lm_system_data: 116.  4 lock_owner.transaction_fp dm_lm_system_data: 124. 5 lock_owner.transaction_ptr dm_lm_system_data: 126. 0 lock_owner.type dm_lm_system_data: 117.  6 lock_owner_size dm_lm_system_data: 114.  0 lock_seg.free dm_lm_system_data: 40.  12 lock_seg.free_list_ptr dm_lm_system_data: 28.  11 lock_seg.hash_mask lm_hash_: 148, dm_lm_system_data: 27.  0 lock_seg.hash_table dm_lm_system_data: 36.  14 lock_seg.hash_table_offset lm_hash_: 146,  dm_lm_system_data: 31. 2 lock_seg.header dm_lm_system_data: 19.  2 lock_seg.lock dm_lm_system_data: 21.  16 lock_seg.lock_array_offset dm_lm_system_data: 33. 5 lock_seg.lock_seg_size dm_lm_system_data: 23.  6 lock_seg.max_lock_segments dm_lm_system_data: 24. 0 lock_seg.meters dm_lm_system_data: 38.  10 lock_seg.n_hash_table_entries dm_lm_system_data: 26. 15 lock_seg.n_lock_blocks dm_lm_system_data: 32.  4 lock_seg.n_lock_segments dm_lm_system_data: 22. 20 lock_seg.transaction_table dm_lm_system_data: 34. 0 lock_seg.version dm_lm_system_data: 18.  0 lock_segments.seg_baseptr dm_lm_system_data: 148. lock_segments_ptr lm_hash_: 144. lock_seg_ptr lm_hash_: 145. 6 lock_transaction_table.own_ptr dm_lm_system_data: 60.  2 lock_transaction_table.txn_id dm_lm_system_data: 58. 7 lock_transaction_table.wait_ptr dm_lm_system_data: 62.  10 lock_transaction_table_size dm_lm_system_data: 54. 0 lock_virtual_ptr.offset dm_lm_system_data: 154.  0 lock_virtual_ptr.seg_inx dm_lm_system_data: 153. 1 lock_waiter.lock_ptr dm_lm_system_data: 137.  2 lock_waiter.mode dm_lm_system_data: 139.  0 lock_waiter.seg_inx dm_lm_system_data: 134.  4 lock_waiter.transaction_ptr dm_lm_system_data: 142. 0 lock_waiter.type dm_lm_system_data: 135.  3 lock_waiter.waiters_fp dm_lm_system_data: 140.  6 lock_waiter_size dm_lm_system_data: 132.  4 MAX_TYPE dm_lm_system_data: 182.  0 NULL_ITS lm_hash_: 30, 123, 175. 0 NULL_VPTR.offset dm_lm_system_data: 188.  0 NULL_VPTR.seg_inx dm_lm_system_data: 187.  37 search lm_hash_: 26, 111.  66 search_loop lm_hash_: 179, 192.  74 search_next lm_hash_: 183, 186.  47 search_not_found lm_hash_: 119, 122.  50 search_returns lm_hash_: 120, 124.  61 search_thread lm_hash_: 83, 118, 173. 52 setup lm_hash_: 50, 79, 114, 143.  1 TYPE_FREE dm_lm_system_data: 178.  2 TYPE_OBJECT dm_lm_system_data: 179.  3 TYPE_OWNER dm_lm_system_data: 180.  4 TYPE_WAITER dm_lm_system_data: 181.  NO FATAL ERRORS  ----------------------------------------------------------- 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