COMPILATION LISTING OF SEGMENT system_daily_report Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: CGI Compiled on: 2000-04-17_1929.08_Mon_mdt 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 /* format: style3 */ 11 12 system_daily_report: 13 procedure options (variable); 14 15 /* SYSTEM_DAILY_REPORT - Generate Multics system usage statistics. */ 16 17 /* Modified 1984-08-31 BIM for V3 usage totals. */ 18 19 dcl dn char (168), /* Directory name */ 20 en char (32), /* Entry name */ 21 datstr char (24), /* Formatted date of start */ 22 datstr1 char (24), /* Formatted date end */ 23 (i, j, k, l, m, n) fixed bin, /* indices */ 24 conn fixed bin (71), /* total connect time in microseconds today */ 25 nlogins fixed bin, /* # sessions today */ 26 ncshd fixed bin, /* # crashed sessions today */ 27 nabs fixed bin, /* # abs jobs today */ 28 dollar_delta float bin, /* charge today */ 29 (fract, fract1) float bin, /* used in percent calculation */ 30 (tnlogins, tncsh, tnabs, tqta, tusage, tnproj, tnusers) 31 fixed bin init (0), 32 tconn fixed bin (71) init (0), 33 qlim fixed bin, 34 (dayunits, munits) fixed bin, 35 (dayconfigs, mconfigs) 36 fixed bin, 37 (xcpu, xmem, xbulk) fixed bin, 38 ztime fixed bin (71), 39 dummy char (10), /* dummy title */ 40 comp char (120), /* company title */ 41 dept char (120), /* department title */ 42 ap ptr, /* ptr to arg */ 43 al fixed bin (21), /* lth of arg */ 44 bchr char (al) unaligned based (ap), 45 /* access struc for arg */ 46 ec fixed bin (35), /* err code */ 47 xtotp ptr; /* ptr to yesterday's data */ 48 dcl arg_count fixed bin; 49 50 dcl heading char (120) int static 51 init ( 52 "Group^26xMonth^7xToday Logins Crashed Abs Jobs Connect^4xQuota^5xUsed Projects Users^/" 53 ); 54 55 dcl (addr, null, substr, index, unspec, length, bit, fixed, divide, mod, abs) 56 builtin; 57 58 dcl error_table_$unimplemented_version 59 fixed bin (35) ext static; 60 61 dcl system_info_$titles entry (char (*), char (*), char (*), char (*)); 62 dcl pathname_ entry (character (*), character (*)) returns (character (168)); 63 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 64 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 65 dcl expand_pathname_$add_suffix 66 entry (character (*), character (*), character (*), character (*), fixed binary (35)); 67 dcl ioa_ entry options (variable); 68 dcl ioa_$rsnnl entry options (variable); 69 dcl date_time_ entry (fixed bin (71), char (*)); 70 dcl com_err_$suppress_name 71 entry () options (variable); 72 dcl com_err_ entry options (variable); 73 74 dcl initiate_file_ entry (character (*), character (*), bit (*), pointer, fixed binary (24), fixed binary (35)) 75 ; 76 dcl terminate_file_ entry (pointer, fixed binary (24), bit (*), fixed binary (35)); 77 dcl cleanup condition; 78 dcl ME char (32) init ("system_daily_report") int static options (constant); 79 80 81 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 */ 82 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 */ 83 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 */ 84 85 86 87 88 use_totals_ptr, xtotp = null (); 89 on cleanup call clean_up; 90 call cu_$arg_count (arg_count, ec); 91 if ec ^= 0 92 then do; 93 call com_err_ (ME, ec); 94 return; 95 end; 96 if arg_count ^= 2 97 then do; 98 call com_err_$suppress_name (0, ME, 99 "Usage: system_daily_report today.use_totals yesterday.use_totals"); 100 return; 101 end; 102 call cu_$arg_ptr (1, ap, al, (0)); 103 call expand_pathname_$add_suffix (bchr, "use_totals", dn, en, ec); 104 if ec ^= 0 105 then 106 PN_ERROR: 107 do; 108 call com_err_ (ec, ME, "Invalid use totals pathname ^a.", bchr); 109 go to ERROR; 110 end; 111 112 call initiate_file_ (dn, en, R_ACCESS, use_totals_ptr, (0), ec); 113 if ec ^= 0 114 then 115 INITIATE_ERROR: 116 do; 117 call com_err_ (ec, ME, "^a", pathname_ (dn, en)); 118 go to ERROR; /* it might be the second seg */ 119 end; 120 121 if use_totals.version ^= USE_TOTALS_VERSION_3 122 then 123 UT_VERSION_ERROR: 124 do; 125 call com_err_ (error_table_$unimplemented_version, ME, "^a is not version 3", pathname_ (dn, en)); 126 go to ERROR; 127 end; 128 129 call cu_$arg_ptr (2, ap, al, (0)); 130 call expand_pathname_$add_suffix (bchr, "use_totals", dn, en, ec); 131 if ec ^= 0 132 then go to PN_ERROR; 133 call initiate_file_ (dn, en, R_ACCESS, xtotp, (0), ec); 134 if ec ^= 0 135 then go to INITIATE_ERROR; 136 if xtotp -> use_totals.version ^= USE_TOTALS_VERSION_3 137 then go to UT_VERSION_ERROR; 138 139 call system_info_$titles (dummy, dummy, comp, dept); 140 /* Get report titles */ 141 142 call ioa_ ("^-^a^/^/^-^-^a", comp, dept); /* Start report */ 143 call date_time_ (xtotp -> period_end, datstr); /* Make printable date */ 144 call date_time_ (use_totals.period_end, datstr1); 145 call ioa_ ("^/Multics usage report from ^a^/^23xto ^a", datstr, datstr1); 146 147 munits = 0; 148 dayunits = 0; 149 xcpu, xmem = -1; 150 mconfigs = -1; 151 dayconfigs = 0; 152 153 do i = 1 to use_totals.max_day_log; 154 if i = use_totals.max_day_log 155 then qlim = use_totals.max_qhour; 156 else qlim = 96; 157 do j = 1 to qlim; 158 ztime = use_totals.daylog (i).qh (j).time; 159 if ztime = 0 160 then go to skip; 161 if use_totals.daylog (i).qh (j).cpu = xcpu 162 then if use_totals.daylog (i).qh (j).kmem = xmem 163 then go to sameconf; 164 165 if use_totals.daylog (i).qh (j).cpu = 0 166 then go to sameconf; 167 if ztime > xtotp -> use_totals.period_end 168 then dayconfigs = dayconfigs + 1; 169 mconfigs = mconfigs + 1; 170 xcpu = use_totals.daylog (i).qh (j).cpu; 171 xmem = use_totals.daylog (i).qh (j).kmem; 172 sameconf: 173 if use_totals.daylog (i).qh (j).nunits > dayunits 174 then if ztime > xtotp -> use_totals.period_end 175 then dayunits = use_totals.daylog (i).qh (j).nunits; 176 if use_totals.daylog (i).qh (j).nunits > munits 177 then munits = use_totals.daylog (i).qh (j).nunits; 178 skip: 179 end; 180 end; 181 182 call ioa_ ("^/^9xStarts Crashes^6xUptime CPU avail.^6x%Idle %Overhead Max load units Reconfigurations"); 183 call ioa_ ("^/Month^3x^7d^2x^7d^5x^7a^5x^7a^5x^7.1f^4x^7.1f^9x^7.1f^11x^7d", sys_starts, sys_crash, 184 /* Write month-to-date totals */ 185 tcv (uptime), tcv (cpu_avail), (idle * 1e2) / cpu_avail, 186 ((cpu_avail - idle - total_cpu) * 1e2) / cpu_avail, munits / 1e1, mconfigs); 187 conn = cpu_avail - xtotp -> cpu_avail; /* Calculate CPU available today */ 188 if conn = 0 189 then fract = 0e0; /* Aviod zdiv in case system_total was not run */ 190 else fract = ((idle - xtotp -> idle) * 1e2) / conn; 191 if conn = 0 192 then fract1 = 0e0; 193 else fract1 = ((conn - idle - total_cpu + xtotp -> idle + xtotp -> total_cpu) * 1e2) / conn; 194 call ioa_ ("Today^3x^7d^2x^7d^5x^7a^5x^7a^5x^7.1f^4x^7.1f^9x^7.1f^11x^7d", sys_starts - xtotp -> sys_starts, 195 sys_crash - xtotp -> sys_crash, tcv (uptime - xtotp -> uptime), tcv (cpu_avail - xtotp -> cpu_avail), 196 fract, fract1, dayunits / 1e1, dayconfigs); 197 call ioa_ ("^/^3xCurrent system: ^8a^6xMonth-to-date MTBF: ^7a^/", last_sysid, 198 tcv (divide (uptime, sys_crash + 1, 71, 0))); 199 call ioa_ ("^3xCurrent disk capacity: ^6d recs, ^5.1f% full^/^/", use_totals.disk_available, 200 ((use_totals.disk_available - use_totals.disk_left) * 1e2) / use_totals.disk_available); 201 202 call ioa_ (heading); /* Now user statistics part of report */ 203 do i = 2 to ntypes, 1; /* Put paying customers at bottom of report */ 204 dollar_delta = dollar_charge (i) - xtotp -> dollar_charge (i); 205 nlogins = logins (i) - xtotp -> logins (i); /* Calculate usage for today */ 206 tnlogins = tnlogins + nlogins; 207 ncshd = crashes (i) - xtotp -> crashes (i); /* ... */ 208 tncsh = tncsh + ncshd; 209 conn = 0; /* Must add up connect time in each shift */ 210 do j = 0 to 7; /* Loop on shifts */ 211 conn = conn + (connect (i, j) - xtotp -> connect (i, j)); 212 end; 213 tconn = tconn + conn; 214 nabs = 0; /* Get count of abs jobs */ 215 do j = 1 to 4; /* Loop on queues */ 216 nabs = nabs + absentee.jobs (i, j) - xtotp -> absentee.jobs (i, j); 217 end; 218 tnabs = tnabs + nabs; 219 tqta = tqta + disk_quota (i); 220 tusage = tusage + disk_usage (i); 221 tnproj = tnproj + nproj (i); 222 tnusers = tnusers + nusers (i); 223 call ioa_ ("^24a ^10.2f ^10.2f ^5d ^7d ^8d ^7a ^7d ^7d ^8d ^5d", utype (i), dollar_charge (i), 224 dollar_delta, nlogins, ncshd, nabs, tcv (conn), disk_quota (i), disk_usage (i), nproj (i), nusers (i)) 225 ; 226 end; 227 call ioa_ ("^/TOTAL^45x^5d ^7d ^8d ^7a ^7d ^7d ^8d ^5d", tnlogins, tncsh, tnabs, tcv (tconn), tqta, 228 tusage, tnproj, tnusers); 229 230 call ioa_ (""); /* End of loop on bins. */ 231 232 ERROR: 233 call clean_up; 234 return; 235 236 /* internal procedure to format time for printing */ 237 238 tcv: 239 proc (x) returns (char (7)); 240 241 dcl x fixed bin (71); 242 243 dcl (a, b, c, d) fixed bin (35), 244 cc char (7); 245 246 a = divide (x, 1000000, 35, 0); 247 b = divide (a, 60, 35, 0); 248 a = mod (a, 60); 249 c = divide (b, 60, 35, 0); 250 b = mod (b, 60); 251 call ioa_$rsnnl ("^4d:^2d", cc, d, c, b); 252 if substr (cc, 6, 1) = " " 253 then substr (cc, 6, 1) = "0"; 254 return (cc); 255 256 end tcv; 257 258 clean_up: 259 procedure; 260 261 if use_totals_ptr ^= null () 262 then call terminate_file_ (use_totals_ptr, (0), TERM_FILE_TERM, (0)); 263 if xtotp ^= null () 264 then call terminate_file_ (xtotp, (0), TERM_FILE_TERM, (0)); 265 return; 266 end clean_up; 267 end system_daily_report; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/17/00 1929.0 system_daily_report.pl1 >udd>sm>ds>w>ml>system_daily_report.pl1 82 1 04/11/85 1552.6 access_mode_values.incl.pl1 >ldd>incl>access_mode_values.incl.pl1 83 2 04/06/83 1339.4 terminate_file.incl.pl1 >ldd>incl>terminate_file.incl.pl1 84 3 12/07/84 1202.2 use_totals.incl.pl1 >ldd>incl>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 000003 constant char(32) initial packed unaligned dcl 78 set ref 93* 98* 108* 117* 125* R_ACCESS 000026 constant bit(3) initial packed unaligned dcl 1-11 set ref 112* 133* TERM_FILE_TERM 000002 constant bit(3) initial packed unaligned dcl 2-14 set ref 261* 263* USE_TOTALS_VERSION_3 000000 constant char(8) initial packed unaligned dcl 3-123 ref 121 136 a 000370 automatic fixed bin(35,0) dcl 243 set ref 246* 247 248* 248 absentee 576042 based structure array level 4 dcl 3-15 al 000336 automatic fixed bin(21,0) dcl 19 set ref 102* 103 103 108 108 129* 130 130 ap 000334 automatic pointer dcl 19 set ref 102* 103 108 129* 130 arg_count 000342 automatic fixed bin(17,0) dcl 48 set ref 90* 96 b 000371 automatic fixed bin(35,0) dcl 243 set ref 247* 249 250* 250 251* b_and_w 76 based structure level 2 dcl 3-15 bchr based char packed unaligned dcl 19 set ref 103* 108* 130* bins 544302 based structure level 2 dcl 3-15 c 000372 automatic fixed bin(35,0) dcl 243 set ref 249* 251* cc 000374 automatic char(7) packed unaligned dcl 243 set ref 251* 252 252* 254 cleanup 000344 stack reference condition dcl 77 ref 89 com_err_ 000072 constant entry external dcl 72 ref 93 108 117 125 com_err_$suppress_name 000070 constant entry external dcl 70 ref 98 comp 000237 automatic char(120) packed unaligned dcl 19 set ref 139* 142* conn 000200 automatic fixed bin(71,0) dcl 19 set ref 187* 188 190 191 193 193 209* 211* 211 213 223* 223* connect 575730 based fixed bin(71,0) array level 5 dcl 3-15 ref 211 211 cpu 107 based fixed bin(5,0) array level 5 packed packed unsigned unaligned dcl 3-15 ref 161 165 170 cpu_avail 24 based fixed bin(71,0) level 3 dcl 3-15 set ref 183* 183* 183 183 183 187 187 194 194 194 194 crashes 575664 based fixed bin(17,0) array level 4 dcl 3-15 ref 207 207 cu_$arg_count 000054 constant entry external dcl 63 ref 90 cu_$arg_ptr 000056 constant entry external dcl 64 ref 102 129 d 000373 automatic fixed bin(35,0) dcl 243 set ref 251* date_time_ 000066 constant entry external dcl 69 ref 143 144 datstr 000162 automatic char(24) packed unaligned dcl 19 set ref 143* 145* datstr1 000170 automatic char(24) packed unaligned dcl 19 set ref 144* 145* dayconfigs 000225 automatic fixed bin(17,0) dcl 19 set ref 151* 167* 167 194* daylog 102 based structure array level 3 dcl 3-15 dayunits 000223 automatic fixed bin(17,0) dcl 19 set ref 148* 172 172* 194 dept 000275 automatic char(120) packed unaligned dcl 19 set ref 139* 142* disk_available 6 based fixed bin(35,0) level 3 dcl 3-15 set ref 199* 199 199 disk_left 7 based fixed bin(35,0) level 3 dcl 3-15 ref 199 disk_quota 575672 based fixed bin(35,0) array level 4 dcl 3-15 set ref 219 223* disk_usage 575673 based fixed bin(35,0) array level 4 dcl 3-15 set ref 220 223* divide builtin function dcl 55 ref 197 197 197 197 246 247 249 dn 000100 automatic char(168) packed unaligned dcl 19 set ref 103* 112* 117* 117* 125* 125* 130* 133* dollar_charge 575662 based float bin(27) array level 4 dcl 3-15 set ref 204 204 223* dollar_delta 000205 automatic float bin(27) dcl 19 set ref 204* 223* dummy 000234 automatic char(10) packed unaligned dcl 19 set ref 139* 139* ec 000337 automatic fixed bin(35,0) dcl 19 set ref 90* 91 93* 103* 104 108* 112* 113 117* 130* 131 133* 134 en 000152 automatic char(32) packed unaligned dcl 19 set ref 103* 112* 117* 117* 125* 125* 130* 133* error_table_$unimplemented_version 000046 external static fixed bin(35,0) dcl 58 set ref 125* expand_pathname_$add_suffix 000060 constant entry external dcl 65 ref 103 130 fract 000206 automatic float bin(27) dcl 19 set ref 188* 190* 194* fract1 000207 automatic float bin(27) dcl 19 set ref 191* 193* 194* heading 000010 internal static char(120) initial packed unaligned dcl 50 set ref 202* i 000176 automatic fixed bin(17,0) dcl 19 set ref 153* 154 158 161 161 165 170 171 172 172 176 176* 203* 204 204 205 205 207 207 211 211 216 216 219 220 221 222 223 223 223 223 223 223* idle 26 based fixed bin(71,0) level 3 dcl 3-15 ref 183 183 190 190 193 193 initiate_file_ 000074 constant entry external dcl 74 ref 112 133 interactive 575722 based structure array level 4 dcl 3-15 ioa_ 000062 constant entry external dcl 67 ref 142 145 182 183 194 197 199 202 223 227 230 ioa_$rsnnl 000064 constant entry external dcl 68 ref 251 j 000177 automatic fixed bin(17,0) dcl 19 set ref 157* 158 161 161 165 170 171 172 172 176 176* 210* 211 211* 215* 216 216* jobs 576043 based fixed bin(17,0) array level 5 dcl 3-15 ref 216 216 kmem 107(18) based fixed bin(18,0) array level 5 packed packed unsigned unaligned dcl 3-15 ref 161 171 last_sysid 72 based char(8) level 3 dcl 3-15 set ref 197* logins 575663 based fixed bin(17,0) array level 4 dcl 3-15 ref 205 205 max_day_log 100 based fixed bin(17,0) level 3 dcl 3-15 ref 153 154 max_qhour 101 based fixed bin(17,0) level 3 dcl 3-15 ref 154 mconfigs 000226 automatic fixed bin(17,0) dcl 19 set ref 150* 169* 169 183* meters based structure level 2 dcl 3-15 mod builtin function dcl 55 ref 248 250 munits 000224 automatic fixed bin(17,0) dcl 19 set ref 147* 176 176* 183 nabs 000204 automatic fixed bin(17,0) dcl 19 set ref 214* 216* 216 218 223* ncshd 000203 automatic fixed bin(17,0) dcl 19 set ref 207* 208 223* nlogins 000202 automatic fixed bin(17,0) dcl 19 set ref 205* 206 223* nproj 575665 based fixed bin(17,0) array level 4 dcl 3-15 set ref 221 223* ntypes 544302 based fixed bin(17,0) level 3 dcl 3-15 ref 203 null builtin function dcl 55 ref 88 261 263 nunits 107(05) based fixed bin(13,0) array level 5 packed packed unsigned unaligned dcl 3-15 ref 172 172 176 176 nusers 575666 based fixed bin(17,0) array level 4 dcl 3-15 set ref 222 223* pathname_ 000052 constant entry external dcl 62 ref 117 117 125 125 period_end 4 based fixed bin(71,0) level 3 dcl 3-15 set ref 143* 144* 167 172 qh 102 based structure array level 4 dcl 3-15 qlim 000222 automatic fixed bin(17,0) dcl 19 set ref 154* 156* 157 substr builtin function dcl 55 set ref 252 252* sys_crash 23 based fixed bin(17,0) level 3 dcl 3-15 set ref 183* 194 194 197 197 197 197 sys_starts 22 based fixed bin(17,0) level 3 dcl 3-15 set ref 183* 194 194 system_info_$titles 000050 constant entry external dcl 61 ref 139 tconn 000220 automatic fixed bin(71,0) initial dcl 19 set ref 19* 213* 213 227* 227* terminate_file_ 000076 constant entry external dcl 76 ref 261 263 time 102 based fixed bin(71,0) array level 5 dcl 3-15 ref 158 tnabs 000212 automatic fixed bin(17,0) initial dcl 19 set ref 19* 218* 218 227* tncsh 000211 automatic fixed bin(17,0) initial dcl 19 set ref 19* 208* 208 227* tnlogins 000210 automatic fixed bin(17,0) initial dcl 19 set ref 19* 206* 206 227* tnproj 000215 automatic fixed bin(17,0) initial dcl 19 set ref 19* 221* 221 227* tnusers 000216 automatic fixed bin(17,0) initial dcl 19 set ref 19* 222* 222 227* total_cpu 32 based fixed bin(71,0) level 3 dcl 3-15 ref 183 193 193 tqta 000213 automatic fixed bin(17,0) initial dcl 19 set ref 19* 219* 219 227* tusage 000214 automatic fixed bin(17,0) initial dcl 19 set ref 19* 220* 220 227* uptime 20 based fixed bin(71,0) level 3 dcl 3-15 set ref 183* 183* 194 194 194 194 197 197 197 197 use_totals based structure level 1 dcl 3-15 use_totals_ptr 000352 automatic pointer dcl 3-14 set ref 88* 112* 121 144 153 154 154 158 161 161 165 170 171 172 172 176 176 183 183 183 183 183 183 183 183 183 183 183 183 187 190 193 193 194 194 194 194 194 194 197 197 197 197 197 197 197 197 197 199 199 199 199 203 204 205 207 211 216 219 220 221 222 223 223 223 223 223 223 261 261* ut 575654 based structure array level 3 dcl 3-15 utype 575654 based char(24) array level 4 dcl 3-15 set ref 223* version 10 based char(8) level 3 dcl 3-15 ref 121 136 x parameter fixed bin(71,0) dcl 241 ref 238 246 xcpu 000227 automatic fixed bin(17,0) dcl 19 set ref 149* 161 170* xmem 000230 automatic fixed bin(17,0) dcl 19 set ref 149* 161 171* xtotp 000340 automatic pointer dcl 19 set ref 88* 133* 136 143 167 172 187 190 193 193 194 194 194 194 194 194 204 205 207 211 216 263 263* ztime 000232 automatic fixed bin(71,0) dcl 19 set ref 158* 159 167 172 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed 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 packed unaligned dcl 1-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 M_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 REW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 RW_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 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 packed 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 packed unaligned dcl 1-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 S_ACCESS internal static bit(3) initial packed 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 packed unaligned dcl 2-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 2-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 2-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 2-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 2-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 2-15 USE_TOTALS_VERSION_2 internal static char(8) initial packed unaligned dcl 3-121 W_ACCESS internal static bit(3) initial packed unaligned dcl 1-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 1-36 abs builtin function dcl 55 addr builtin function dcl 55 bit builtin function dcl 55 fixed builtin function dcl 55 index builtin function dcl 55 k automatic fixed bin(17,0) dcl 19 l automatic fixed bin(17,0) dcl 19 length builtin function dcl 55 m automatic fixed bin(17,0) dcl 19 n automatic fixed bin(17,0) dcl 19 terminate_file_switches based structure level 1 packed packed unaligned dcl 2-4 unspec builtin function dcl 55 xbulk automatic fixed bin(17,0) dcl 19 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR 002323 constant label dcl 232 ref 109 118 126 INITIATE_ERROR 000632 constant label dcl 113 ref 134 PN_ERROR 000536 constant label dcl 104 ref 131 UT_VERSION_ERROR 000707 constant label dcl 121 ref 136 clean_up 002422 constant entry internal dcl 258 ref 89 232 sameconf 001335 constant label dcl 172 ref 161 165 skip 001355 constant label dcl 178 ref 159 system_daily_report 000327 constant entry external dcl 12 tcv 002330 constant entry internal dcl 238 ref 183 183 183 183 194 194 194 194 197 197 223 223 227 227 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2760 3060 2557 2770 Length 3332 2557 100 236 200 36 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME system_daily_report 476 external procedure is an external procedure. on unit on line 89 64 on unit tcv internal procedure shares stack frame of external procedure system_daily_report. clean_up 84 internal procedure is called by several nonquick procedures. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 heading system_daily_report STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME system_daily_report 000100 dn system_daily_report 000152 en system_daily_report 000162 datstr system_daily_report 000170 datstr1 system_daily_report 000176 i system_daily_report 000177 j system_daily_report 000200 conn system_daily_report 000202 nlogins system_daily_report 000203 ncshd system_daily_report 000204 nabs system_daily_report 000205 dollar_delta system_daily_report 000206 fract system_daily_report 000207 fract1 system_daily_report 000210 tnlogins system_daily_report 000211 tncsh system_daily_report 000212 tnabs system_daily_report 000213 tqta system_daily_report 000214 tusage system_daily_report 000215 tnproj system_daily_report 000216 tnusers system_daily_report 000220 tconn system_daily_report 000222 qlim system_daily_report 000223 dayunits system_daily_report 000224 munits system_daily_report 000225 dayconfigs system_daily_report 000226 mconfigs system_daily_report 000227 xcpu system_daily_report 000230 xmem system_daily_report 000232 ztime system_daily_report 000234 dummy system_daily_report 000237 comp system_daily_report 000275 dept system_daily_report 000334 ap system_daily_report 000336 al system_daily_report 000337 ec system_daily_report 000340 xtotp system_daily_report 000342 arg_count system_daily_report 000352 use_totals_ptr system_daily_report 000370 a tcv 000371 b tcv 000372 c tcv 000373 d tcv 000374 cc tcv THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out call_int_this call_int_other return_mac mdfx1 enable_op ext_entry int_entry divide_fx3 THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ com_err_$suppress_name cu_$arg_count cu_$arg_ptr date_time_ expand_pathname_$add_suffix initiate_file_ ioa_ ioa_$rsnnl pathname_ system_info_$titles terminate_file_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unimplemented_version LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000326 19 000334 88 000345 89 000350 90 000372 91 000403 93 000405 94 000422 96 000423 98 000426 100 000453 102 000454 103 000474 104 000534 108 000536 109 000571 112 000572 113 000630 117 000632 118 000701 121 000702 125 000707 126 000757 129 000760 130 001000 131 001040 133 001042 134 001100 136 001102 139 001107 142 001131 143 001157 144 001175 145 001213 147 001236 148 001237 149 001240 150 001243 151 001244 153 001245 154 001255 156 001263 157 001265 158 001273 159 001305 161 001306 165 001320 167 001322 169 001327 170 001330 171 001332 172 001335 176 001351 178 001355 180 001357 182 001361 183 001375 187 001516 188 001523 190 001527 191 001541 193 001546 194 001563 197 001662 199 001722 202 001764 203 001775 204 002011 205 002022 206 002025 207 002026 208 002031 209 002032 210 002034 211 002041 212 002057 213 002061 214 002064 215 002065 216 002073 217 002112 218 002114 219 002116 220 002130 221 002134 222 002136 223 002140 226 002232 227 002242 230 002312 232 002323 234 002327 238 002330 246 002332 247 002337 248 002341 249 002345 250 002350 251 002353 252 002404 254 002413 258 002421 261 002427 263 002462 265 002516 ----------------------------------------------------------- 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