COMPILATION LISTING OF SEGMENT lm_per_process_init_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/05/85 0909.6 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* Program to do per-process lock initialization. Assumes that fast 9* locking is already initialized. 10**/ 11 12 /* HISTORY: 13* 14*Written by J. Bongiovanni, 11/30/82. 15*Modified: 16*12/01/82 by J. Bongiovanni: For multi-segment lock data. 17*02/08/83 by Lindsey Spratt: Moved setting of lm_data_$lock_seg_ptr to just 18* after lock_seg_ptr is set by call to dm_per_system_$initiate. 19* This fixes a problem where lm_salvage_lock_seg_ was being called 20* before lm_data_$lock_seg_ptr was set, but it depends on its 21* value being non-null. 22*03/04/83 by Jeffrey D. Ives: Modified for new initialization (add sub_err_). 23*04/06/83 by Benson I. Margulies: To houseclean, make transaction oriented. 24*08/05/83 by Lee A. Newcomb: removed obsolete status codes from calls 25* to dm_per_system_ entries. 26*83/12/02 by MPandolf: to make lm_data_$current_txn_id external 27*05/01/84 by R. Michael Tague: Added %include dm_lm_meters 28*10/03/84 by Stanford S. Cox: To use sub_err_flags. 29*11/22/84 by Lee A. Newcomb: removed obsolete dm_common_init_ references. 30*12/04/84 by Stanford S. Cox: Removed ptr check after dm_per_system_ call. 31**/ 32 33 /* format: style3,idind30 */ 34 lm_per_process_init_: 35 procedure; 36 37 /* Automatic */ 38 39 dcl code fixed bin (35) init (0); 40 dcl hx fixed bin init (0); 41 dcl lock_segx fixed bin init (0); 42 dcl px fixed bin init (0); 43 dcl retval fixed bin (35) init (0); 44 dcl saved_validation_level fixed bin init (-1); 45 46 dcl cleanup condition; 47 48 /* Static */ 49 50 dcl ME char (32) static options (constant) init ("lm_per_process_init_"); 51 dcl LOCK_TIMEOUT fixed bin (71) int static options (constant) init (1000000000); 52 dcl INITIAL_AREA_SIZE fixed bin int static options (constant) init (1024); 53 dcl N_HASH_TABLE_ENTRIES fixed bin int static options (constant) init (128); 54 dcl HASH_MASK bit (36) aligned int static options (constant) init ("000000000177"b3); 55 56 /* Based */ 57 58 dcl dm_area area based (dm_data_$inner_ring_areap); 59 60 /* External */ 61 62 dcl dm_system_data_$max_n_transactions 63 fixed bin ext static; 64 dcl dm_data_$inner_ring_areap ptr external; 65 66 dcl lm_data_$current_txn_id bit (36) aligned ext static; 67 dcl lm_data_$lock_per_process_ptr pointer ext static; 68 dcl lm_data_$lock_seg_ptr pointer ext static; 69 dcl lm_data_$n_lock_segments fixed bin external static; 70 dcl lm_data_$lock_segments_ptr pointer external static; 71 72 dcl dm_error_$fast_lock_invalid_reset 73 fixed bin (35) external; 74 dcl dm_error_$lock_table_overflow fixed bin (35) external; 75 dcl error_table_$unimplemented_version 76 fixed bin (35) ext static; 77 78 /* Entry */ 79 80 dcl cu_$level_set entry (fixed bin); 81 dcl get_ring_ entry returns (fixed bin); 82 dcl dm_per_system_$initiate entry (char (*), char (*), ptr); 83 dcl get_process_id_ entry () returns (bit (36)); 84 dcl hcs_$validate_processid entry (bit (36) aligned, fixed bin (35)); 85 dcl lm_init_fast_per_process_ entry (); 86 dcl lock_manager_$lock_fast entry (ptr, fixed bin (71), fixed bin (35)); 87 dcl lock_manager_$unlock_fast entry (ptr, fixed bin (35)); 88 dcl lm_salvage_lock_seg_ entry (fixed bin (35)); 89 dcl sub_err_ entry () options (variable); 90 91 /* Builtin */ 92 93 dcl addr builtin; 94 dcl hbound builtin; 95 dcl lbound builtin; 96 dcl null builtin; 97 dcl ptr builtin; 98 99 call cu_$level_set (get_ring_ ()); 100 101 call lm_init_fast_per_process_ (); 102 103 lock_segno = 1; 104 call dm_per_system_$initiate (LOCK_SEGNAME || lock_segno, "", lock_seg_ptr); 105 call CHECK_VERSION (LOCK_SEG_VERSION_1, lock_seg.version, "lock_seg"); 106 107 lm_data_$lock_seg_ptr = lock_seg_ptr; 108 109 lm_data_$n_lock_segments = lock_seg.n_lock_segments; 110 111 allocate lock_segments in (dm_area) set (lock_segments_ptr); 112 lm_data_$lock_segments_ptr = lock_segments_ptr; 113 114 lock_segments.seg_baseptr (1) = ptr (lock_seg_ptr, 0); 115 if lm_data_$n_lock_segments > 1 116 then do lock_segx = 2 to lm_data_$n_lock_segments; 117 lock_segno = lock_segx; 118 call dm_per_system_$initiate (LOCK_SEGNAME || lock_segno, "", lock_aux_seg_ptr); 119 lock_segments.seg_baseptr (lock_segx) = ptr (lock_aux_seg_ptr, 0); 120 end; 121 122 123 n_hash_table_entries = N_HASH_TABLE_ENTRIES; 124 allocate lock_per_process in (dm_area) set (lock_per_process_ptr); 125 126 lock_per_process.ht_mask = HASH_MASK; 127 lock_per_process.area_size = INITIAL_AREA_SIZE; 128 allocate lm_per_process_area in (dm_area) set (lock_per_process.area_ptr); 129 lock_per_process.hash_table (*) = null (); 130 131 lm_data_$lock_per_process_ptr = lock_per_process_ptr; 132 lm_data_$current_txn_id = ""b; /* so we init */ 133 134 135 return; 136 137 CHECK_VERSION: 138 proc (cv_p_expected_version, cv_p_received_version, cv_p_structure_name); 139 140 dcl cv_p_expected_version char (8) aligned parameter; 141 dcl cv_p_received_version char (8) aligned parameter; 142 dcl cv_p_structure_name char (32) aligned parameter; 143 144 if cv_p_expected_version ^= cv_p_received_version 145 then call sub_err_ (error_table_$unimplemented_version, ME, ACTION_CANT_RESTART, null (), 0, 146 "^/Expected version ^a of the ^a structure." || "^/Received version ^a instead.", 147 cv_p_expected_version, cv_p_structure_name, cv_p_received_version); 148 end CHECK_VERSION; 149 150 151 /* Begin include file dm_lm_per_process_data_.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* 1 5* Hash table for per-process control interval locks. 1 6**/ 1 7 1 8 /* HISTORY: 1 9*Written by Benson Margulies, 4/15/83. 1 10*Modified: 1 11*12/04/84 by Stanford S. Cox: Added description. 1 12**/ 1 13 /* format: style3,idind25 */ 1 14 1 15 declare lock_per_process_ptr pointer; 1 16 1 17 declare 1 lock_per_process aligned based (lock_per_process_ptr), 1 18 2 n_ht_entries fixed bin, /* Number of hash table entries */ 1 19 2 ht_mask bit (36) aligned, /* Mask for hash table */ 1 20 2 area_size fixed bin, 1 21 2 area_ptr pointer, 1 22 2 hash_table (0:n_hash_table_entries - 1 refer (lock_per_process.n_ht_entries)) 1 23 offset (lm_per_process_area); 1 24 /* Hash Table */ 1 25 1 26 declare n_hash_table_entries fixed bin; 1 27 1 28 declare lm_per_process_area €!õWagstaff €È0䪚ʬ Wagstaff kw UOFC *J~pnú”LþüìKÛ Gî’X.25ASCII_CRT_E €8ØWittig €ž& xŽÀN Wittig Office  MG®®MGwPúnoneVIP7400_DTR £\hal €’ÆTr¨*„ Hoover hal Fortran Jû¹a…J ,FgrJ ¢ÜžX.25ASCII_CRT_E €uxBrunelle €fzX HîÐ Brunelle Multics -JÛf%ÊÝ 2 72 2 process_id bit (36) aligned, /* Multics process identifier */ 2 73 2 txn_id bit (36) aligned, /* Current transaction ID */ 2 74 2 ev_channel fixed bin (71), 2 75 2 own_ptr aligned like lock_virtual_ptr, 2 76 /* First in thread of owning blocks */ 2 77 2 wait_ptr aligned like lock_virtual_ptr; 2 78 /* Waiting block */ 2 79 2 80 dcl 1 lock_hash_table aligned based (lock_hash_table_ptr), 2 81 2 buckets (lock_seg.n_hash_table_entries) aligned like lock_virtual_ptr; 2 82 2 83 2 84 dcl 1 lock_block aligned based (lock_block_ptr), 2 85 /* Generic block */ 2 86 2 seg_inx fixed bin unal, 2 87 2 type fixed bin unal, 2 88 2 pad (5) bit (36) aligned; 2 89 2 90 dcl 1 lock_block_array (n_lock_blocks) aligned like lock_block based (lock_block_array_ptr); 2 91 2 92 dcl 1 lock_free_block aligned based (lock_free_block_ptr), 2 93 /* Free block */ 2 94 2 seg_inx fixed bin unal, 2 95 2 type fixed bin unal, /* TYPE_FREE */ 2 96 2 free_fp aligned like lock_virtual_ptr, 2 97 /* Thread of free blocks */ 2 98 2 pad (4) bit (36) aligned; 2 99 2 100 dcl 1 lock_object aligned based (lock_object_ptr), 2 101 /* That which is locked */ 2 102 2 seg_inx fixed bin unal, 2 103 2 type fixed bin unal, /* TYPE_OBJECT */ 2 104 2 uid bit (36) aligned, /* Page File UID */ 2 105 2 ci_no fixed bin (35), /* Control Interval (-1 => Page File) */ 2 106 2 owners_ptr aligned like lock_virtual_ptr, 2 107 /* First in thread of owning blocks */ 2 108 2 waiters_ptr aligned like lock_virtual_ptr, 2 109 /* First in thread of waiting blocks */ 2 110 2 ht_fp aligned like lock_virtual_ptr; 2 111 /* Hash Table thread */ 2 112 2 113 dcl 1 lock_owner aligned based (lock_owner_ptr), 2 114 /* Owner of a lock */ 2 115 2 seg_inx fixed bin unal, 2 116 2 type fixed bin unal, /* TYPE_OWNER */ 2 117 2 lock_ptr aligned like lock_virtual_ptr, 2 118 /* Pointer to lock_object */ 2 119 2 mode fixed bin, /* Type of lock */ 2 120 2 owners_fp aligned like lock_virtual_ptr, 2 121 /* Thread of owners */ 2 122 2 transaction_fp aligned like lock_virtual_ptr, 2 123 /* Thread of locks owned by this transaction */ 2 124 2 transaction_ptr aligned like lock_virtual_ptr; 2 125 /* Pointer to transaction table entry */ 2 126 2 127 2 128 dcl 1 lock_waiter aligned based (lock_waiter_ptr), 2 129 /* Waiter for a lock */ 2 130 2 seg_inx fixed bin unal, 2 131 2 type fixed bin unal, /* TYPE_WAITER */ 2 132 2 lock_ptr aligned like lock_virtual_ptr, 2 133 /* Pointer to lock_object */ 2 134 2 mode fixed bin, /* Desired mode */ 2 135 2 waiters_fp aligned like lock_virtual_ptr, 2 136 /* Thread of waiters */ 2 137 2 transaction_ptr aligned like lock_virtual_ptr, 2 138 /* Process table entry of this proces */ 2 139 2 pad bit (36) aligned; 2 140 2 141 2 142 dcl 1 lock_segments aligned based (lock_segments_ptr), 2 143 2 seg_baseptr (lock_seg.n_lock_segments) ptr unal; 2 144 2 145 dcl 1 lock_virtual_ptr aligned based, 2 146 2 seg_inx fixed bin unal, 2 147 2 offset fixed bin (18) unsigned unal; 2 148 2 149 dcl 1 lock_deadlock aligned based (lock_deadlock_ptr), 2 150 2 wait_own (n_lock_deadlock, n_lock_deadlock) bit (1) unaligned; 2 151 2 152 declare 1 lock_deadlock_36 aligned based (lock_deadlock_ptr), 2 153 2 wait_own (36, 36) bit (1) unaligned; 2 154 2 155 declare 1 lock_deadlock_72 aligned based (lock_deadlock_ptr), 2 156 2 wait_own (72, 72) bit (1) unaligned; 2 157 /* (x,y) ON => x waiting for lock owned by y */ 2 158 2 159 declare lock_deadlock_txn_ids_ptr 2 160 pointer; 2 161 declare lock_deadlock_txn_ids (n_lock_deadlock) bit (36) aligned based (lock_deadlock_txn_ids_ptr); 2 162 dcl ( 2 163 TYPE_FREE init (1), 2 164 TYPE_OBJECT init (2), 2 165 TYPE_OWNER init (3), 2 166 TYPE_WAITER init (4), 2 167 MAX_TYPE init (4) 2 168 ) fixed bin int static options (constant); 2 169 2 170 2 171 dcl 1 NULL_VPTR aligned int static options (constant), 2 172 2 seg_inx fixed bin unal init (-1), 2 173 2 offset fixed bin (18) unsigned unal init (0); 2 174 2 175 2 176 dcl LOCK_BLOCK_SIZE fixed bin int static options (constant) init (6); 2 177 /* Size of all lock blocks */ 2 178 2 179 dcl LOCK_SEGNAME char (9) int static options (constant) init ("lock_seg_"); 2 180 2 181 dcl lock_segno pic "999"; 2 182 2 183 dcl ( 2 184 LOCK_MESSAGE_DEADLOCK init (1243657) 2 185 ) fixed bin (71) int static options (constant); 2 186 2 187 2 188 /* END INCLUDE FILE - dm_lm_system_data.incl.pl1 */ 152 153 /* BEGIN INCLUDE FILE - dm_lm_meters.incl.pl1 * 3 2* 3 3*/* format: style3,idind25 */ 3 4 3 5 /* DESCRIPTION: 3 6* 3 7* This is the lock manager meters structure. 3 8**/ 3 9 /* HISTORY: 3 10*Written by R. Michael Tague, 4/24/84. 3 11*Modified: 3 12*05/01/84 by R. Michael Tague: Collected all of the meters together into 3 13* the meters structure. 3 14**/ 3 15 3 16 dcl lock_meters_ptr ptr; 3 17 dcl LOCK_METERS_VERSION_1 char (8) aligned int static options (constant) 3 18 init ("LMMETER1"); 3 19 3 20 dcl 1 lock_meters aligned based (lock_meters_ptr), 3 21 2 version char (8), 3 22 2 lm_meters aligned, 3 23 3 lock_calls fixed bin (35), 3 24 3 unlock_all_calls fixed bin (35), 3 25 3 waits fixed bin (35), 3 26 3 deadlock_checks fixed bin (35), 3 27 3 real_deadlock_checks 3 28 fixed bin (35), 3 29 3 deadlock_checks_36 fixed bin (35), 3 30 3 deadlock_checks_72 fixed bin (35), 3 31 3 deadlock_self_youngest 3 32 fixed bin (35), 3 33 3 deadlock_other_youngest 3 34 fixed bin (35), 3 35 3 file_locks_by_mode (2:6) fixed bin (35), 3 36 3 ci_locks_by_mode (2:3) fixed bin (35), 3 37 3 allocates fixed bin (35), 3 38 3 frees fixed bin (35), 3 39 3 dup_file_locks_by_mode 3 40 (2:6) fixed bin (35), 3 41 3 dup_ci_locks_by_mode 3 42 (2:3) fixed bin (35), 3 43 3 pad (11) fixed bin (35); 3 44 3 45 /* END INCLUDE FILE - dm_lm_meters.incl.pl1 */ 153 154 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 4 2 /* format: style3 */ 4 3 4 4 /* These constants are to be used for the flags argument of sub_err_ */ 4 5 /* They are just "string (condition_info_header.action_flags)" */ 4 6 4 7 declare ( 4 8 ACTION_CAN_RESTART init (""b), 4 9 ACTION_CANT_RESTART init ("1"b), 4 10 ACTION_DEFAULT_RESTART 4 11 init ("01"b), 4 12 ACTION_QUIET_RESTART 4 13 init ("001"b), 4 14 ACTION_SUPPORT_SIGNAL 4 15 init ("0001"b) 4 16 ) bit (36) aligned internal static options (constant); 4 17 4 18 /* End include file */ 154 155 end lm_per_process_init_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/05/85 0759.7 lm_per_process_init_.pl1 >spec>on>7138.pbf>lm_per_process_init_.pl1 151 1 01/07/85 0901.3 dm_lm_per_process_data_.incl.pl1 >ldd>include>dm_lm_per_process_data_.incl.pl1 152 2 01/07/85 0859.2 dm_lm_system_data.incl.pl1 >ldd>include>dm_lm_system_data.incl.pl1 153 3 01/07/85 0859.1 dm_lm_meters.incl.pl1 >ldd>include>dm_lm_meters.incl.pl1 154 4 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.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. ACTION_CANT_RESTART 000000 constant bit(36) initial dcl 4-7 set ref 144* HASH_MASK constant bit(36) initial dcl 54 ref 126 INITIAL_AREA_SIZE constant fixed bin(17,0) initial dcl 52 ref 127 LOCK_SEGNAME 000001 constant char(9) initial unaligned dcl 2-179 ref 104 118 LOCK_SEG_VERSION_1 000004 constant char(8) initial dcl 2-32 set ref 105* ME 000006 constant char(32) initial unaligned dcl 50 set ref 144* N_HASH_TABLE_ENTRIES constant fixed bin(17,0) initial dcl 53 ref 123 area_ptr 4 based pointer level 2 dcl 1-17 set ref 128* area_size 2 based fixed bin(17,0) level 2 dcl 1-17 set ref 127* 128 128 code 000100 automatic fixed bin(35,0) initial dcl 39 set ref 39* cu_$level_set 000026 constant entry external dcl 80 ref 99 cv_p_expected_version parameter char(8) dcl 140 set ref 137 144 144* cv_p_received_version parameter char(8) dcl 141 set ref 137 144 144* cv_p_structure_name parameter char(32) dcl 142 set ref 137 144* dm_area based area(1024) dcl 58 ref 111 124 128 dm_data_$inner_ring_areap 000010 external static pointer dcl 64 ref 111 124 128 dm_per_system_$initiate 000032 constant entry external dcl 82 ref 104 118 error_table_$unimplemented_version 000024 external static fixed bin(35,0) dcl 75 set ref 144* get_ring_ 000030 constant entry external dcl 81 ref 99 99 hash_table 6 based offset array level 2 dcl 1-17 set ref 129* header 2 based structure level 2 dcl 2-34 ht_mask 1 based bit(36) level 2 dcl 1-17 set ref 126* hx 000101 automatic fixed bin(17,0) initial dcl 40 set ref 40* lm_data_$current_txn_id 000012 external static bit(36) dcl 66 set ref 132* lm_data_$lock_per_process_ptr 000014 external static pointer dcl 67 set ref 131* lm_data_$lock_seg_ptr 000016 external static pointer dcl 68 set ref 107* lm_data_$lock_segments_ptr 000022 external static pointer dcl 70 set ref 112* lm_data_$n_lock_segments 000020 external static fixed bin(17,0) dcl 69 set ref 109* 115 115 lm_init_fast_per_process_ 000034 constant entry external dcl 85 ref 101 lm_per_process_area based area dcl 1-28 set ref 128 128* lock_aux_seg_ptr 000114 automatic pointer dcl 2-19 set ref 118* 119 lock_block based structure level 1 dcl 2-84 lock_hash_table based structure level 1 dcl 2-80 lock_meters based structure level 1 dcl 3-20 lock_per_process based structure level 1 dcl 1-17 set ref 124 lock_per_process_ptr 000106 automatic pointer dcl 1-15 set ref 124* 126 127 128 128 128 129 131 lock_seg based structure level 1 dcl 2-34 lock_seg_ptr 000112 automatic pointer dcl 2-15 set ref 104* 105 107 109 111 114 lock_segments based structure level 1 dcl 2-142 set ref 111 lock_segments_ptr 000116 automatic pointer dcl 2-25 set ref 111* 112 114 119 lock_segno 000120 automatic picture(3) unaligned dcl 2-181 set ref 103* 104 117* 118 lock_segx 000102 automatic fixed bin(17,0) initial dcl 41 set ref 41* 115* 117 119* lock_transaction_table based structure level 1 dcl 2-69 lock_virtual_ptr based structure level 1 dcl 2-145 n_hash_table_entries 000110 automatic fixed bin(17,0) dcl 1-26 set ref 123* 124 124 n_ht_entries based fixed bin(17,0) level 2 dcl 1-17 set ref 124* 129 n_lock_segments 4 based fixed bin(17,0) level 3 dcl 2-34 ref 109 111 null builtin function dcl 96 ref 129 144 144 ptr builtin function dcl 97 ref 114 119 px 000103 automatic fixed bin(17,0) initial dcl 42 set ref 42* retval 000104 automatic fixed bin(35,0) initial dcl 43 set ref 43* saved_validation_level 000105 automatic fixed bin(17,0) initial dcl 44 set ref 44* seg_baseptr based pointer array level 2 packed unaligned dcl 2-142 set ref 114* 119* sub_err_ 000036 constant entry external dcl 89 ref 144 version based char(8) level 2 dcl 2-34 set ref 105* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 4-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 4-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 4-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 4-7 LOCK_BLOCK_SIZE internal static fixed bin(17,0) initial dcl 2-176 LOCK_MESSAGE_DEADLOCK internal static fixed bin(71,0) initial dcl 2-183 LOCK_METERS_VERSION_1 internal static char(8) initial dcl 3-17 LOCK_TIMEOUT internal static fixed bin(71,0) initial dcl 51 MAX_TYPE internal static fixed bin(17,0) initial dcl 2-162 NULL_VPTR internal static structure level 1 dcl 2-171 TYPE_FREE internal static fixed bin(17,0) initial dcl 2-162 TYPE_OBJECT internal static fixed bin(17,0) initial dcl 2-162 TYPE_OWNER internal static fixed bin(17,0) initial dcl 2-162 TYPE_WAITER internal static fixed bin(17,0) initial dcl 2-162 addr builtin function dcl 93 cleanup 000000 stack reference condition dcl 46 dm_error_$fast_lock_invalid_reset external static fixed bin(35,0) dcl 72 dm_error_$lock_table_overflow external static fixed bin(35,0) dcl 74 dm_system_data_$max_n_transactions external static fixed bin(17,0) dcl 62 get_process_id_ 000000 constant entry external dcl 83 hbound builtin function dcl 94 hcs_$validate_processid 000000 constant entry external dcl 84 lbound builtin function dcl 95 lm_salvage_lock_seg_ 000000 constant entry external dcl 88 lock_aux_seg based structure level 1 dcl 2-62 lock_block_array based structure array level 1 dcl 2-90 lock_block_array_ptr automatic pointer dcl 2-21 lock_block_ptr automatic pointer dcl 2-20 lock_deadlock based structure level 1 dcl 2-149 lock_deadlock_36 based structure level 1 dcl 2-152 lock_deadlock_72 based structure level 1 dcl 2-155 lock_deadlock_ptr automatic pointer dcl 2-27 lock_deadlock_txn_ids based bit(36) array dcl 2-161 lock_deadlock_txn_ids_ptr automatic pointer dcl 2-159 lock_free_block based structure level 1 dcl 2-92 lock_free_block_ptr automatic pointer dcl 2-22 lock_hash_table_ptr automatic pointer dcl 2-18 lock_manager_$lock_fast 000000 constant entry external dcl 86 lock_manager_$unlock_fast 000000 constant entry external dcl 87 lock_meters_ptr automatic pointer dcl 3-16 lock_object based structure level 1 dcl 2-100 lock_object_ptr automatic pointer dcl 2-23 lock_owner based structure level 1 dcl 2-113 lock_owner_ptr automatic pointer dcl 2-24 lock_transaction_table_ptr automatic pointer dcl 2-16 lock_waiter based structure level 1 dcl 2-128 lock_waiter_ptr automatic pointer dcl 2-26 n_lock_blocks automatic fixed bin(17,0) dcl 2-29 n_lock_deadlock automatic fixed bin(17,0) dcl 2-30 per_process_file_lock based structure level 1 dcl 1-32 per_process_file_lock_ptr automatic pointer dcl 1-30 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 000352 constant entry internal dcl 137 ref 105 lm_per_process_init_ 000065 constant entry external dcl 34 NAME DECLARED BY CONTEXT OR IMPLICATION. empty builtin function ref 128 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 644 704 445 654 Length 1164 445 40 244 177 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME lm_per_process_init_ 182 external procedure is an external procedure. CHECK_VERSION internal procedure shares stack frame of external procedure lm_per_process_init_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME lm_per_process_init_ 000100 code lm_per_process_init_ 000101 hx lm_per_process_init_ 000102 lock_segx lm_per_process_init_ 000103 px lm_per_process_init_ 000104 retval lm_per_process_init_ 000105 saved_validation_level lm_per_process_init_ 000106 lock_per_process_ptr lm_per_process_init_ 000110 n_hash_table_entries lm_per_process_init_ 000112 lock_seg_ptr lm_per_process_init_ 000114 lock_aux_seg_ptr lm_per_process_init_ 000116 lock_segments_ptr lm_per_process_init_ 000120 lock_segno lm_per_process_init_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return ext_entry alloc_based empty THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. cu_$level_set dm_per_system_$initiate get_ring_ lm_init_fast_per_process_ sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. dm_data_$inner_ring_areap error_table_$unimplemented_version lm_data_$current_txn_id lm_data_$lock_per_process_ptr lm_data_$lock_seg_ptr lm_data_$lock_segments_ptr lm_data_$n_lock_segments LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 34 000064 39 000072 40 000073 41 000074 42 000075 43 000076 44 000077 99 000101 101 000116 103 000123 104 000130 105 000157 107 000174 109 000177 111 000201 112 000211 114 000213 115 000215 117 000230 118 000240 119 000267 120 000273 123 000275 124 000277 126 000312 127 000314 128 000316 129 000331 131 000346 132 000350 135 000351 137 000352 144 000354 148 000443