COMPILATION LISTING OF SEGMENT lm_init_fast_lock_data_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/03/85 1652.6 mst Thu Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* Program to initialize the per-system table used for fast locks. 9* This should be called once per-bootload, before any fast lock is 10* used by anybody. 11**/ 12 13 /* HISTORY: 14* 15* Written by J. Bongiovanni, 06/15/82. 16* Modified: 17* 08/06/83 by Lee A. Newcomb: removed obsolete code args. from calls 18* to dm_per_system_ entries. 19* 10/10/84 by Stanford S. Cox: For DM program standards, and to meter fast 20* locks. 21**/ 22 /* format: style3,ifthenstmt,ifthendo,ifthen,^indnoniterdo,indcomtxt,^inditerdo,indcom,ind3 */ 23 24 /* format: style3 */ 25 lm_init_fast_lock_data_: 26 proc (p_code); 27 28 /* Parameter */ 29 30 dcl p_code fixed bin (35) parameter; /* Status code */ 31 32 /* Automatic */ 33 34 dcl fast_lock_data_size fixed bin (18); 35 dcl listx fixed bin; 36 37 /* Static */ 38 39 dcl FAST_LOCK_DATA_SIZE fixed bin (18) int static options (constant) init (2048); 40 41 /* External */ 42 43 dcl dm_system_data_$fast_lock_data_rel 44 bit (18) aligned external; 45 dcl dm_system_data_$lock_list_meters_rel 46 bit (18) aligned external; 47 dcl dm_system_data_$meter_fast_locks 48 bit (1) aligned external; 49 50 /* Entry */ 51 52 dcl dm_per_system_$alloc 53 entry (fixed bin (18), ptr); 54 dcl lm_fast_lock_list_$thread_in 55 entry (ptr, ptr, ptr); 56 57 /* Builtin */ 58 59 dcl addr builtin; 60 dcl addrel builtin; 61 dcl bin builtin; 62 dcl divide builtin; 63 dcl null builtin; 64 dcl rel builtin; 65 dcl size builtin; 66 dcl unspec builtin; 67 68 69 70 p_code = 0; 71 call dm_per_system_$alloc (FAST_LOCK_DATA_SIZE, fast_lock_data_ptr); 72 73 dm_system_data_$fast_lock_data_rel = rel (fast_lock_data_ptr); 74 75 unspec (fast_lock_data) = ""b; 76 fast_lock_data.version = FAST_LOCK_DATA_VERSION_1; 77 fast_lock_data.size = FAST_LOCK_DATA_SIZE; 78 79 lock_list_block_words = size (fast_lock_wakeup_block); 80 fast_lock_data.n_list_entries = 81 divide (fast_lock_data.size - (bin (rel (addr (fast_lock_data.list))) - bin (rel (addr (fast_lock_data)))), 82 size (lock_list_block), 17); 83 84 lock_list_block_ptr = addr (fast_lock_data.list); 85 do listx = 1 to fast_lock_data.n_list_entries; 86 lock_list_block.nextp, lock_list_block.mbz = ""b; 87 lock_list_block.block_words = lock_list_block_words; 88 unspec (lock_list_block.block_data) = ""b; 89 call lm_fast_lock_list_$thread_in (addr (fast_lock_data.free_list_head), null (), lock_list_block_ptr); 90 lock_list_block_ptr = addrel (lock_list_block_ptr, size (lock_list_block)); 91 end; 92 93 if dm_system_data_$meter_fast_locks 94 then do; /* setup fast lock meters */ 95 call dm_per_system_$alloc (size (lock_list_meters), lock_list_meters_ptr); 96 unspec (lock_list_meters) = "0"b; 97 lock_list_meters.version = LOCK_LIST_METERS_VERSION_1; 98 dm_system_data_$lock_list_meters_rel = rel (lock_list_meters_ptr); 99 end; 100 else dm_system_data_$lock_list_meters_rel = "0"b; 101 102 1 1 /* START OF: dm_fast_lock_strucs.incl.pl1 ... June 1982 * * * * * * * * * * * * * * * * */ 1 2 1 3 /* DESCRIPTION: 1 4* There is a fast_lock_block per segment to be locked. There is a 1 5* fast_lock_wakeup_block per waiter on the lock. The fast*block's are 1 6* taken from the fast_lock_data.list, which is a list of lock_list_block's. 1 7**/ 1 8 1 9 /* HISTORY: 1 10*Written by J. Bongiovanni, 06/15/82. 1 11*Modified: 1 12*10/12/84 by Stanford S. Cox: Added version constants. 1 13*11/14/84 by Stanford S. Cox: Chg to make fast_lock_data.free_list_head 1 14* like lock_list_head. 1 15**/ 1 16 1 17 /* format: style2,^inddcls,ifthenstmt,ifthendo,^indnoniterdo,^inditerdo,ind3,idind32 */ 1 18 dcl fast_lock_ptr ptr; 1 19 dcl fast_lock_block_ptr ptr; 1 20 dcl fast_lock_wakeup_block_ptr ptr; 1 21 dcl fast_lock_data_ptr ptr; 1 22 1 23 dcl FAST_LOCK_DATA_VERSION_1 char (8) aligned init ("fastlk 1") int static options (constant); 1 24 1 25 dcl 1 fast_lock aligned based (fast_lock_ptr), 1 26 /* A fast lock */ 1 27 2 lock_word bit (36) aligned, /* "0"b (unlocked) or processid (locked) */ 1 28 2 notify_sw bit (1) unal, /* ON => notify on unlock */ 1 29 2 pad bit (17) unal, 1 30 2 offset bit (18) unal; /* Offset of block in fast_lock_data */ 1 31 1 32 1 33 dcl 1 fast_lock_block aligned based (fast_lock_block_ptr), 1 34 /* Per-lock info, inner-ring */ 1 35 2 uid bit (36) aligned, /* Unique ID of segment */ 1 36 2 offset bit (18) unal, /* Offset of lock in segment */ 1 37 2 pad bit (18) unal, 1 38 2 list_head bit (18) unal, /* Thread pointer for wakeups */ 1 39 2 mbz bit (18) unal, 1 40 2 pad1 bit (36) aligned; 1 41 1 42 1 43 dcl 1 fast_lock_wakeup_block aligned based (fast_lock_wakeup_block_ptr), 1 44 /* Notify info */ 1 45 2 event_channel fixed bin (71), 1 46 2 processid bit (36) aligned, 1 47 2 message char (4); 1 48 1 49 dcl 1 fast_lock_data aligned based (fast_lock_data_ptr), 1 50 2 version char (8), 1 51 2 size fixed bin, 1 52 2 n_list_entries fixed bin, 1 53 2 free_list_head aligned like lock_list_head, 1 54 2 list fixed bin (71) aligned; 1 55 1 56 /* END OF: dm_fast_lock_strucs.incl.pl1 * * * * * * * * * * * * * * * * */ 103 2 1 /* START OF: dm_lock_list_strucs_.incl.pl1 June 1982 * * * * * * * * * * * * * * * * */ 2 2 2 3 /* DESCRIPTION: 2 4* fast_lock_data.free_list_head is lock_list_head. fast_lock_data.list is the 2 5* first two words of lock_list_block. Other lock_list_block's are threaded 2 6* to make a list. block_data is large enough to contain 2 7* fast_lock_wakeup_block (largest fast lock block type). 2 8**/ 2 9 2 10 /* HISTORY: 2 11*Written by John Bongiovanni, 06/15/82. 2 12*Modified: 2 13*10/12/84 by Stanford S. Cox: Added version constants. 2 14*11/14/84 by Stanford S. Cox: Removed lock_list_head.version as fast_lock_data 2 15* has a version. 2 16**/ 2 17 2 18 /* format: style2,^inddcls,ifthenstmt,ifthendo,^indnoniterdo,^inditerdo,ind3,idind32 */ 2 19 dcl lock_list_head_ptr ptr; 2 20 dcl lock_list_block_ptr ptr; 2 21 dcl lock_list_meters_ptr ptr; 2 22 2 23 dcl lock_list_block_words fixed bin; 2 24 2 25 dcl LOCK_LIST_METERS_VERSION_1 char (8) aligned init ("lklsmt 1") int static options (constant); 2 26 2 27 dcl 1 lock_list_head aligned based (lock_list_head_ptr), 2 28 2 firstp bit (18) unal, 2 29 2 mbz bit (18) unal; 2 30 2 31 dcl 1 lock_list_block aligned based (lock_list_block_ptr), 2 32 2 nextp bit (18) unal, 2 33 2 mbz bit (18) unal, 2 34 2 block_words fixed bin (17) unal, 2 35 2 pad bit (18) unal, 2 36 2 block_data (lock_list_block_words refer (lock_list_block.block_words)) bit (36) aligned; 2 37 2 38 dcl 1 lock_list_meters aligned based (lock_list_meters_ptr), 2 39 2 version char (8) aligned, 2 40 2 thrdout_calls fixed bin (35), 2 41 2 thrdin_calls fixed bin (35), 2 42 2 thrdout_steps fixed bin (35), 2 43 2 thrdin_steps fixed bin (35); 2 44 2 45 2 46 /* END OF: dm_lock_list_strucs_.incl.pl1 * * * * * * * * * * * * * * * * */ 104 105 106 end lm_init_fast_lock_data_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/03/85 1151.2 lm_init_fast_lock_data_.pl1 >spec>temp>famis1>lm_init_fast_lock_data_.pl1 103 1 01/03/85 1003.3 dm_fast_lock_strucs.incl.pl1 >spec>temp>famis1>dm_fast_lock_strucs.incl.pl1 104 2 01/03/85 1004.0 dm_lock_list_strucs.incl.pl1 >spec>temp>famis1>dm_lock_list_strucs.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. FAST_LOCK_DATA_SIZE 000004 constant fixed bin(18,0) initial dcl 39 set ref 71* 77 FAST_LOCK_DATA_VERSION_1 000002 constant char(8) initial dcl 1-23 ref 76 LOCK_LIST_METERS_VERSION_1 000000 constant char(8) initial dcl 2-25 ref 97 addr builtin function dcl 59 ref 80 80 84 89 89 addrel builtin function dcl 60 ref 90 bin builtin function dcl 61 ref 80 80 block_data 2 based bit(36) array level 2 dcl 2-31 set ref 88* block_words 1 based fixed bin(17,0) level 2 packed unaligned dcl 2-31 set ref 87* 88 divide builtin function dcl 62 ref 80 dm_per_system_$alloc 000016 constant entry external dcl 52 ref 71 95 dm_system_data_$fast_lock_data_rel 000010 external static bit(18) dcl 43 set ref 73* dm_system_data_$lock_list_meters_rel 000012 external static bit(18) dcl 45 set ref 98* 100* dm_system_data_$meter_fast_locks 000014 external static bit(1) dcl 47 ref 93 fast_lock_data based structure level 1 dcl 1-49 set ref 75* 80 fast_lock_data_ptr 000102 automatic pointer dcl 1-21 set ref 71* 73 75 76 77 80 80 80 80 84 85 89 89 fast_lock_wakeup_block based structure level 1 dcl 1-43 ref 79 fast_lock_wakeup_block_ptr automatic pointer dcl 1-20 ref 79 free_list_head 4 based structure level 2 dcl 1-49 set ref 89 89 list 6 based fixed bin(71,0) level 2 dcl 1-49 set ref 80 84 listx 000100 automatic fixed bin(17,0) dcl 35 set ref 85* lm_fast_lock_list_$thread_in 000020 constant entry external dcl 54 ref 89 lock_list_block based structure level 1 dcl 2-31 set ref 80 90 lock_list_block_ptr 000104 automatic pointer dcl 2-20 set ref 80 84* 86 86 87 88 89* 90* 90 90 lock_list_block_words 000110 automatic fixed bin(17,0) dcl 2-23 set ref 79* 80 87 90 lock_list_head based structure level 1 dcl 2-27 lock_list_meters based structure level 1 dcl 2-38 set ref 95 95 96* lock_list_meters_ptr 000106 automatic pointer dcl 2-21 set ref 95 95 95* 96 97 98 mbz 0(18) based bit(18) level 2 packed unaligned dcl 2-31 set ref 86* n_list_entries 3 based fixed bin(17,0) level 2 dcl 1-49 set ref 80* 85 nextp based bit(18) level 2 packed unaligned dcl 2-31 set ref 86* null builtin function dcl 63 ref 89 89 p_code parameter fixed bin(35,0) dcl 30 set ref 25 70* rel builtin function dcl 64 ref 73 80 80 98 size builtin function dcl 65 in procedure "lm_init_fast_lock_data_" ref 79 80 90 95 95 size 2 based fixed bin(17,0) level 2 in structure "fast_lock_data" dcl 1-49 in procedure "lm_init_fast_lock_data_" set ref 77* 80 unspec builtin function dcl 66 set ref 75* 88* 96* version based char(8) level 2 in structure "lock_list_meters" dcl 2-38 in procedure "lm_init_fast_lock_data_" set ref 97* version based char(8) level 2 in structure "fast_lock_data" dcl 1-49 in procedure "lm_init_fast_lock_data_" set ref 76* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. fast_lock based structure level 1 dcl 1-25 fast_lock_block based structure level 1 dcl 1-33 fast_lock_block_ptr automatic pointer dcl 1-19 fast_lock_data_size automatic fixed bin(18,0) dcl 34 fast_lock_ptr automatic pointer dcl 1-18 lock_list_head_ptr automatic pointer dcl 2-19 NAME DECLARED BY EXPLICIT CONTEXT. lm_init_fast_lock_data_ 000013 constant entry external dcl 25 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 314 336 204 324 Length 560 204 22 205 110 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lm_init_fast_lock_data_ 98 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lm_init_fast_lock_data_ 000100 listx lm_init_fast_lock_data_ 000102 fast_lock_data_ptr lm_init_fast_lock_data_ 000104 lock_list_block_ptr lm_init_fast_lock_data_ 000106 lock_list_meters_ptr lm_init_fast_lock_data_ 000110 lock_list_block_words lm_init_fast_lock_data_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out return ext_entry divide_fx3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. dm_per_system_$alloc lm_fast_lock_list_$thread_in THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_system_data_$fast_lock_data_rel dm_system_data_$lock_list_meters_rel dm_system_data_$meter_fast_locks CONSTANTS 000000 aa 154 153 154 163 lkls 000001 aa 155 164 040 061 mt 1 000002 aa 146 141 163 164 fast 000003 aa 154 153 040 061 lk 1 000004 aa 000000004000 000005 aa 404000000043 000006 aa 077777000043 000007 aa 000001000000 BEGIN PROCEDURE lm_init_fast_lock_data_ ENTRY TO lm_init_fast_lock_data_ STATEMENT 1 ON LINE 25 lm_init_fast_lock_data_: proc (p_code); 000010 at 000001000005 000011 ta 000010000000 000012 da 000104300000 000013 aa 000160 6270 00 eax7 112 000014 aa 7 00034 3521 20 epp2 pr7|28,* 000015 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000016 aa 000002000000 000017 aa 000000000000 STATEMENT 1 ON LINE 70 p_code = 0; 000020 aa 6 00032 3735 20 epp7 pr6|26,* 000021 aa 7 00002 4501 20 stz pr7|2,* p_code STATEMENT 1 ON LINE 71 call dm_per_system_$alloc (FAST_LOCK_DATA_SIZE, fast_lock_data_ptr); 000022 aa 777762 3520 04 epp2 -14,ic 000004 = 000000004000 000023 aa 6 00114 2521 00 spri2 pr6|76 000024 aa 6 00102 3521 00 epp2 pr6|66 fast_lock_data_ptr 000025 aa 6 00116 2521 00 spri2 pr6|78 000026 aa 6 00112 6211 00 eax1 pr6|74 000027 aa 010000 4310 07 fld 4096,dl 000030 la 4 00016 3521 20 epp2 pr4|14,* dm_per_system_$alloc 000031 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 73 dm_system_data_$fast_lock_data_rel = rel (fast_lock_data_ptr); 000032 aa 6 00102 6351 20 eaa pr6|66,* fast_lock_data_ptr 000033 aa 6 00044 3701 20 epp4 pr6|36,* 000034 la 4 00010 7551 20 sta pr4|8,* dm_system_data_$fast_lock_data_rel STATEMENT 1 ON LINE 75 unspec (fast_lock_data) = ""b; 000035 aa 6 00102 3735 20 epp7 pr6|66,* fast_lock_data_ptr 000036 aa 000 100 100 400 mlr (),(pr),fill(000) 000037 aa 000000 00 0000 desc9a 0,0 000040 aa 7 00000 00 0040 desc9a pr7|0,32 STATEMENT 1 ON LINE 76 fast_lock_data.version = FAST_LOCK_DATA_VERSION_1; 000041 aa 777741 2370 04 ldaq -31,ic 000002 = 146141163164 154153040061 000042 aa 7 00000 7551 00 sta pr7|0 fast_lock_data.version 000043 aa 7 00001 7561 00 stq pr7|1 fast_lock_data.version STATEMENT 1 ON LINE 77 fast_lock_data.size = FAST_LOCK_DATA_SIZE; 000044 aa 004000 2360 07 ldq 2048,dl 000045 aa 7 00002 7561 00 stq pr7|2 fast_lock_data.size STATEMENT 1 ON LINE 79 lock_list_block_words = size (fast_lock_wakeup_block); 000046 aa 000004 2360 07 ldq 4,dl 000047 aa 6 00110 7561 00 stq pr6|72 lock_list_block_words STATEMENT 1 ON LINE 80 fast_lock_data.n_list_entries = divide (fast_lock_data.size - (bin (rel (addr (fast_lock_data.list))) - bin (rel (addr (fast_lock_data)))), size (lock_list_block), 17); 000050 aa 000002 0760 07 adq 2,dl 000051 aa 6 00120 7561 00 stq pr6|80 000052 aa 7 00000 3715 00 epp5 pr7|0 fast_lock_data 000053 aa 5 00000 6351 00 eaa pr5|0 000054 aa 000066 7730 00 lrl 54 000055 aa 6 00122 7571 00 staq pr6|82 000056 aa 7 00006 3535 00 epp3 pr7|6 fast_lock_data.list 000057 aa 3 00000 6351 00 eaa pr3|0 000060 aa 000066 7730 00 lrl 54 000061 aa 6 00122 1771 00 sbaq pr6|82 000062 aa 000000 5330 00 negl 0 000063 aa 7 00002 0331 00 adl pr7|2 fast_lock_data.size 000064 aa 6 00120 3521 00 epp2 pr6|80 000065 aa 0 01264 7001 00 tsx0 pr0|692 divide_fx3 000066 aa 000000000000 000067 aa 7 00003 7561 00 stq pr7|3 fast_lock_data.n_list_entries STATEMENT 1 ON LINE 84 lock_list_block_ptr = addr (fast_lock_data.list); 000070 aa 7 00006 3515 00 epp1 pr7|6 fast_lock_data.list 000071 aa 6 00104 2515 00 spri1 pr6|68 lock_list_block_ptr STATEMENT 1 ON LINE 85 do listx = 1 to fast_lock_data.n_list_entries; 000072 aa 6 00111 7561 00 stq pr6|73 000073 aa 000001 2360 07 ldq 1,dl 000074 aa 6 00100 7561 00 stq pr6|64 listx 000075 aa 000000 0110 03 nop 0,du 000076 aa 6 00122 2535 00 spri3 pr6|82 000077 aa 6 00124 6515 00 spri5 pr6|84 000100 aa 6 00100 2361 00 ldq pr6|64 listx 000101 aa 6 00111 1161 00 cmpq pr6|73 000102 aa 000050 6054 04 tpnz 40,ic 000152 STATEMENT 1 ON LINE 86 lock_list_block.nextp, lock_list_block.mbz = ""b; 000103 aa 777777 2350 07 lda 262143,dl 000104 aa 6 00104 3551 20 ansa pr6|68,* lock_list_block.nextp 000105 aa 777777 2350 03 lda 262143,du 000106 aa 6 00104 3551 20 ansa pr6|68,* lock_list_block.mbz STATEMENT 1 ON LINE 87 lock_list_block.block_words = lock_list_block_words; 000107 aa 6 00110 2361 00 ldq pr6|72 lock_list_block_words 000110 aa 000066 7370 00 lls 54 000111 aa 6 00104 3735 20 epp7 pr6|68,* lock_list_block_ptr 000112 aa 7 00001 5511 60 stba pr7|1,60 lock_list_block.block_words STATEMENT 1 ON LINE 88 unspec (lock_list_block.block_data) = ""b; 000113 aa 7 00001 2351 00 lda pr7|1 lock_list_block.block_words 000114 aa 000066 7330 00 lrs 54 000115 aa 000044 4020 07 mpy 36,dl 000116 aa 000010 0760 07 adq 8,dl 000117 aa 000011 5060 07 div 9,dl 000120 aa 000 140 100 400 mlr (),(pr,rl),fill(000) 000121 aa 000000 00 0000 desc9a 0,0 000122 aa 7 00002 00 0006 desc9a pr7|2,ql STATEMENT 1 ON LINE 89 call lm_fast_lock_list_$thread_in (addr (fast_lock_data.free_list_head), null (), lock_list_block_ptr); 000123 aa 6 00102 3715 20 epp5 pr6|66,* fast_lock_data_ptr 000124 aa 5 00004 3715 00 epp5 pr5|4 fast_lock_data.free_list_head 000125 aa 6 00126 6515 00 spri5 pr6|86 000126 aa 777660 3534 24 epp3 -80,ic* 000127 aa 6 00130 2535 00 spri3 pr6|88 000130 aa 6 00126 3521 00 epp2 pr6|86 000131 aa 6 00134 2521 00 spri2 pr6|92 000132 aa 6 00130 3521 00 epp2 pr6|88 000133 aa 6 00136 2521 00 spri2 pr6|94 000134 aa 6 00104 3521 00 epp2 pr6|68 lock_list_block_ptr 000135 aa 6 00140 2521 00 spri2 pr6|96 000136 aa 6 00132 6211 00 eax1 pr6|90 000137 aa 014000 4310 07 fld 6144,dl 000140 aa 6 00044 3701 20 epp4 pr6|36,* 000141 la 4 00020 3521 20 epp2 pr4|16,* lm_fast_lock_list_$thread_in 000142 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 90 lock_list_block_ptr = addrel (lock_list_block_ptr, size (lock_list_block)); 000143 aa 6 00110 2361 00 ldq pr6|72 lock_list_block_words 000144 aa 000002 0760 07 adq 2,dl 000145 aa 6 00104 3521 66 epp2 pr6|68,*ql lock_list_block_ptr 000146 aa 000000 0520 03 adwp2 0,du 000147 aa 6 00104 2521 00 spri2 pr6|68 lock_list_block_ptr STATEMENT 1 ON LINE 91 end; 000150 aa 6 00100 0541 00 aos pr6|64 listx 000151 aa 777725 7100 04 tra -43,ic 000076 STATEMENT 1 ON LINE 93 if dm_system_data_$meter_fast_locks then do; 000152 aa 6 00044 3701 20 epp4 pr6|36,* 000153 la 4 00014 2351 20 lda pr4|12,* dm_system_data_$meter_fast_locks 000154 aa 000026 6000 04 tze 22,ic 000202 STATEMENT 1 ON LINE 95 call dm_per_system_$alloc (size (lock_list_meters), lock_list_meters_ptr); 000155 aa 000006 2360 07 ldq 6,dl 000156 aa 6 00120 7561 00 stq pr6|80 000157 aa 6 00120 3521 00 epp2 pr6|80 000160 aa 6 00114 2521 00 spri2 pr6|76 000161 aa 6 00106 3521 00 epp2 pr6|70 lock_list_meters_ptr 000162 aa 6 00116 2521 00 spri2 pr6|78 000163 aa 6 00112 6211 00 eax1 pr6|74 000164 aa 010000 4310 07 fld 4096,dl 000165 la 4 00016 3521 20 epp2 pr4|14,* dm_per_system_$alloc 000166 aa 0 00623 7001 00 tsx0 pr0|403 call_ext_out STATEMENT 1 ON LINE 96 unspec (lock_list_meters) = "0"b; 000167 aa 6 00106 3735 20 epp7 pr6|70,* lock_list_meters_ptr 000170 aa 000 100 100 400 mlr (),(pr),fill(000) 000171 aa 000000 00 0000 desc9a 0,0 000172 aa 7 00000 00 0030 desc9a pr7|0,24 STATEMENT 1 ON LINE 97 lock_list_meters.version = LOCK_LIST_METERS_VERSION_1; 000173 aa 777605 2370 04 ldaq -123,ic 000000 = 154153154163 155164040061 000174 aa 7 00000 7551 00 sta pr7|0 lock_list_meters.version 000175 aa 7 00001 7561 00 stq pr7|1 lock_list_meters.version STATEMENT 1 ON LINE 98 dm_system_data_$lock_list_meters_rel = rel (lock_list_meters_ptr); 000176 aa 7 00000 6351 00 eaa pr7|0 lock_list_meters_ptr 000177 aa 6 00044 3701 20 epp4 pr6|36,* 000200 la 4 00012 7551 20 sta pr4|10,* dm_system_data_$lock_list_meters_rel STATEMENT 1 ON LINE 99 end; 000201 aa 000002 7100 04 tra 2,ic 000203 STATEMENT 1 ON LINE 100 else dm_system_data_$lock_list_meters_rel = "0"b; 000202 la 4 00012 4501 20 stz pr4|10,* dm_system_data_$lock_list_meters_rel STATEMENT 1 ON LINE 106 end lm_init_fast_lock_data_; 000203 aa 0 00631 7101 00 tra pr0|409 return END PROCEDURE lm_init_fast_lock_data_ ----------------------------------------------------------- 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