COMPILATION LISTING OF SEGMENT reset_use_totals Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/09/85 1313.8 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* format: style3 */ 12 reset_use_totals: 13 procedure options (variable); 14 15 /* Modified June 1981 by C. Hornig to be compatible with new use_totals include file. 16* Modified August 1981 by T. Casey to set rate structure number for bin. 17* Modified 1984-08-31 by BIM for V3 use_totals. 18**/ 19 20 /* RESET_USE_TOTALS - reset month-to-date usage totals */ 21 22 dcl (dn, xdn) char (168), 23 (en, xen) char (32), 24 line char (120), 25 pj char (12), 26 cc char (24), 27 (i, j, k, l, m, n, mm) 28 fixed bin, 29 tt char (8), 30 bitc fixed bin (24), 31 ap ptr, 32 al fixed bin (21), 33 ec fixed bin (35), 34 p ptr; 35 36 dcl rsn fixed bin; /* rate structure number */ 37 dcl rs_count fixed bin; /* number of rate structures at site */ 38 dcl created bit (1) aligned; 39 dcl arg_count fixed bin; 40 dcl arg char (al) based (ap); 41 42 dcl bcs char (131071) based (p); 43 44 dcl NL char (1) int static init (" 45 "); 46 47 dcl (addr, null, substr, index, size, length, bit, fixed, divide, mod, abs) 48 builtin; 49 50 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 51 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 52 dcl expand_pathname_$add_suffix 53 entry (character (*), character (*), character (*), character (*), fixed binary (35)); 54 dcl com_err_$suppress_name 55 entry () options (variable); 56 dcl com_err_ entry options (variable); 57 58 dcl initiate_file_$create 59 entry (character (*), character (*), bit (*), pointer, bit (1) aligned, fixed binary (24), 60 fixed binary (35)); 61 dcl initiate_file_ entry (character (*), character (*), bit (*), pointer, fixed binary (24), fixed binary (35)) 62 ; 63 dcl terminate_file_ entry (pointer, fixed binary (24), bit (*), fixed binary (35)); 64 dcl pathname_ entry (character (*), character (*)) returns (character (168)); 65 66 dcl search_sat_$rs_number 67 entry (char (*), fixed bin, fixed bin (35)); 68 dcl search_sat_$clean_up 69 entry; 70 dcl system_info_$max_rs_number 71 entry (fixed bin); 72 73 dcl cleanup condition; 74 dcl ME char (32) init ("reset_use_totals") int static options (constant); 75 1 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 1 2* 1 3* Values for the "access mode" argument so often used in hardcore 1 4* James R. Davis 26 Jan 81 MCR 4844 1 5* Added constants for SM access 4/28/82 Jay Pattin 1 6* Added text strings 03/19/85 Chris Jones 1 7**/ 1 8 1 9 1 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 1 11 dcl ( 1 12 N_ACCESS init ("000"b), 1 13 R_ACCESS init ("100"b), 1 14 E_ACCESS init ("010"b), 1 15 W_ACCESS init ("001"b), 1 16 RE_ACCESS init ("110"b), 1 17 REW_ACCESS init ("111"b), 1 18 RW_ACCESS init ("101"b), 1 19 S_ACCESS init ("100"b), 1 20 M_ACCESS init ("010"b), 1 21 A_ACCESS init ("001"b), 1 22 SA_ACCESS init ("101"b), 1 23 SM_ACCESS init ("110"b), 1 24 SMA_ACCESS init ("111"b) 1 25 ) bit (3) internal static options (constant); 1 26 1 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 1 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 1 29 1 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 1 31 static options (constant); 1 32 1 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 1 34 static options (constant); 1 35 1 36 dcl ( 1 37 N_ACCESS_BIN init (00000b), 1 38 R_ACCESS_BIN init (01000b), 1 39 E_ACCESS_BIN init (00100b), 1 40 W_ACCESS_BIN init (00010b), 1 41 RW_ACCESS_BIN init (01010b), 1 42 RE_ACCESS_BIN init (01100b), 1 43 REW_ACCESS_BIN init (01110b), 1 44 S_ACCESS_BIN init (01000b), 1 45 M_ACCESS_BIN init (00010b), 1 46 A_ACCESS_BIN init (00001b), 1 47 SA_ACCESS_BIN init (01001b), 1 48 SM_ACCESS_BIN init (01010b), 1 49 SMA_ACCESS_BIN init (01011b) 1 50 ) fixed bin (5) internal static options (constant); 1 51 1 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 76 2 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 2 2 /* format: style2,^inddcls,idind32 */ 2 3 2 4 declare 1 terminate_file_switches based, 2 5 2 truncate bit (1) unaligned, 2 6 2 set_bc bit (1) unaligned, 2 7 2 terminate bit (1) unaligned, 2 8 2 force_write bit (1) unaligned, 2 9 2 delete bit (1) unaligned; 2 10 2 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 2 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 2 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 2 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 2 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 2 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 2 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 2 18 2 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 77 3 1 /* BEGIN INCLUDE FILE ... use_totals.incl.pl1 */ 3 2 /* format: style3 */ 3 3 3 4 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures. (UNCA) 3 5* Modified May 1980 by R. McDonald to include printer page charge, replaces cpu time in iod. (UNCA) 3 6* Modified July 1981 by C. Hornig to eliminate rs_number and master_proj from bin, 3 7* - split it into sub-structures for convenience in conversion, 3 8* - and make version a character string. 3 9* Modified August 1981 by T. Casey to put back rs_number in bin. 3 10* Modified 1984-08-31 BIM for half-year billing cycles, which is all 3 11* that will fit in a segment. 3 12**/ 3 13 3 14 dcl use_totals_ptr pointer; 3 15 dcl 1 use_totals based (use_totals_ptr) aligned, 3 16 2 meters, 3 17 3 generated fixed bin (71), /* Time usage data generated. */ 3 18 3 period_begin fixed bin (71), /* Earliest time covered */ 3 19 3 period_end fixed bin (71), /* Latest time */ 3 20 3 disk_available 3 21 fixed bin (35), /* Total disk capacity in MULT partition. */ 3 22 3 disk_left fixed bin (35), /* Total disk unused.. */ 3 23 3 version char (8), /* revision of this include file */ 3 24 3 pad1 (6) fixed bin, /* Gross system statistics, determined from answering service meters. */ 3 25 3 uptime fixed bin (71), /* Time system has been on the air. */ 3 26 3 sys_starts fixed bin, /* Number of bootloads */ 3 27 3 sys_crash fixed bin, /* Number of crashes */ 3 28 3 cpu_avail fixed bin (71), /* CPU time available. >= uptime by two-cpu time */ 3 29 3 idle fixed bin (71), /* Total idle for all causes */ 3 30 3 initializer fixed bin (71), /* Initializer usage */ 3 31 3 total_cpu fixed bin (71), /* Total VIRTUAL cpu from bins - so get overhead */ 3 32 3 zidle fixed bin (71), /* Total zero idle. */ 3 33 3 mpidle fixed bin (71), /* Total MP idle */ 3 34 3 pad2 (6) fixed bin (71), /* variables used while reading answering service meters */ 3 35 3 zidle_since_boot 3 36 fixed bin (71), /* Zero idle since boot */ 3 37 3 mpidle_since_boot 3 38 fixed bin (71), /* MP idle since boot */ 3 39 3 time_last_boot 3 40 fixed bin (71), /* Time of last bootload */ 3 41 3 time_last_sample 3 42 fixed bin (71), /* Time of last 15-minute sample */ 3 43 3 uptime_since_boot 3 44 fixed bin (71), /* Time system on air since last boot */ 3 45 3 cpu_avail_since_boot 3 46 fixed bin (71), /* CPU available since boot */ 3 47 3 idle_since_boot 3 48 fixed bin (71), /* Idle time since boot */ 3 49 3 last_sysid char (8), /* Current system ID */ 3 50 3 n_users_on fixed bin, /* Users on at last sample */ 3 51 3 n_stat_gaps fixed bin, /* Number of times we missed getting all data */ 3 52 /* Statistics by day, for black and white chart. */ 3 53 2 b_and_w, 3 54 3 origin fixed bin (71), /* Base time for slot 1 */ 3 55 3 max_day_log fixed bin, /* Highest used day. */ 3 56 3 max_qhour fixed bin, /* Highest quarter in highest day */ 3 57 3 daylog (190), /* array of days. */ 3 58 4 qh (96), /* Quarter-hour within the day. */ 3 59 5 time fixed bin (71), /* Time of sample. */ 3 60 5 sysid char (8), /* System ID */ 3 61 5 dump_number 3 62 fixed (18) unsigned unaligned, 3 63 5 flags unaligned, 3 64 6 shutdown 3 65 bit (1), 3 66 6 pad bit (17), 3 67 5 cpu fixed bin (5) unsigned unaligned, 3 68 5 nunits fixed bin (13) unsigned unaligned, 3 69 /* Number of load units */ 3 70 5 kmem fixed bin (18) unsigned unaligned, 3 71 5 starttime fixed bin (71), /* Boot time */ 3 72 5 crashtime fixed bin (71), /* Time of crash */ 3 73 /**** User-classification info, loaded once a month. defines usage bins. bin 1 is always "other" */ 3 74 2 bins, 3 75 3 ntypes fixed bin, /* Number of valid bins */ 3 76 3 n_select fixed bin, /* Number of selectors */ 3 77 3 bin_data (3258) aligned, 3 78 4 select_proj char (12) aligned, /* Project ID - same number as in sat */ 3 79 4 select_ut fixed bin, /* Bin number for the project */ 3 80 /* Usage bins for each usage type. Determined from summarizing the PDT's. 3 81* * Note - bin "use_totals.ut (use_totals.ntypes+1)" is a zeroed bin which can be used to represent non-existent bins. 3 82* * e.g. Last month's use_totals seg has a bin that has been removed from this month's use_totals seg. 3 83**/ 3 84 3 ut (301), /* array usage by project type */ 3 85 4 utype char (24), /* Label for usage bin */ 3 86 4 dollar_charge 3 87 float bin, /* total dollars spent this month */ 3 88 4 logins fixed bin, /* number of logins */ 3 89 4 crashes fixed bin, /* sessions abnormally terminated */ 3 90 4 nproj fixed bin, /* projects in this class */ 3 91 4 nusers fixed bin, /* users in this class */ 3 92 4 disk_psec fixed bin (71), /* Total page-seconds */ 3 93 4 disk_quota fixed bin (35), /* Total quota */ 3 94 4 disk_usage fixed bin (35), /* Disk occupancy */ 3 95 4 misc float bin, /* Miscellaneous charges */ 3 96 4 flag char (4), /* paying categories = "$" */ 3 97 4 flag1 char (4), /* used to control reporting of categories */ 3 98 4 pad1a (3) fixed bin (35), 3 99 4 rs_number fixed bin, /* rate structure number for all projects in this bin */ 3 100 4 pad1b (14) fixed bin (35), 3 101 4 interactive (0:7), /* interactive use, shifts 0-7 */ 3 102 5 charge float bin, /* total dollar charge this shift */ 3 103 5 pad1 fixed bin, 3 104 5 cpu fixed bin (71), /* cpu usage in microseconds */ 3 105 5 core fixed bin (71), /* core demand in page-microseconds */ 3 106 5 connect fixed bin (71), /* total console time in microseconds */ 3 107 5 io_ops fixed bin (71), /* total terminal i/o ops */ 3 108 4 absentee (4), /* absentee use, queues 1-4 */ 3 109 5 charge float bin, /* dollar charge this queue */ 3 110 5 jobs fixed bin, /* number of jobs submitted */ 3 111 5 cpu fixed bin (71), /* total cpu time in microseconds */ 3 112 5 memory fixed bin (71), /* total memory usage in mu */ 3 113 4 iod (4), /* io daemon use, queues 1-4 */ 3 114 5 charge float bin, /* dollar charge this queue */ 3 115 5 pieces fixed bin, /* pieces of output requested */ 3 116 5 pad2 fixed bin, 3 117 5 pages fixed bin, /* number of pages output */ 3 118 5 lines fixed bin (71), /* total record count of output */ 3 119 4 devices (16) float bin; /* device charges */ 3 120 3 121 dcl USE_TOTALS_VERSION_2 3 122 char (8) static options (constant) initial ("usetot_2"); 3 123 dcl USE_TOTALS_VERSION_3 3 124 char (8) static options (constant) initial ("usetot_3"); 3 125 3 126 /* END INCLUDE FILE ... use_totals.incl.pl1 */ 78 79 80 81 82 call cu_$arg_count (arg_count, ec); 83 if ec ^= 0 84 then do; 85 call com_err_ (ec, ME); 86 return; 87 end; 88 if arg_count ^= 2 89 then do; 90 call com_err_$suppress_name (0, ME, "Usage: reset_use_totals USE_TOTALS CONTROL_FILE"); 91 return; 92 end; 93 94 created = "0"b; 95 use_totals_ptr, p = null (); 96 on cleanup call clean_up; 97 98 call cu_$arg_ptr (1, ap, al, (0)); 99 call expand_pathname_$add_suffix (arg, "use_totals", xdn, xen, ec); 100 if ec ^= 0 101 then do; 102 call com_err_ (ec, ME, "Invalid use_totals pathname ^a.", arg); 103 return; 104 end; 105 106 call initiate_file_$create (xdn, xen, RW_ACCESS, use_totals_ptr, created, (0), ec); 107 if ec ^= 0 108 then do; 109 call com_err_ (ec, ME, "^a", pathname_ (xdn, xen)); 110 return; 111 end; 112 113 call cu_$arg_ptr (2, ap, al, (0)); 114 call expand_pathname_$add_suffix (arg, "control", dn, en, ec); 115 if ec ^= 0 116 then do; 117 call com_err_ (ec, ME, "Invalid control file pathname ^a.", arg); 118 go to ERROR; 119 end; 120 call initiate_file_ (dn, en, R_ACCESS, p, bitc, ec); 121 if ec ^= 0 122 then do; 123 call com_err_ (ec, ME, "^a", pathname_ (dn, en)); 124 go to ERROR; 125 end; 126 127 n = divide (bitc, 9, 17, 0); /* char count */ 128 129 call system_info_$max_rs_number (rs_count); /* see if site has multiple rate structures */ 130 131 do j = 1 to hbound (use_totals.bin_data, 1); 132 use_totals.bin_data (j).select_proj = ""; 133 use_totals.bin_data (j).select_ut = 0; 134 end; 135 do j = lbound (use_totals.ut, 1) to hbound (use_totals.ut, 1); 136 use_totals.ut (j).dollar_charge = 0e0; 137 use_totals.ut (j).logins = 0; 138 use_totals.ut (j).crashes = 0; 139 use_totals.ut (j).nproj = 0; 140 use_totals.ut (j).nusers = 0; 141 use_totals.ut (j).disk_psec = 0; 142 use_totals.ut (j).disk_quota = 0; 143 use_totals.ut (j).disk_usage = 0; 144 use_totals.ut (j).misc = 0e0; 145 use_totals.ut (j).flag, use_totals.ut (j).flag1 = ""; 146 do i = 0 to 7; 147 use_totals.ut (j).interactive.charge (i) = 0e0; 148 use_totals.ut (j).interactive.cpu (i) = 0; 149 use_totals.ut (j).interactive.core (i) = 0; 150 use_totals.ut (j).interactive.connect (i) = 0; 151 use_totals.ut (j).interactive.io_ops (i) = 0; 152 end; 153 do i = 1 to 4; 154 use_totals.ut (j).absentee.charge (i) = 0e0; 155 use_totals.ut (j).absentee.jobs (i) = 0; 156 use_totals.ut (j).absentee.cpu (i) = 0; 157 use_totals.ut (j).absentee.memory (i) = 0; 158 end; 159 do i = 1 to 4; 160 use_totals.ut (j).iod.charge (i) = 0e0; 161 use_totals.ut (j).iod.pieces (i) = 0; 162 use_totals.ut (j).iod.pages (i) = 0; 163 use_totals.ut (j).iod.lines (i) = 0; 164 end; 165 do i = 1 to 16; 166 use_totals.ut (j).devices (i) = 0e0; 167 end; 168 end; 169 170 use_totals.version = USE_TOTALS_VERSION_3; 171 generated = clock (); 172 if use_totals.period_end = 0 173 then use_totals.period_begin = clock (); 174 else use_totals.period_begin = use_totals.period_end; 175 use_totals.period_end = use_totals.period_begin; 176 177 use_totals.uptime = 0; 178 use_totals.sys_starts = 0; 179 use_totals.sys_crash = 0; 180 use_totals.cpu_avail = 0; 181 use_totals.idle = 0; 182 use_totals.initializer = 0; 183 use_totals.total_cpu = 0; 184 use_totals.zidle = 0; 185 use_totals.mpidle = 0; 186 187 use_totals.ntypes = 1; /* this will cause us to skip slot one */ 188 /* unless there is an explicit "other" line in the control file */ 189 use_totals.n_select = 0; 190 use_totals.utype (1) = "all other users"; /* this is the default for 1 */ 191 use_totals.flag (1) = "$"; 192 use_totals.origin = 0; 193 use_totals.max_day_log = 0; 194 use_totals.max_qhour = 0; 195 begin; 196 declare 1 a_quarter_hour aligned like use_totals.daylog.qh; 197 a_quarter_hour.time = 0; 198 a_quarter_hour.sysid = ""; 199 a_quarter_hour.dump_number = 0; 200 a_quarter_hour.shutdown = "0"b; 201 a_quarter_hour.nunits = 0; 202 a_quarter_hour.cpu = 0; 203 a_quarter_hour.kmem = 0; 204 use_totals.daylog (*).qh (*) = a_quarter_hour; 205 end; 206 207 k = 1; 208 209 /**** LINE :== NL | NL 210* :== "*" | "*" 211* :== , , 212* :== , 213**/ 214 215 scan: 216 do i = k to n; 217 if substr (bcs, i, 1) = NL 218 then do; 219 line = substr (bcs, k, i - k); 220 if substr (line, 1, 1) = "*" 221 then go to scan1; 222 m = index (line, ","); 223 pj = substr (line, 1, m - 1); 224 tt = ""; 225 mm = index (substr (line, m + 1), ","); 226 if mm ^= 0 227 then do; 228 cc = substr (line, m + 1, mm - 1); 229 tt = substr (line, m + mm + 1); 230 end; 231 else do; 232 cc = substr (line, m + 1); 233 tt = " "; 234 end; 235 if pj = "other" 236 then do; 237 use_totals.ut (1).utype = cc; 238 use_totals.ut (1).flag = tt; 239 go to scan1; 240 end; 241 do l = 1 to use_totals.ntypes; 242 if cc = use_totals.ut (l).utype 243 then go to scan2; 244 end; 245 use_totals.ntypes, l = use_totals.ntypes + 1; 246 247 /* Set rate structure of the new bin to the rate structure of the first project that is put into it */ 248 249 rsn = 0; /* default rate structure number */ 250 if rs_count > 0 251 then do; /* only if site has multiple rate structures */ 252 call search_sat_$rs_number ((pj), rsn, ec); 253 /* get rate structure number of this project */ 254 if ec ^= 0 255 then rsn = 0; /* be quiet about any problems; use default */ 256 end; 257 use_totals.ut (l).rs_number = rsn; /* set bin's rate structure number */ 258 259 use_totals.ut (l).utype = cc; 260 use_totals.ut (l).flag = tt; 261 scan2: 262 use_totals.n_select = use_totals.n_select + 1; 263 use_totals.bin_data (n_select).select_proj = pj; 264 use_totals.bin_data (n_select).select_ut = l; 265 scan1: 266 k = i + 1; 267 go to scan; 268 end; 269 end; 270 271 call terminate_file_ (p, (0), TERM_FILE_TERM, (0)); 272 call terminate_file_ (use_totals_ptr, 36 * size (use_totals), TERM_FILE_TRUNC_BC_TERM, (0)); 273 if rs_count > 0 274 then call search_sat_$clean_up; /* tidy up */ 275 return; 276 277 ERROR: 278 call clean_up; 279 return; 280 281 clean_up: 282 procedure; 283 284 if use_totals_ptr ^= null () 285 then if created 286 then call terminate_file_ (use_totals_ptr, (0), TERM_FILE_TERM | TERM_FILE_DELETE, (0)); 287 else call terminate_file_ (use_totals_ptr, (0), TERM_FILE_TERM, (0)); 288 if p ^= null () 289 then call terminate_file_ (use_totals_ptr, (0), TERM_FILE_TERM, (0)); 290 return; 291 end clean_up; 292 293 end reset_use_totals; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/08/85 1133.5 reset_use_totals.pl1 >special_ldd>online>41-15-04/10/85>reset_use_totals.pl1 76 1 04/09/85 1109.7 access_mode_values.incl.pl1 >special_ldd>online>41-15-04/10/85>access_mode_values.incl.pl1 77 2 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 78 3 12/07/84 1102.2 use_totals.incl.pl1 >ldd>include>use_totals.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. ME 000005 constant char(32) initial unaligned dcl 74 set ref 85* 90* 102* 109* 117* 123* NL 002014 constant char(1) initial unaligned dcl 44 ref 217 RW_ACCESS 000004 constant bit(3) initial unaligned dcl 1-11 set ref 106* R_ACCESS 000022 constant bit(3) initial unaligned dcl 1-11 set ref 120* TERM_FILE_DELETE constant bit(5) initial unaligned dcl 2-17 ref 284 TERM_FILE_TERM 000003 constant bit(3) initial unaligned dcl 2-14 set ref 271* 284 287* 288* TERM_FILE_TRUNC_BC_TERM 000002 constant bit(3) initial unaligned dcl 2-15 set ref 272* USE_TOTALS_VERSION_3 000000 constant char(8) initial unaligned dcl 3-123 ref 170 a_quarter_hour 000352 automatic structure level 1 dcl 196 set ref 204 absentee 576042 based structure array level 4 dcl 3-15 al 000330 automatic fixed bin(21,0) dcl 22 set ref 98* 99 99 102 102 113* 114 114 117 117 ap 000326 automatic pointer dcl 22 set ref 98* 99 102 113* 114 117 arg based char unaligned dcl 40 set ref 99* 102* 114* 117* arg_count 000337 automatic fixed bin(17,0) dcl 39 set ref 82* 88 b_and_w 76 based structure level 2 dcl 3-15 bcs based char(131071) unaligned dcl 42 ref 217 219 bin_data 544304 based structure array level 3 dcl 3-15 set ref 131 bins 544302 based structure level 2 dcl 3-15 bitc 000324 automatic fixed bin(24,0) dcl 22 set ref 120* 127 cc 000305 automatic char(24) unaligned dcl 22 set ref 228* 232* 237 242 259 charge 575722 based float bin(27) array level 5 in structure "use_totals" dcl 3-15 in procedure "reset_use_totals" set ref 147* charge 576072 based float bin(27) array level 5 in structure "use_totals" dcl 3-15 in procedure "reset_use_totals" set ref 160* charge 576042 based float bin(27) array level 5 in structure "use_totals" dcl 3-15 in procedure "reset_use_totals" set ref 154* cleanup 000340 stack reference condition dcl 73 ref 96 com_err_ 000020 constant entry external dcl 56 ref 85 102 109 117 123 com_err_$suppress_name 000016 constant entry external dcl 54 ref 90 connect 575730 based fixed bin(71,0) array level 5 dcl 3-15 set ref 150* core 575726 based fixed bin(71,0) array level 5 dcl 3-15 set ref 149* cpu 575724 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 3-15 in procedure "reset_use_totals" set ref 148* cpu 576044 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 3-15 in procedure "reset_use_totals" set ref 156* cpu_avail 24 based fixed bin(71,0) level 3 dcl 3-15 set ref 180* crashes 575664 based fixed bin(17,0) array level 4 dcl 3-15 set ref 138* created 000336 automatic bit(1) dcl 38 set ref 94* 106* 284 cu_$arg_count 000010 constant entry external dcl 50 ref 82 cu_$arg_ptr 000012 constant entry external dcl 51 ref 98 113 daylog 102 based structure array level 3 dcl 3-15 devices 576122 based float bin(27) array level 4 dcl 3-15 set ref 166* disk_psec 575670 based fixed bin(71,0) array level 4 dcl 3-15 set ref 141* disk_quota 575672 based fixed bin(35,0) array level 4 dcl 3-15 set ref 142* disk_usage 575673 based fixed bin(35,0) array level 4 dcl 3-15 set ref 143* divide builtin function dcl 47 ref 127 dn 000100 automatic char(168) unaligned dcl 22 set ref 114* 120* 123* 123* dollar_charge 575662 based float bin(27) array level 4 dcl 3-15 set ref 136* ec 000331 automatic fixed bin(35,0) dcl 22 set ref 82* 83 85* 99* 100 102* 106* 107 109* 114* 115 117* 120* 121 123* 252* 254 en 000224 automatic char(32) unaligned dcl 22 set ref 114* 120* 123* 123* expand_pathname_$add_suffix 000014 constant entry external dcl 52 ref 99 114 flag 575675 based char(4) array level 4 dcl 3-15 set ref 145* 191* 238* 260* flag1 575676 based char(4) array level 4 dcl 3-15 set ref 145* generated based fixed bin(71,0) level 3 dcl 3-15 set ref 171* i 000313 automatic fixed bin(17,0) dcl 22 set ref 146* 147 148 149 150 151* 153* 154 155 156 157* 159* 160 161 162 163* 165* 166* 215* 217 219 265* idle 26 based fixed bin(71,0) level 3 dcl 3-15 set ref 181* index builtin function dcl 47 ref 222 225 initializer 30 based fixed bin(71,0) level 3 dcl 3-15 set ref 182* initiate_file_ 000024 constant entry external dcl 61 ref 120 initiate_file_$create 000022 constant entry external dcl 58 ref 106 interactive 575722 based structure array level 4 dcl 3-15 io_ops 575732 based fixed bin(71,0) array level 5 dcl 3-15 set ref 151* iod 576072 based structure array level 4 dcl 3-15 j 000314 automatic fixed bin(17,0) dcl 22 set ref 131* 132 133* 135* 136 137 138 139 140 141 142 143 144 145 145 147 148 149 150 151 154 155 156 157 160 161 162 163 166* jobs 576043 based fixed bin(17,0) array level 5 dcl 3-15 set ref 155* k 000315 automatic fixed bin(17,0) dcl 22 set ref 207* 215 219 219 265* l 000316 automatic fixed bin(17,0) dcl 22 set ref 241* 242* 245* 257 259 260 264 line 000244 automatic char(120) unaligned dcl 22 set ref 219* 220 222 223 225 228 229 232 lines 576076 based fixed bin(71,0) array level 5 dcl 3-15 set ref 163* logins 575663 based fixed bin(17,0) array level 4 dcl 3-15 set ref 137* m 000317 automatic fixed bin(17,0) dcl 22 set ref 222* 223 225 228 229 232 max_day_log 100 based fixed bin(17,0) level 3 dcl 3-15 set ref 193* max_qhour 101 based fixed bin(17,0) level 3 dcl 3-15 set ref 194* memory 576046 based fixed bin(71,0) array level 5 dcl 3-15 set ref 157* meters based structure level 2 dcl 3-15 misc 575674 based float bin(27) array level 4 dcl 3-15 set ref 144* mm 000321 automatic fixed bin(17,0) dcl 22 set ref 225* 226 228 229 mpidle 36 based fixed bin(71,0) level 3 dcl 3-15 set ref 185* n 000320 automatic fixed bin(17,0) dcl 22 set ref 127* 215 n_select 544303 based fixed bin(17,0) level 3 dcl 3-15 set ref 189* 261* 261 263 264 nproj 575665 based fixed bin(17,0) array level 4 dcl 3-15 set ref 139* ntypes 544302 based fixed bin(17,0) level 3 dcl 3-15 set ref 187* 241 245 245* null builtin function dcl 47 ref 95 284 288 nusers 575666 based fixed bin(17,0) array level 4 dcl 3-15 set ref 140* origin 76 based fixed bin(71,0) level 3 dcl 3-15 set ref 192* p 000332 automatic pointer dcl 22 set ref 95* 120* 217 219 271* 288 pages 576075 based fixed bin(17,0) array level 5 dcl 3-15 set ref 162* pathname_ 000030 constant entry external dcl 64 ref 109 109 123 123 period_begin 2 based fixed bin(71,0) level 3 dcl 3-15 set ref 172* 174* 175 period_end 4 based fixed bin(71,0) level 3 dcl 3-15 set ref 172 174 175* pieces 576073 based fixed bin(17,0) array level 5 dcl 3-15 set ref 161* pj 000302 automatic char(12) unaligned dcl 22 set ref 223* 235 252 263 qh 102 based structure array level 4 dcl 3-15 set ref 204* rs_count 000335 automatic fixed bin(17,0) dcl 37 set ref 129* 250 273 rs_number 575702 based fixed bin(17,0) array level 4 dcl 3-15 set ref 257* rsn 000334 automatic fixed bin(17,0) dcl 36 set ref 249* 252* 254* 257 search_sat_$clean_up 000034 constant entry external dcl 68 ref 273 search_sat_$rs_number 000032 constant entry external dcl 66 ref 252 select_proj 544304 based char(12) array level 4 dcl 3-15 set ref 132* 263* select_ut 544307 based fixed bin(17,0) array level 4 dcl 3-15 set ref 133* 264* size builtin function dcl 47 ref 272 substr builtin function dcl 47 ref 217 219 220 223 225 228 229 232 sys_crash 23 based fixed bin(17,0) level 3 dcl 3-15 set ref 179* sys_starts 22 based fixed bin(17,0) level 3 dcl 3-15 set ref 178* system_info_$max_rs_number 000036 constant entry external dcl 70 ref 129 terminate_file_ 000026 constant entry external dcl 63 ref 271 272 284 287 288 total_cpu 32 based fixed bin(71,0) level 3 dcl 3-15 set ref 183* tt 000322 automatic char(8) unaligned dcl 22 set ref 224* 229* 233* 238 260 uptime 20 based fixed bin(71,0) level 3 dcl 3-15 set ref 177* use_totals based structure level 1 dcl 3-15 set ref 272 use_totals_ptr 000346 automatic pointer dcl 3-14 set ref 95* 106* 131 132 133 135 135 136 137 138 139 140 141 142 143 144 145 145 147 148 149 150 151 154 155 156 157 160 161 162 163 166 170 171 172 172 174 174 175 175 177 178 179 180 181 182 183 184 185 187 189 190 191 192 193 194 204 237 238 241 242 245 245 257 259 260 261 261 263 263 264 264 272* 272 284 284* 287* 288* ut 575654 based structure array level 3 dcl 3-15 set ref 135 135 utype 575654 based char(24) array level 4 dcl 3-15 set ref 190* 237* 242 259* version 10 based char(8) level 3 dcl 3-15 set ref 170* xdn 000152 automatic char(168) unaligned dcl 22 set ref 99* 106* 109* 109* xen 000234 automatic char(32) unaligned dcl 22 set ref 99* 106* 109* 109* zidle 34 based fixed bin(71,0) level 3 dcl 3-15 set ref 184* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 1-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-33 E_ACCESS internal static bit(3) initial unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 M_ACCESS internal static bit(3) initial unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 REW_ACCESS internal static bit(3) initial unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial unaligned dcl 1-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 TERM_FILE_BC internal static bit(2) initial unaligned dcl 2-12 TERM_FILE_FORCE_WRITE internal static bit(4) initial unaligned dcl 2-16 TERM_FILE_TRUNC internal static bit(1) initial unaligned dcl 2-11 TERM_FILE_TRUNC_BC internal static bit(2) initial unaligned dcl 2-13 USE_TOTALS_VERSION_2 internal static char(8) initial unaligned dcl 3-121 W_ACCESS internal static bit(3) initial unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 abs builtin function dcl 47 addr builtin function dcl 47 bit builtin function dcl 47 fixed builtin function dcl 47 length builtin function dcl 47 mod builtin function dcl 47 terminate_file_switches based structure level 1 packed unaligned dcl 2-4 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR 001653 constant label dcl 277 ref 118 124 clean_up 001661 constant entry internal dcl 281 ref 96 277 reset_use_totals 000125 constant entry external dcl 12 scan 001311 constant label dcl 215 ref 267 scan1 001555 constant label dcl 265 ref 220 239 scan2 001536 constant label dcl 261 ref 242 NAMES DECLARED BY CONTEXT OR IMPLICATION. clock builtin function ref 171 172 hbound builtin function ref 131 135 lbound builtin function ref 135 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2204 2244 2015 2214 Length 2522 2015 40 242 166 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME reset_use_totals 387 external procedure is an external procedure. on unit on line 96 64 on unit begin block on line 195 begin block shares stack frame of external procedure reset_use_totals. clean_up 86 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME reset_use_totals 000100 dn reset_use_totals 000152 xdn reset_use_totals 000224 en reset_use_totals 000234 xen reset_use_totals 000244 line reset_use_totals 000302 pj reset_use_totals 000305 cc reset_use_totals 000313 i reset_use_totals 000314 j reset_use_totals 000315 k reset_use_totals 000316 l reset_use_totals 000317 m reset_use_totals 000320 n reset_use_totals 000321 mm reset_use_totals 000322 tt reset_use_totals 000324 bitc reset_use_totals 000326 ap reset_use_totals 000330 al reset_use_totals 000331 ec reset_use_totals 000332 p reset_use_totals 000334 rsn reset_use_totals 000335 rs_count reset_use_totals 000336 created reset_use_totals 000337 arg_count reset_use_totals 000346 use_totals_ptr reset_use_totals 000352 a_quarter_hour begin block on line 195 THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this call_int_other return enable ext_entry int_entry clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ com_err_$suppress_name cu_$arg_count cu_$arg_ptr expand_pathname_$add_suffix initiate_file_ initiate_file_$create pathname_ search_sat_$clean_up search_sat_$rs_number system_info_$max_rs_number terminate_file_ NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000124 82 000132 83 000142 85 000144 86 000161 88 000162 90 000165 91 000212 94 000213 95 000214 96 000217 98 000241 99 000261 100 000321 102 000323 103 000356 106 000357 107 000421 109 000423 110 000472 113 000473 114 000513 115 000551 117 000553 118 000606 120 000607 121 000644 123 000646 124 000715 127 000716 129 000721 131 000730 132 000735 133 000744 134 000746 135 000750 136 000755 137 000764 138 000765 139 000766 140 000767 141 000770 142 000772 143 000773 144 000774 145 000776 146 001001 147 001005 148 001021 149 001023 150 001024 151 001025 152 001026 153 001030 154 001035 155 001051 156 001052 157 001054 158 001055 159 001057 160 001065 161 001101 162 001102 163 001103 164 001105 165 001107 166 001115 167 001126 168 001130 170 001132 171 001136 172 001140 174 001147 175 001150 177 001152 178 001154 179 001155 180 001156 181 001157 182 001160 183 001161 184 001162 185 001163 187 001164 189 001167 190 001170 191 001174 192 001176 193 001200 194 001201 197 001202 198 001204 199 001206 200 001210 201 001212 202 001216 203 001222 204 001224 207 001307 215 001311 217 001321 219 001326 220 001333 222 001337 223 001350 224 001354 225 001356 226 001373 228 001374 229 001400 230 001411 232 001412 235 001416 237 001422 238 001430 239 001432 241 001433 242 001445 244 001455 245 001457 249 001465 250 001466 252 001470 254 001515 257 001520 259 001530 260 001534 261 001536 263 001541 264 001553 265 001555 267 001560 269 001561 271 001563 272 001612 273 001643 275 001652 277 001653 279 001657 281 001660 284 001666 287 001730 288 001756 290 002012 ----------------------------------------------------------- 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