COMPILATION LISTING OF SEGMENT vtoc_buffer_meters Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 07/18/86 1356.3 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 /****^ HISTORY COMMENTS: 9* 1) change(86-01-16,Fawcett), approve(86-04-10,MCR7383), 10* audit(86-05-27,Wallman), install(86-07-18,MR12.0-1098): 11* Add support for 512_WORD_IO devices. 12* END HISTORY COMMENTS */ 13 14 15 /* format: style3 */ 16 vtoc_buffer_meters: 17 proc; 18 19 /* Program to print metering data from vtoc_buffer_seg 20* 21* Rewritten for new VTOC buffer strategy, July 1982, J. Bongiovanni 22* 23**/ 24 25 /* Automatic */ 26 27 dcl arg_no fixed bin; 28 dcl argl fixed bin (21); 29 dcl argp ptr; 30 dcl code fixed bin (35); 31 dcl cur_ptrs (1) ptr; 32 dcl formatted_time char (10); 33 dcl meter_time fixed bin (71); 34 dcl meter_time_sec float; 35 dcl n_args fixed bin; 36 dcl prev_ptrs (1) ptr; 37 dcl report_sw bit (1) aligned; 38 dcl reset_sw bit (1) aligned; 39 dcl skips fixed bin (35); 40 dcl steps fixed bin (35); 41 42 /* Static */ 43 44 dcl init bit (1) aligned int static init ("0"b); 45 dcl MYNAME char (18) int static options (constant) init ("vtoc_buffer_meters"); 46 dcl unique fixed bin int static; 47 48 /* Based */ 49 50 dcl arg char (argl) based (argp); 51 dcl 1 cur_vtoc_buffer aligned like vtoc_buffer based (cur_ptrs (1)); 52 dcl 1 prev_vtoc_buffer aligned like vtoc_buffer based (prev_ptrs (1)); 53 54 /* External */ 55 56 dcl error_table_$badopt fixed bin (35) external; 57 58 /* Entry */ 59 60 dcl com_err_ entry options (variable); 61 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 62 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 63 dcl ioa_ entry options (variable); 64 dcl metering_util_$define_regions 65 entry options (variable); 66 dcl metering_util_$fill_buffers 67 entry (fixed bin, fixed bin (71), char (*), (*) ptr, (*) ptr, fixed bin (35)); 68 dcl metering_util_$reset 69 entry (fixed bin, fixed bin (35)); 70 71 /* Builtin */ 72 73 dcl float builtin; 74 dcl size builtin; 75 76 77 /* Pick up and validate arguments */ 78 79 call cu_$arg_count (n_args, code); 80 if code ^= 0 81 then do; 82 call com_err_ (code, MYNAME); 83 return; 84 end; 85 86 report_sw, reset_sw = "0"b; 87 88 do arg_no = 1 to n_args; 89 call cu_$arg_ptr (arg_no, argp, argl, code); 90 if arg = "-report" 91 then report_sw = "1"b; 92 else if arg = "-reset" | arg = "-rs" 93 then reset_sw = "1"b; 94 else if arg = "-report_reset" | arg = "-rr" 95 then report_sw, reset_sw = "1"b; 96 else do; 97 call com_err_ (error_table_$badopt, MYNAME, arg); 98 return; 99 end; 100 end; 101 102 if ^report_sw & ^reset_sw 103 then report_sw = "1"b; 104 105 /* Initialize if this is the first time called this process */ 106 107 if ^init 108 then do; 109 vtoc_buf_n_buffers, vtoc_buf_n_buckets = 1; 110 111 call metering_util_$define_regions (unique, code, "vtoc_buffer_seg", 0, size (vtoc_buffer)); 112 if code ^= 0 113 then do; 114 call com_err_ (code, MYNAME, "From metering_util_$define_regions"); 115 return; 116 end; 117 init = "1"b; 118 end; 119 120 121 /* Get current buffers */ 122 123 call metering_util_$fill_buffers (unique, meter_time, formatted_time, cur_ptrs, prev_ptrs, code); 124 if code ^= 0 125 then do; 126 call com_err_ (code, MYNAME, "Filling buffers"); 127 return; 128 end; 129 130 call ioa_ ("^/Total metering time:^-^a^/", formatted_time); 131 132 /* Print report if requested */ 133 134 if report_sw 135 then do; 136 137 meter_time_sec = float (meter_time) / 1.0e6; 138 call ioa_ ("Routine^20x# calls ATB(sec)^/"); 139 140 call PRINT_CALL ("get_vtoce", cur_vtoc_buffer.meters.call_get - prev_vtoc_buffer.meters.call_get, "", 141 0); 142 call PRINT_CALL ("put_vtoce", cur_vtoc_buffer.meters.call_put - prev_vtoc_buffer.meters.call_put, "", 143 0); 144 call PRINT_CALL ("alloc_and_put_vtoce", 145 cur_vtoc_buffer.meters.call_alloc - prev_vtoc_buffer.meters.call_alloc, "", 0); 146 call PRINT_CALL ("free_vtoce", cur_vtoc_buffer.meters.call_free - prev_vtoc_buffer.meters.call_free, 147 "", 0); 148 call PRINT_CALL ("await_vtoce", 149 cur_vtoc_buffer.meters.call_await - prev_vtoc_buffer.meters.call_await, "", 0); 150 call PRINT_CALL ("GET_BUFFERS", 151 cur_vtoc_buffer.meters.get_buffer_calls - prev_vtoc_buffer.meters.get_buffer_calls, "Hits", 152 cur_vtoc_buffer.meters.get_buffer_hits - prev_vtoc_buffer.meters.get_buffer_hits); 153 call PRINT_CALL ("WAIT", cur_vtoc_buffer.meters.wait_calls - prev_vtoc_buffer.meters.wait_calls, 154 "TC Waits", cur_vtoc_buffer.meters.wait_os - prev_vtoc_buffer.meters.wait_os); 155 156 call ioa_ ("^/Buffer Allocation^/^27x^6x# ATB(sec)^/"); 157 158 steps = cur_vtoc_buffer.meters.steps - prev_vtoc_buffer.meters.steps; 159 skips = (cur_vtoc_buffer.meters.skip_os - prev_vtoc_buffer.meters.skip_os) 160 + (cur_vtoc_buffer.meters.skip_hot - prev_vtoc_buffer.meters.skip_hot) 161 + (cur_vtoc_buffer.meters.skip_wait - prev_vtoc_buffer.meters.skip_wait); 162 163 call PRINT_STEPS ("Steps", steps, "", 0); 164 call PRINT_STEPS ("Skips", skips, "steps", steps); 165 call PRINT_STEPS (" os", cur_vtoc_buffer.meters.skip_os - prev_vtoc_buffer.meters.skip_os, "skips", 166 skips); 167 call PRINT_STEPS (" hot", cur_vtoc_buffer.meters.skip_hot - prev_vtoc_buffer.meters.skip_hot, 168 "skips", skips); 169 call PRINT_STEPS (" wait", cur_vtoc_buffer.meters.skip_wait - prev_vtoc_buffer.meters.skip_wait, 170 "skips", skips); 171 172 call ioa_ ("^/Disk I/Os^/^27x^6x# ATB(sec)^/"); 173 174 call PRINT_IO ("Reads", cur_vtoc_buffer.meters.disk_reads - prev_vtoc_buffer.meters.disk_reads); 175 call PRINT_IO ("Writes", cur_vtoc_buffer.meters.disk_writes - prev_vtoc_buffer.meters.disk_writes); 176 call PRINT_IO ("RAR", cur_vtoc_buffer.meters.soft_rar - prev_vtoc_buffer.meters.soft_rar); 177 call ioa_ ("^/"); 178 179 end; 180 181 /* Reset buffers if requested */ 182 183 if reset_sw 184 then do; 185 call metering_util_$reset (unique, code); 186 if code ^= 0 187 then do; 188 call com_err_ (code, MYNAME, "Resetting"); 189 return; 190 end; 191 end; 192 193 194 return; 195 196 /* Internal Procedure to compute Average Time Between events in seconds */ 197 198 ATB: 199 proc (N) returns (float); 200 201 dcl N fixed bin (35); 202 203 if N = 0 204 then return (0.0); 205 else return (meter_time_sec / float (N)); 206 207 end ATB; 208 209 /* Internal Procedures to print various lines */ 210 211 PRINT_CALL: 212 proc (Routine, N_Calls, Extra_Name, N_Extra); 213 214 dcl Routine char (*); 215 dcl N_Calls fixed bin (35); 216 dcl Extra_Name char (*); 217 dcl N_Extra fixed bin (35); 218 219 dcl pct_calls float; 220 221 if (Extra_Name ^= "") 222 then do; 223 if N_Calls = 0 224 then pct_calls = 0.0; 225 else pct_calls = (float (N_Extra) / float (N_Calls)) * 100.0; 226 end; 227 228 call ioa_ ("^27a ^6d ^8.2f^[ ^6d ^8a (^5.1f% of calls)^;^3s^]", Routine, N_Calls, ATB (N_Calls), 229 (Extra_Name ^= ""), N_Extra, Extra_Name, pct_calls); 230 231 end PRINT_CALL; 232 233 234 235 PRINT_STEPS: 236 proc (Step_Name, N_Steps, Pct_Name, Pct_N); 237 238 dcl Step_Name char (*); 239 dcl N_Steps fixed bin (35); 240 dcl Pct_Name char (*); 241 dcl Pct_N fixed bin (35); 242 243 dcl pct_steps float; 244 245 if (Pct_Name ^= "") 246 then do; 247 if Pct_N = 0 248 then pct_steps = 0.0; 249 else pct_steps = (float (N_Steps) / float (Pct_N)) * 100.0; 250 end; 251 252 call ioa_ ("^27a ^6d ^8.2f^[ ^5.1f% of ^a^;^2s^]", Step_Name, N_Steps, ATB (N_Steps), (Pct_Name ^= ""), 253 pct_steps, Pct_Name); 254 255 end PRINT_STEPS; 256 257 258 259 PRINT_IO: 260 proc (IO_Name, IO_N); 261 262 dcl IO_Name char (*); 263 dcl IO_N fixed bin (35); 264 265 call ioa_ ("^27a ^6d ^8.2f", IO_Name, IO_N, ATB (IO_N)); 266 267 end PRINT_IO; 268 1 1 /* START OF: vtoc_buffer.incl.pl1 November 1982 * * * * * * * * * * * * * * * * */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-04-21,Fawcett), approve(86-04-21,MCR7383), 1 7* audit(86-05-27,GDixon), install(86-07-18,MR12.0-1098): 1 8* Add the software read-alter-rewrite when needed for devices that do only 1 9* 512 word IO. 1 10* END HISTORY COMMENTS */ 1 11 1 12 1 13 dcl vtoc_buffer_seg$ ext; 1 14 1 15 dcl vtoc_buffer_segp ptr; 1 16 dcl vtoc_buf_descp ptr; 1 17 dcl vtoc_bufp ptr; 1 18 dcl vtoc_buf_desc_arrayp ptr; 1 19 dcl vtoc_buf_arrayp ptr; 1 20 1 21 dcl vtoc_buf_n_buffers fixed bin; 1 22 dcl vtoc_buf_n_buckets fixed bin; 1 23 1 24 1 25 dcl 1 vtoc_buffer aligned based (vtoc_buffer_segp), 1 26 1 27 2 lock, /* Global lock for VTOC buffers */ 1 28 3 processid bit (36) aligned, /* Owner */ 1 29 3 wait_event bit (36) aligned, /* For lock */ 1 30 3 notify_sw bit (1) aligned, /* ON => notify on unlock */ 1 31 1 32 2 n_bufs fixed bin, /* Number of full VTOCE buffers */ 1 33 2 n_hash_buckets fixed bin, /* Number of hash table buckets */ 1 34 2 hash_mask bit (36) aligned, /* Mask for hash algorithm */ 1 35 2 abs_addr fixed bin (24), /* Absolute address of vtoc_buffer_seg */ 1 36 2 wait_event_constant fixed bin (36) uns unal, /* Constant to add to part index to form wait event */ 1 37 2 buf_desc_offset bit (18), /* Offset of buf_desc */ 1 38 2 buf_offset bit (18), /* Offset of buf */ 1 39 2 hash_table_offset bit (18), /* Offset of hash_table */ 1 40 2 search_index fixed bin, /* Roving pointer for buffer selection */ 1 41 2 unsafe_pvtx fixed bin, /* PVTE index with update in progress */ 1 42 2 scavenger_free_p_clock 1 43 fixed bin (35), /* Pseudo-Clock for scavenger-free-other-allocate race */ 1 44 2 meters, 1 45 3 call_get fixed bin (35), /* Calls to get_vtoce */ 1 46 3 call_put fixed bin (35), /* Calls to put_vtoce */ 1 47 3 call_alloc fixed bin (35), /* Calls to alloc_and_put_vtoce */ 1 48 3 call_free fixed bin (35), /* Calls to free_vtoce */ 1 49 3 call_await fixed bin (35), /* Calls to await_vtoce */ 1 50 3 steps fixed bin (35), /* Steps through buffer allocation */ 1 51 3 skip_os fixed bin (35), /* Skipped because out-of-service */ 1 52 3 skip_hot fixed bin (35), /* Skipped because buffer hot */ 1 53 3 skip_wait fixed bin (35), /* Skipped because notify_sw set */ 1 54 3 disk_reads fixed bin (35), /* Number of same */ 1 55 3 disk_writes fixed bin (35), /* Number of same */ 1 56 3 get_buffer_calls fixed bin (35), /* Number of calls to GET_BUFFER */ 1 57 3 get_buffer_hits fixed bin (35), /* Number times VTOCE in buffer */ 1 58 3 wait_calls fixed bin (35), /* Number of calls to WAIT */ 1 59 3 wait_os fixed bin (35), /* Number of times had to wait */ 1 60 3 scavenger_free_checks 1 61 fixed bin (35), /* Number of times had to check pseudo-clock */ 1 62 3 scavenger_free_losses 1 63 fixed bin (35), /* Number of times race lost between scavenger freeing and other allocate */ 1 64 3 soft_rar fixed bin (35), /* Nunber of times a software read_alter_rewrite performed */ 1 65 1 66 3 pad (14) fixed bin (35), 1 67 1 68 2 hash_table (vtoc_buf_n_buckets refer (vtoc_buffer.n_hash_buckets)) bit (18) aligned, 1 69 1 70 1 71 2 buf_desc (vtoc_buf_n_buffers refer (vtoc_buffer.n_bufs)) aligned like vtoc_buf_desc, 1 72 1 73 2 buffer (vtoc_buf_n_buffers refer (vtoc_buffer.n_bufs)) aligned like vtoce_buffer; 1 74 1 75 1 76 1 77 dcl 1 vtoc_buf_desc_array (vtoc_buffer.n_bufs) aligned based (vtoc_buf_desc_arrayp) like vtoc_buf_desc; 1 78 1 79 1 80 dcl 1 vtoc_buf_desc aligned based (vtoc_buf_descp), 1 81 2 pvtx fixed bin (17) unal, /* PVTE index */ 1 82 2 vtocx fixed bin (17) unal, /* VTOCE Index */ 1 83 2 parts_used bit (3) unal, /* Mask of parts used or os */ 1 84 2 err bit (1) unal, /* ON => I/O error on buffer */ 1 85 2 notify_sw bit (1) unal, /* ON => notify requied on I/O completion */ 1 86 2 write_sw bit (1) unal, /* ON => write I/O */ 1 87 2 os bit (1) unal, /* ON => I/O in progress */ 1 88 2 ioq bit (1) unal, /* ON => I/O has been requested */ 1 89 2 used bit (1) unal, /* ON => this descriptor is in use */ 1 90 2 pad bit (9) unal, 1 91 2 wait_index fixed bin (17) unal, /* Buffer index for forming wait event */ 1 92 2 ht_thread bit (18) unal, /* Offset of next entry in hash table */ 1 93 2 buf_rel bit (18) unal; /* Offset of buffer in segment */ 1 94 1 95 dcl 1 vtoce_buffer_array (vtoc_buffer.n_bufs) aligned based (vtoc_buf_arrayp) like vtoce_buffer; 1 96 1 97 dcl 1 vtoce_buffer aligned based (vtoc_bufp), 1 98 2 parts (3) aligned, 1 99 3 words (64) bit (36) aligned; 1 100 1 101 1 102 dcl N_PARTS_PER_VTOCE fixed bin int static options (constant) init (3); 1 103 dcl VTOCE_PART_SIZE fixed bin int static options (constant) init (64); 1 104 dcl VTOCE_BUFFER_SIZE fixed bin int static options (constant) init (3 * 64); 1 105 dcl N_VTOCE_PER_RECORD fixed bin int static options (constant) init (5); 1 106 dcl N_SECTOR_PER_VTOCE fixed bin int static options (constant) init (3); 1 107 1 108 1 109 /* END OF: vtoc_buffer.incl.pl1 * * * * * * * * * * * * * * * * */ 269 270 271 end vtoc_buffer_meters; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/18/86 1235.1 vtoc_buffer_meters.pl1 >spec>install>1098>vtoc_buffer_meters.pl1 269 1 07/18/86 1218.3 vtoc_buffer.incl.pl1 >spec>install>1098>vtoc_buffer.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. Extra_Name parameter char unaligned dcl 216 set ref 211 221 228 228* IO_N parameter fixed bin(35,0) dcl 263 set ref 259 265* 265* 265* IO_Name parameter char unaligned dcl 262 set ref 259 265* MYNAME 000000 constant char(18) initial unaligned dcl 45 set ref 82* 97* 114* 126* 188* N parameter fixed bin(35,0) dcl 201 ref 198 203 205 N_Calls parameter fixed bin(35,0) dcl 215 set ref 211 223 225 228* 228* 228* N_Extra parameter fixed bin(35,0) dcl 217 set ref 211 225 228* N_Steps parameter fixed bin(35,0) dcl 239 set ref 235 249 252* 252* 252* Pct_N parameter fixed bin(35,0) dcl 241 ref 235 247 249 Pct_Name parameter char unaligned dcl 240 set ref 235 245 252 252* Routine parameter char unaligned dcl 214 set ref 211 228* Step_Name parameter char unaligned dcl 238 set ref 235 252* arg based char unaligned dcl 50 set ref 90 92 92 94 94 97* arg_no 000100 automatic fixed bin(17,0) dcl 27 set ref 88* 89* argl 000101 automatic fixed bin(21,0) dcl 28 set ref 89* 90 92 92 94 94 97 97 argp 000102 automatic pointer dcl 29 set ref 89* 90 92 92 94 94 97 call_alloc 20 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 144 call_alloc 20 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 144 call_await 22 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 148 call_await 22 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 148 call_free 21 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 146 call_free 21 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 146 call_get 16 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 140 call_get 16 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 140 call_put 17 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 142 call_put 17 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 142 code 000104 automatic fixed bin(35,0) dcl 30 set ref 79* 80 82* 89* 111* 112 114* 123* 124 126* 185* 186 188* com_err_ 000014 constant entry external dcl 60 ref 82 97 114 126 188 cu_$arg_count 000016 constant entry external dcl 61 ref 79 cu_$arg_ptr 000020 constant entry external dcl 62 ref 89 cur_ptrs 000106 automatic pointer array dcl 31 set ref 123* 140 142 144 146 148 150 150 153 153 158 159 159 159 165 167 169 174 175 176 cur_vtoc_buffer based structure level 1 dcl 51 disk_reads 27 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 174 disk_reads 27 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 174 disk_writes 30 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 175 disk_writes 30 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 175 error_table_$badopt 000012 external static fixed bin(35,0) dcl 56 set ref 97* float builtin function dcl 73 ref 137 205 225 225 249 249 formatted_time 000110 automatic char(10) unaligned dcl 32 set ref 123* 130* get_buffer_calls 31 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 150 get_buffer_calls 31 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 150 get_buffer_hits 32 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 150 get_buffer_hits 32 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 150 init 000010 internal static bit(1) initial dcl 44 set ref 107 117* ioa_ 000022 constant entry external dcl 63 ref 130 138 156 172 177 228 252 265 meter_time 000114 automatic fixed bin(71,0) dcl 33 set ref 123* 137 meter_time_sec 000116 automatic float bin(27) dcl 34 set ref 137* 205 metering_util_$define_regions 000024 constant entry external dcl 64 ref 111 metering_util_$fill_buffers 000026 constant entry external dcl 66 ref 123 metering_util_$reset 000030 constant entry external dcl 68 ref 185 meters 16 based structure level 2 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" meters 16 based structure level 2 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" n_args 000117 automatic fixed bin(17,0) dcl 35 set ref 79* 88 pct_calls 000146 automatic float bin(27) dcl 219 set ref 223* 225* 228* pct_steps 000156 automatic float bin(27) dcl 243 set ref 247* 249* 252* prev_ptrs 000120 automatic pointer array dcl 36 set ref 123* 140 142 144 146 148 150 150 153 153 158 159 159 159 165 167 169 174 175 176 prev_vtoc_buffer based structure level 1 dcl 52 report_sw 000122 automatic bit(1) dcl 37 set ref 86* 90* 94* 102 102* 134 reset_sw 000123 automatic bit(1) dcl 38 set ref 86* 92* 94* 102 183 size builtin function dcl 74 ref 111 111 skip_hot 25 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 159 167 skip_hot 25 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 159 167 skip_os 24 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 159 165 skip_os 24 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 159 165 skip_wait 26 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 159 169 skip_wait 26 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 159 169 skips 000124 automatic fixed bin(35,0) dcl 39 set ref 159* 164* 165* 167* 169* soft_rar 37 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 176 soft_rar 37 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 176 steps 23 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 158 steps 23 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 158 steps 000125 automatic fixed bin(35,0) dcl 40 in procedure "vtoc_buffer_meters" set ref 158* 163* 164* unique 000011 internal static fixed bin(17,0) dcl 46 set ref 111* 123* 185* vtoc_buf_desc based structure level 1 dcl 1-80 vtoc_buf_n_buckets 000127 automatic fixed bin(17,0) dcl 1-22 set ref 109* 111 111 vtoc_buf_n_buffers 000126 automatic fixed bin(17,0) dcl 1-21 set ref 109* 111 111 111 111 vtoc_buffer based structure level 1 dcl 1-25 ref 111 111 vtoc_buffer_segp automatic pointer dcl 1-15 ref 111 111 vtoce_buffer based structure level 1 dcl 1-97 wait_calls 33 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 153 wait_calls 33 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 153 wait_os 34 based fixed bin(35,0) level 3 in structure "cur_vtoc_buffer" dcl 51 in procedure "vtoc_buffer_meters" ref 153 wait_os 34 based fixed bin(35,0) level 3 in structure "prev_vtoc_buffer" dcl 52 in procedure "vtoc_buffer_meters" ref 153 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. N_PARTS_PER_VTOCE internal static fixed bin(17,0) initial dcl 1-102 N_SECTOR_PER_VTOCE internal static fixed bin(17,0) initial dcl 1-106 N_VTOCE_PER_RECORD internal static fixed bin(17,0) initial dcl 1-105 VTOCE_BUFFER_SIZE internal static fixed bin(17,0) initial dcl 1-104 VTOCE_PART_SIZE internal static fixed bin(17,0) initial dcl 1-103 vtoc_buf_arrayp automatic pointer dcl 1-19 vtoc_buf_desc_array based structure array level 1 dcl 1-77 vtoc_buf_desc_arrayp automatic pointer dcl 1-18 vtoc_buf_descp automatic pointer dcl 1-16 vtoc_buffer_seg$ external static fixed bin(17,0) dcl 1-13 vtoc_bufp automatic pointer dcl 1-17 vtoce_buffer_array based structure array level 1 dcl 1-95 NAMES DECLARED BY EXPLICIT CONTEXT. ATB 001404 constant entry internal dcl 198 ref 228 228 252 252 265 265 PRINT_CALL 001421 constant entry internal dcl 211 ref 140 142 144 146 148 150 153 PRINT_IO 001676 constant entry internal dcl 259 ref 174 175 176 PRINT_STEPS 001551 constant entry internal dcl 235 ref 163 164 165 167 169 vtoc_buffer_meters 000256 constant entry external dcl 16 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2460 2512 2342 2470 Length 2742 2342 32 213 115 2 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME vtoc_buffer_meters 354 external procedure is an external procedure. ATB internal procedure shares stack frame of external procedure vtoc_buffer_meters. PRINT_CALL internal procedure shares stack frame of external procedure vtoc_buffer_meters. PRINT_STEPS internal procedure shares stack frame of external procedure vtoc_buffer_meters. PRINT_IO internal procedure shares stack frame of external procedure vtoc_buffer_meters. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 init vtoc_buffer_meters 000011 unique vtoc_buffer_meters STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME vtoc_buffer_meters 000100 arg_no vtoc_buffer_meters 000101 argl vtoc_buffer_meters 000102 argp vtoc_buffer_meters 000104 code vtoc_buffer_meters 000106 cur_ptrs vtoc_buffer_meters 000110 formatted_time vtoc_buffer_meters 000114 meter_time vtoc_buffer_meters 000116 meter_time_sec vtoc_buffer_meters 000117 n_args vtoc_buffer_meters 000120 prev_ptrs vtoc_buffer_meters 000122 report_sw vtoc_buffer_meters 000123 reset_sw vtoc_buffer_meters 000124 skips vtoc_buffer_meters 000125 steps vtoc_buffer_meters 000126 vtoc_buf_n_buffers vtoc_buffer_meters 000127 vtoc_buf_n_buckets vtoc_buffer_meters 000146 pct_calls PRINT_CALL 000156 pct_steps PRINT_STEPS THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 r_ne_as call_ext_out_desc call_ext_out return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr ioa_ metering_util_$define_regions metering_util_$fill_buffers metering_util_$reset THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 16 000255 79 000263 80 000273 82 000275 83 000312 86 000313 88 000315 89 000325 90 000342 92 000353 94 000366 97 000402 98 000426 100 000427 102 000431 107 000437 109 000442 111 000445 112 000515 114 000517 115 000543 117 000544 123 000547 124 000602 126 000604 127 000631 130 000632 134 000652 137 000654 138 000663 140 000677 142 000720 144 000740 146 000762 148 001003 150 001023 153 001053 156 001100 158 001114 159 001124 163 001150 164 001156 165 001165 167 001204 169 001223 172 001242 174 001256 175 001273 176 001310 177 001325 183 001340 185 001342 186 001353 188 001355 189 001402 194 001403 198 001404 203 001406 205 001413 211 001421 221 001437 223 001445 225 001452 228 001461 231 001550 235 001551 245 001567 247 001575 249 001602 252 001611 255 001675 259 001676 265 001707 267 001753 ----------------------------------------------------------- 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