COMPILATION LISTING OF SEGMENT proj_usage_report Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/29/88 0923.9 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 proj_usage_report: 14 pur: 15 procedure; 16 17 /* PROJ_USAGE_REPORT - Print a month-to-date usage report for a project from the PDT */ 18 19 20 /****^ HISTORY COMMENTS: 21* 1) change(86-01-01,Gilcrease), approve(86-03-27,MCR7369), 22* audit(86-06-20,LJAdams), install(86-06-30,MR12.0-1081): 23* To make old comments acceptible to history_comment 24* Modified Jan 11, 1977 by John Gintell to: 25* add -sort fraction_used , add subtotal, fix minor bugs, 26* improve output format, and cleanup program 27* Modified June 1979 by C. Hornig to: 28* print absolute spending and device charges. 29* Modified Feb 1980 by M. B. Armstrong to: 30* implement multiple rate structures. (UNCA) 31* Modified by R. McDonald May 1980 to: 32* include page charges (UNCA) 33* Modified October 1980 by C. Hornig for: 34* time zone problems and -user 35* Modified June 1981 by E. N. Kittlitz for: 36* UNCA rate-structures, page charging 37* 2) change(86-02-26,Gilcrease), approve(86-03-27,MCR7369), 38* audit(86-06-20,LJAdams), install(86-06-30,MR12.0-1081): 39* Add weekly to display array. SCP 6250. 40* 3) change(87-08-10,GDixon), approve(88-08-15,MCR7969), 41* audit(88-08-03,Lippard), install(88-08-29),MR12.2-1093): 42* Correct functioning of -user (phx13898, phx15772, phx17001). 43* END HISTORY COMMENTS */ 44 45 46 47 dcl OPEN float bin int static options (constant) init (1e37); 48 dcl NEVER fixed bin (71) int static options (constant) init (3124151940000000); 49 dcl MILLION fixed bin (35) internal static options (constant) init (1000000); 50 dcl cutinc (0:6) character (8) internal static options (constant) 51 init ("", ",daily", ",monthly", ",yearly", ",cyear", ",fyear", ",weekly"); 52 53 dcl en char (32); 54 dcl pdtp ptr; /* ptr to pdt */ 55 dcl pdtep ptr; /* ptr to user entry in pdt */ 56 dcl nzsw bit (1) aligned; 57 dcl flag char (1) aligned; /* star if user deleted */ 58 dcl limv char (8) aligned; /* limit value */ 59 dcl x (1019) char (32) aligned; /* sort array */ 60 dcl y (1019) fixed bin; 61 dcl yy (1019) fixed bin; /* to allow -nz option */ 62 dcl z (1019) float bin; 63 dcl rs_name char (32); 64 dcl sort_sw fixed bin; 65 dcl brief bit (1); 66 dcl no_header bit (1); 67 dcl total bit (1); 68 dcl user_sw bit (1) aligned; 69 dcl long bit (1); 70 dcl rev bit (1); 71 dcl sc fixed bin; 72 dcl (user_count, print_count) fixed bin; 73 dcl addamt float bin; 74 dcl time_string char (24) aligned; 75 dcl (subtotal_limit, subtotal_nolimit) float bin; /* subtotals */ 76 dcl cuttime character (8) aligned; 77 dcl (h, i, m) fixed bin; 78 dcl 1 dvt (16) aligned, 79 2 name character (8), 80 2 price (0:7) float bin; 81 dcl (begini, endi, incr) fixed bin; 82 dcl ap ptr; 83 dcl al fixed bin (21); 84 dcl ec fixed bin (35); 85 dcl con fixed bin (71); 86 dcl (tempi, tempa, tempio, tempdev) float bin; 87 dcl arg_count fixed bin; 88 dcl max_rs_number fixed bin; 89 90 dcl 1 total_user aligned like user; 91 92 dcl bchr char (al) unaligned based (ap); 93 94 dcl (addr, clock, divide, mod, null, rtrim, substr, unspec) builtin; 95 96 dcl error_table_$badopt fixed bin ext; 97 98 dcl user_info_ entry (char (*), char (*), char (*)); 99 dcl system_info_$device_prices_rs entry (fixed bin, fixed bin, pointer); 100 dcl system_info_$rs_name entry (fixed bin, char (*), fixed bin (35)); 101 dcl idsort_ entry ((*) char (32) aligned, (*) fixed bin, fixed bin); 102 dcl flt_bin_sort_ entry ((*) float bin, (*) fixed bin, fixed bin); 103 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 104 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 105 dcl expand_pathname_$add_suffix entry (char (*), char (*), char (*), char (*), fixed bin (35)); 106 dcl ioa_ entry options (variable); 107 dcl ioa_$rsnnl entry options (variable); 108 dcl date_time_ entry (fixed bin (71), char (*) aligned); 109 dcl com_err_ entry options (variable); 110 dcl hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 111 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 112 dcl system_info_$max_rs_number entry (fixed bin); 113 114 dcl dirname char (168) static internal init (">system_control_dir>pdt"); 115 116 call system_info_$max_rs_number (max_rs_number); 117 118 sort_sw = 1; 119 user_sw, nzsw, brief, long, no_header, total, rev = "0"b; 120 sc, user_count = 0; 121 en = ""; 122 123 call cu_$arg_count (arg_count, ec); 124 if ec ^= 0 then do; 125 bad_arg_code: 126 call com_err_ (ec, "proj_usage_report"); 127 return; 128 end; 129 do i = 1 to arg_count; 130 call cu_$arg_ptr (i, ap, al, ec); 131 if ec ^= 0 then go to bad_arg_code; 132 if /* case */ substr (bchr, 1, 1) ^= "-" 133 then if ^user_sw then do; 134 if en ^= "" then do; 135 call com_err_ (0, "proj_usage_report", "Only one project may be specified."); 136 return; 137 end; 138 en = bchr || ".pdt"; 139 end; 140 else do; 141 user_count = user_count + 1; 142 (subrg): 143 x (user_count) = bchr; 144 end; 145 else if bchr = "-nz" then nzsw = "1"b; 146 else if bchr = "-user" then do; 147 user_sw = "1"b; 148 yy (*) = 0; 149 end; 150 else if bchr = "-sort" then do; 151 i = i + 1; 152 sc = sc + 1; 153 call cu_$arg_ptr (i, ap, al, ec); 154 if ec ^= 0 then do; 155 call com_err_ (0, "proj_usage_report", "Sort type did not follow -sort control argument."); 156 VALID: 157 call ioa_ ("Valid types are: use, rem, limit, name, or fraction_used."); 158 return; 159 end; 160 sort_sw = 0; 161 if /* case */ bchr = "name" then sort_sw = 1; 162 else if bchr = "use" then sort_sw = 2; 163 else if bchr = "rem" then sort_sw = 3; 164 else if bchr = "limit" then sort_sw = 4; 165 else if bchr = "fraction_used" then sort_sw = 5; 166 else do; 167 call com_err_ (0, "proj_usage_report", "Sort type not recognized. ""^a""", bchr); 168 goto VALID; /* print message and return */ 169 end; 170 end; 171 else if bchr = "-brief" | bchr = "-bf" then no_header, brief = "1"b; 172 else if bchr = "-no_header" | bchr = "-nhe" then no_header = "1"b; 173 else if bchr = "-total" | bchr = "-tt" then total = "1"b; 174 else if bchr = "-long" | bchr = "-lg" then long = "1"b; 175 else if bchr = "-reverse" | bchr = "-rev" then rev = "1"b; 176 else if bchr = "-pathname" | bchr = "-pn" then do; 177 i = i + 1; 178 call cu_$arg_ptr (i, ap, al, ec); 179 if ec ^= 0 then do; 180 call com_err_ (0, "proj_usage_report", "pathname argument did not follow control argument"); 181 return; 182 end; 183 call expand_pathname_$add_suffix (bchr, "pdt", dirname, en, ec); 184 if ec ^= 0 then do; 185 call com_err_ (ec, "proj_usage_report", bchr); 186 return; 187 end; 188 end; 189 else do; 190 call com_err_ (error_table_$badopt, "proj_usage_report", """^a""", bchr); 191 return; 192 end; 193 end; 194 195 if sc > 1 then do; 196 call com_err_ (0, "proj_usage_report", "More than one instance of sort control argument."); 197 return; 198 end; 199 200 if en = "" then do; 201 call user_info_ ((""), en, ("")); 202 en = rtrim (en) || ".pdt"; 203 end; 204 205 call hcs_$initiate (dirname, en, "", 0, 1, pdtp, ec); 206 if pdtp = null () then do; 207 call com_err_ (ec, "proj_usage_report", "^a>^a", dirname, en); 208 return; 209 end; 210 211 if ^no_header then do; 212 call date_time_ (clock (), time_string); 213 if max_rs_number > 0 then do; 214 call system_info_$rs_name ((pdt.rs_number), rs_name, ec); 215 if ec ^= 0 then call com_err_ (ec, "proj_usage_report", "For rate structure ^d. Contact your system administrator.", pdt.rs_number); 216 end; 217 call ioa_ ("^5x^a PROJECT USAGE REPORT -- ^a^[^/^5xRate Structure -- ^a^;^s^]^/", pdt.project_name, time_string, (max_rs_number > 0), rs_name); 218 call ioa_ ( 219 " User^19xCharge^4xLimit Logins Interact: Connect; Absentee; IO Daemon; Device; Absolute Spending^/"); 220 end; 221 222 if ^brief then call system_info_$device_prices_rs ((pdt.rs_number), i, addr (dvt)); 223 224 m = 0; /* initialize count */ 225 do i = 1 to pdt.current_size; 226 pdtep = addr (pdt.user (i)); 227 if (user.state ^= 0) & ((user.dollar_charge ^= 0e0) | ^nzsw) then do; 228 if user_sw then do; 229 do m = 1 to user_count; 230 if user.person_id = x (m) then goto got_user; 231 end; 232 goto next_user; 233 end; 234 else do; 235 user_count, m = user_count + 1; 236 x (m) = user.person_id; 237 end; 238 239 got_user: 240 if /* case */ sort_sw = 2 then z (m) = user.dollar_charge; 241 else if sort_sw = 3 242 then if user.dollar_limit > OPEN 243 then z (m) = OPEN - user.dollar_charge; 244 else z (m) = user.dollar_limit - user.dollar_charge; 245 else if sort_sw = 4 then z (m) = user.dollar_limit; 246 else if sort_sw = 5 then z (m) = user.dollar_charge / user.dollar_limit; 247 248 y (m) = i; 249 yy (m) = m; 250 end; 251 next_user: 252 end; 253 254 m = user_count; 255 if m > 1 then 256 if sort_sw = 1 257 then call idsort_ (x, yy, m); 258 else call flt_bin_sort_ (z, yy, m); 259 260 if rev then do; 261 begini = m; 262 endi = 1; 263 incr = -1; 264 end; 265 else do; 266 begini = 1; 267 endi = m; 268 incr = 1; 269 end; 270 271 unspec (total_user) = ""b; 272 total_user.state = 1; 273 total_user.absolute_limit = OPEN; 274 total_user.absolute_cutoff = NEVER; 275 total_user.shift_limit = OPEN; 276 total_user.dollar_limit = OPEN; 277 print_count = 0; 278 subtotal_limit, subtotal_nolimit = 0e0; 279 280 do i = begini to endi by incr; 281 if yy (i) > 0 then do; 282 print_count = print_count + 1; 283 pdtep = addr (pdt.user (y (yy (i)))); 284 if ^total then call display_user; 285 286 if user.dollar_limit < OPEN 287 then subtotal_limit = subtotal_limit + user.dollar_charge; 288 else subtotal_nolimit = subtotal_nolimit + user.dollar_charge; 289 total_user.logins = total_user.logins + user.logins; 290 total_user.interactive = total_user.interactive + user.interactive; 291 total_user.absentee = total_user.absentee + user.absentee; 292 total_user.iod = total_user.iod + user.iod; 293 total_user.devices = total_user.devices + user.devices; 294 end; 295 end; 296 297 if print_count ^= 1 then do; 298 call ioa_ (""); 299 if subtotal_limit ^= 0e0 & subtotal_nolimit ^= 0e0 300 then call ioa_ ("SUBTOTAL (with limit) $^8.2f", subtotal_limit); 301 302 call ioa_$rsnnl ("TOTAL (^d users)", total_user.person_id, (0), print_count); 303 total_user.dollar_charge = subtotal_limit + subtotal_nolimit; 304 pdtep = addr (total_user); 305 call display_user; 306 end; 307 308 call hcs_$terminate_noname (pdtp, ec); 309 return; 310 311 cv_time: 312 procedure (time) returns (char (10) aligned); 313 314 /* procedure to convert from fixed bin (71) to a nice formatted string of hrs: mins: secs */ 315 316 dcl time fixed bin (71); 317 dcl j fixed bin; 318 dcl hours fixed bin; 319 dcl minutes fixed bin; 320 dcl seconds fixed bin; 321 dcl answer char (10) aligned; 322 323 324 seconds = divide (time, MILLION, 35, 0); 325 minutes = divide (seconds, 60, 35, 0); 326 seconds = mod (seconds, 60); /* get rid of the remainder */ 327 hours = divide (minutes, 60, 35, 0); 328 minutes = mod (minutes, 60); /* get rid of the remainder */ 329 330 call ioa_$rsnnl ("^4d:^2d:^2d", answer, j, hours, minutes, seconds); 331 if substr (answer, 6, 1) = " " then substr (answer, 6, 1) = "0"; 332 if substr (answer, 9, 1) = " " then substr (answer, 9, 1) = "0"; 333 334 return (answer); 335 end cv_time; 336 337 338 cv_limit: 339 procedure (limit, lim, amt); 340 341 /* procedure to convert a float bin $limit into either the string, "open", if $limit is >= 1e37, 342* or to convert a float bin $limit into an integer $limit */ 343 344 345 dcl limit float bin; 346 dcl lim char (8) aligned; 347 dcl amt float bin; 348 dcl jj fixed bin; 349 350 351 if limit >= OPEN then do; 352 lim = " open"; 353 amt = 0e0; 354 end; 355 else do; 356 call ioa_$rsnnl ("^8.2f", lim, jj, limit); 357 amt = limit; 358 end; 359 return; 360 end cv_limit; 361 362 display_user: 363 procedure; 364 if user.state ^= 0 then do; 365 if user.state = 2 366 then flag = "*"; 367 else flag = ""; 368 if user.now_in > 0 then flag = ">"; 369 call cv_limit (user.dollar_limit, limv, addamt); 370 if brief 371 then if limv = " open" then limv = (8)" "; 372 373 tempi, tempa, tempdev, tempio S1Rick S1z@S1 Z*@S1(*@S1 *@S1&S2J0dT8VzV0-Hoover S2R):y $h t nz~2rS80-8hh S2 n|*@S2 Xtv*@S2lz@S2d B `*@S20&S3GozMabey S3Qf68z~2rSmm S3hm S3mike S3z@S3*@S3*@S3*@S3V&S4Go\(zOke S4GLŸz'86Nz~2rS(tom S4to S4>z@S4F6*@S4N>*@S4F*@S4&S5Go~^|z|VWestcott S5RyU C8z~2rS^Vbaw S5z@S5*@S5*@S5*@S5V&S6Goȩz archives S6GJ\7 z~2rSarchive S6Kac S6z@S6*@S6"*@S6 *@S6*@S6 *@S6$v*@S6,*@S64$*@S6<,*@S6D4>*@S6L<Z*@S6TD0*@S6\LL*@S6dT*@S6l\*@S6td*@S6|lv*@S6t*@S6|*@S6*@S6*@S6*@S6(&S9GoNadebug S9H4=9  a~2rSdb S9z@S9Z*@S9*@S9*@S9v*@S9*@S9*@S9*@S9 *@S9*@S9&S:Gof00a(design_documents S:GJeŸz Na~2rSVz@S:^N"*@S:fV*@S:n^*@S:vf*@S:~nv*@S:v*@S:~*@S:*@S:Z*@S:0*@S:L*@S:*@S:*@S:*@S:v*@S:*@S:*@S:*@S:*@S:(&S;Go|adoc lete level-1 structure */ 1 19 1 20 /* format: style4 */ 1 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 1 22 (2 administrator bit (1), /* 1 system administrator privileges */ 1 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 1 24 2 nobump bit (1), /* 2 user cannot be bumped */ 1 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 1 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 1 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 1 28* . of same project (distinct from "nobump") */ 1 29 2 nolist bit (1), /* 7 don't list user on "who" */ 1 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 1 31 2 multip bit (1), /* 9 user may have several processes */ 1 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 1 33 2 brief bit (1), /* 11 no login or logout message */ 1 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 1 35 2 vhomedir bit (1), /* 13 user may change homedir */ 1 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 1 37 2 sb_ok bit (1), /* 15 user may be standby */ 1 38 2 pm_ok bit (1), /* 16 user may be primary */ 1 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 1 40 2 daemon bit (1), /* 18 user may login as daemon */ 1 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 1 42 2 no_warning bit (1), /* 20 no warning message */ 1 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 1 44* . in PDT: this user has an individual load control group */ 1 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 1 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 1 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 1 48 2 pad bit (12)) unaligned; 1 49 1 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 1 51 ("none", /* 0 */ 1 52 "administrator", /* 1 */ 1 53 "primary_line", /* 2 */ 1 54 "nobump", /* 3 */ 1 55 "guaranteed_login", /* 4 */ 1 56 "anonymous", /* 5 */ 1 57 "nopreempt", /* 6 */ 1 58 "nolist", /* 7 */ 1 59 "dialok", /* 8 */ 1 60 "multip", /* 9 */ 1 61 "bumping", /* 10 */ 1 62 "brief", /* 11 */ 1 63 "vinitproc", /* 12 */ 1 64 "vhomedir", /* 13 */ 1 65 "nostartup", /* 14 */ 1 66 "no_secondary", /* 15 */ 1 67 "no_prime", /* 16 */ 1 68 "no_eo", /* 17 */ 1 69 "daemon", /* 18 */ 1 70 "", /* 19 vdim OBSOLETE */ 1 71 "no_warning", /* 20 */ 1 72 "igroup", /* 21 */ 1 73 "save_pdir", /* 22 */ 1 74 "disconnect_ok", /* 23 */ 1 75 "save_on_disconnect"); /* 24 */ 1 76 1 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 1 78 ("null", /* 0 */ 1 79 "admin", /* 1 */ 1 80 "", "", /* 2 - 3 */ 1 81 "guar", /* 4 */ 1 82 "anon", /* 5 */ 1 83 "", "", /* 6 - 7 */ 1 84 "dial", /* 8 */ 1 85 "multi_login", /* 9 */ 1 86 "preempting", /* 10 */ 1 87 "", /* 11 */ 1 88 "v_process_overseer", /* 12 */ 1 89 "v_home_dir", /* 13 */ 1 90 "no_start_up", /* 14 */ 1 91 "no_sec", /* 15 */ 1 92 "no_primary", /* 16 */ 1 93 "no_edit_only", /* 17 */ 1 94 "op_login", /* 18 */ 1 95 "", /* 19 */ 1 96 "nowarn", /* 20 */ 1 97 "", "", "", /* 21 - 23 */ 1 98 "save"); /* 24 */ 1 99 1 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 1 101 options(constant) init("000000000010000000010000000000000000"b); 1 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 1 103 1 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 1 105 options(constant) init("000000000010000000010000000000000000"b); 1 106 /* PDT value for (brief, no_warning) is default */ 1 107 1 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 1 109 options(constant) init("000100000110010000010000000000000000"b); 1 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 1 111 2 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 2 2 2 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 4 /* */ 2 5 /* This include file describes the attributes of an absentee job. It is */ 2 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 2 7 /* and PIT.incl.pl1. */ 2 8 /* */ 2 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 2 10 2 11 /****^ HISTORY COMMENTS: 2 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 2 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 2 14* Separated abs_attributes from the request structure 2 15* (abs_message_format.incl.pl1) so that the identical structure could be 2 16* used in the ute structure (user_table_entry.incl.pl1). 2 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 2 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 2 19* Added ABS_ATTRIBUTE_NAMES array. 2 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 2 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 2 22* Added the no_start_up flag. SCP6367 2 23* END HISTORY COMMENTS */ 2 24 2 25 dcl 1 user_abs_attributes aligned based, 2 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 2 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 2 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 2 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 2 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 2 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 2 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 2 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 2 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 2 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 2 36 2 attributes_pad bit (26) unaligned; 2 37 2 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 2 39 "restartable", 2 40 "user_deferred_until_time", 2 41 "proxy", 2 42 "set_bit_cnt", 2 43 "time_in_gmt", 2 44 "user_deferred_indefinitely", 2 45 "secondary_ok", 2 46 "truncate_absout", 2 47 "restarted", 2 48 "no_start_up"); 2 49 2 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 2 51 1 112 1 113 1 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 436 3 1 /* BEGIN INCLUDE FILE ... pdt.incl.pl1 */ 3 2 /* Requires user_attributes.incl.pl1 */ 3 3 3 4 /* Modified 740723 by PG to add AIM info */ 3 5 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 3 6 /* Modified May 1976 by T. Casey to add cutoff warning thresholds and change version to 3 */ 3 7 /* Modified May 1977 by John Gintell to add reqfile, projfile, and SAT to header */ 3 8 /* Modified May 1978 by T. Casey to add pdir_quota to user entry */ 3 9 /* Modified June 1978 by T. Casey to add rel ptr to pdt hash table */ 3 10 /* Modified November 1978 by T. Casey to add max_(fore back)ground, n_(fore back)ground and abs_foreground_cpu_limit */ 3 11 /* Modified October 1979 by T. Casey to add counters for interactive and disconnected processes. */ 3 12 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures (UNCA). */ 3 13 /* Modified May 1980 by R. McDonald to use iod cpu time field for page charging (UNCA) */ 3 14 /* Modified December 1981 by E. N. Kittlitz for user_warn fields */ 3 15 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 3 16 /* Modified September 1982 by E. N. Kittlitz for default ring. */ 3 17 /* Modified 1984-07-05 BIM for min authorization, version to 4 */ 3 18 3 19 dcl (PDT_version init (4), /* version of this declaration */ 3 20 PDT_header_lth init (256), /* length in words of PDT head */ 3 21 PDT_entry_lth init (256), /* length in words of PDT entry */ 3 22 3 23 PDT_project_name_length init (9), /* proper length of pdt.project_name */ 3 24 PDT_person_id_length init (22) /* proper length of user.person_id */ 3 25 ) fixed bin internal static options (constant); 3 26 3 27 dcl 1 pdt based (pdtp) aligned, 3 28 4 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 4 2 4 3 /* the "author" items must always be the first ones in the table. The 4 4* module which moves the converted table to the System Control process 4 5* fills in these data items and assumes them to be at the head of the segment 4 6* regardless of the specific table's actual declaration. The variables 4 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 4 8* respectively. For tables installed in multiple processes, these 4 9* are to be used to lock out multiple installations. */ 4 10 4 11 /* Lock should be used as a modification lock. Since, in general, 4 12* entries may not be moved in system tables, even by installations, 4 13* it is sufficient for only installers and programs that change threads 4 14* to set or respect the lock. Simply updating data in an entry 4 15* requires no such protection. 4 16* 4 17* Last_install_time is used by readers of system tables to detect 4 18* installations or other serious modifications. By checking it before 4 19* and after copying a block of data, they can be protected against 4 20* modifications. 4 21* 4 22* Modules that set the lock should save proc_group_id, and then 4 23* put their group id there for the time they hold the lock. 4 24* if they do not actually install the, they should restore the group id. 4 25**/ 4 26 4 27 2 author aligned, /* validation data about table's author */ 4 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 4 29 3 lock bit (36), /* installation lock */ 4 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 4 31 3 update_authorization bit (1) unal, /* update only authorizations */ 4 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 4 33 3 pad bit (33) unaligned, 4 34 3 last_install_time fixed bin (71), 4 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 4 36 3 w_dir char (64), /* author's working directory */ 4 37 4 38 /* END INCLUDE FILE author.incl.pl1 */ 3 29 3 30 2 max_size fixed bin, /* max number of entries table can grow */ 3 31 2 current_size fixed bin, /* current size of table (in entries) */ 3 32 2 version fixed bin, /* table version */ 3 33 2 freep fixed bin, /* relptr to begin of free chain */ 3 34 2 n_users fixed bin, /* number of entries actually used */ 3 35 2 project_name char (28), /* name of project */ 3 36 2 project_dir char (64), /* treename of project's directory */ 3 37 2 projfile_version fixed bin, 3 38 2 projentry bit (66*36), 3 39 2 pad3 (5) bit (36) aligned, 3 40 2 reqfile_version fixed bin, 3 41 2 reqentry bit (40*36), 3 42 2 pad4 (9) fixed bin, 3 43 2 sat_version fixed bin, 3 44 2 satentry bit (52*36), /* everything in sat.project from project.at on */ 3 45 2 pad5 (4) bit (36) aligned, 3 46 2 date_reqfile_copied fixed bin (71), 3 47 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number, easier than looking in satentry */ 3 48 2 pad2l bit (27) unaligned, 3 49 2 pad2 (16) fixed bin, /* make header 256 words long */ 3 50 2 ht_relp fixed bin (18) aligned, /* if nonzero, pdt has hash table at that loc */ 3 51 2 user (1019) aligned, /* the project definition table entries */ 3 52 3 pad (256) bit (36) aligned; /* each entry is 256 words long */ 3 53 3 54 /* The hash table, if there is one, is right after the last user, and is described in hashst.incl.pl1 */ 3 55 3 56 3 57 3 58 dcl 1 user based (pdtep) aligned, /* declaration of a single PDT entry */ 3 59 2 state fixed bin, /* 1 = normal, 2 = deleted 0 = free */ 3 60 2 lock bit (36), /* update lock */ 3 61 2 person_id char (24) aligned, /* login name of user */ 3 62 2 now_in fixed bin, /* count of users logged in on this entry */ 3 63 2 password char (8) aligned, /* password for anonymous user */ 3 64 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 3 65 2 initial_procedure char (64) aligned, /* initproc and subsystem name packed into one string */ 3 66 2 home_dir char (64) aligned, /* user's default working directory */ 3 67 2 bump_grace fixed bin, /* number of minutes he is protected */ 3 68 2 high_ring fixed bin, /* highest ring user may use */ 3 69 2 default_ring fixed bin (17) unal, /* ring user will start in */ 3 70 2 low_ring fixed bin (17) unal, /* lowest ring user may use */ 3 71 2 outer_module char (32), /* outer module used if user is interactive */ 3 72 2 lot_size fixed bin, /* size of linkage offset table */ 3 73 2 kst_size fixed bin, /* size of known segment table */ 3 74 2 cls_size fixed bin, /* size of combined linkage */ 3 75 2 uflags, /* various flags */ 3 76 3 dont_call_init_admin bit (1) unal, /* call overseer direct */ 3 77 3 ip_given bit (1) unal, /* ip_len gives length of initproc packed in initial_procedure */ 3 78 3 ss_given bit (1) unal, /* subsystem name is packed in initial_procedure */ 3 79 3 flagpad bit (33) unal, 3 80 2 ip_len fixed bin (17) unal, /* length of initproc name packed in initial_procedure */ 3 81 2 ss_len fixed bin (17) unal, /* length of subsystem name packed in initial_procedure */ 3 82 2 dollar_limit float bin, 3 83 2 dollar_charge float bin, /* total dollars spent this month */ 3 84 2 shift_limit (0: 7) float bin, 3 85 2 daton fixed bin (71), /* date user added to system */ 3 86 2 datof fixed bin (71), /* date user deleted */ 3 87 2 last_login_time fixed bin (71), /* time of last login */ 3 88 2 last_login_unit char (4), /* terminal id last used */ 3 89 2 last_login_type fixed bin (17) unal, /* terminal type */ 3 90 2 last_login_line_type fixed bin (17) unal, /* terminal line type */ 3 91 2 time_last_bump fixed bin (71), /* for bump-wait */ 3 92 2 last_update fixed bin (71), /* time of last transaction */ 3 93 2 logins fixed bin, /* number of logins */ 3 94 2 crashes fixed bin, /* sessions abnormally terminated */ 3 95 2 interactive (0: 7), /* interactive use, shifts 0-7 */ 3 96 3 charge float bin, /* total dollar charge this shift */ 3 97 3 xxx fixed bin, 3 98 3 cpu fixed bin (71), /* cpu usage in microseconds */ 3 99 3 core fixed bin (71), /* core demand in page-microseconds */ 3 100 3 connect fixed bin (71), /* total console time in microseconds */ 3 101 3 io_ops fixed bin (71), /* total i/o ops on terminal */ 3 102 2 absentee (4), /* absentee use, queues 1-4 */ 3 103 3 charge float bin, /* dollar charge this queue */ 3 104 3 jobs fixed bin, /* number of jobs submitted */ 3 105 3 cpu fixed bin (71), /* total cpu time in microseconds */ 3 106 3 memory fixed bin (71), /* total memory demand */ 3 107 2 iod (4), /* io daemon use, queues 1-4 */ 3 108 3 charge float bin, /* dollar charge this queue */ 3 109 3 pieces fixed bin, /* pieces of output requested */ 3 110 3 pad fixed bin (35), 3 111 3 pages fixed bin (35), /* number of pages output */ 3 112 3 lines fixed bin (71), /* total record count of output */ 3 113 2 devices (16) float bin, /* device charges */ 3 114 2 time_last_reset fixed bin (71), /* time PDT last updated */ 3 115 2 absolute_limit float bin, /* Limit, not reset monthly */ 3 116 2 absolute_spent float bin, /* Spending against this */ 3 117 2 absolute_cutoff fixed bin (71), /* Spending will be reset on this date */ 3 118 2 absolute_increm fixed bin, /* .. time increment code. 0 = don't reset */ 3 119 2 pad_was_authorization bit (72) aligned, 3 120 2 group char (8), /* group for this user (if at.igroup = "1"b) */ 3 121 2 warn_days fixed bin (17) unaligned, /* warn user if less than this many days to cutoff */ 3 122 2 warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of funds left */ 3 123 2 warn_dollars float bin, /* warn user if less than this amount of funds left */ 3 124 2 n_foreground fixed bin (9) unsigned unaligned, /* number of foreground and background processes */ 3 125 2 n_background fixed bin (9) unsigned unaligned, /* that this user has. see limits just below */ 3 126 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and */ 3 127 2 max_background fixed bin (9) unsigned unaligned, /* background processes that this user can have */ 3 128 2 n_interactive fixed bin (9) unsigned unaligned, /* number of interactive processes that user has */ 3 129 2 n_disconnected fixed bin (9) unsigned unaligned, /* number of disconnected processes that user has */ 3 130 2 pdtupad1 fixed bin (18) unsigned unaligned, 3 131 2 user_warn_days fixed bin (17) unaligned, /* warn user if less than this many days to user cutoff */ 3 132 2 user_warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of user funds left */ 3 133 2 user_warn_dollars float bin, /* warn user if less than this amount of user funds left */ 3 134 2 user_authorization (2) bit (72) aligned, /* range */ 3 135 2 pdtupad (5) fixed bin, 3 136 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit (sec) on foreground absentee jobs */ 3 137 2 pdir_quota fixed bin (17) unaligned, /* quota to put on user's pdir (0 => use default) */ 3 138 2 chain fixed bin; /* free chain */ 3 139 3 140 /* END INCLUDE FILE ... pdt.incl.pl1 */ 437 438 439 end proj_usage_report; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/29/88 0859.7 proj_usage_report.pl1 >spec>install>1093>proj_usage_report.pl1 436 1 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 1-112 2 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.incl.pl1 437 3 09/13/84 0921.6 pdt.incl.pl1 >ldd>include>pdt.incl.pl1 3-29 4 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.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. MILLION 000016 constant fixed bin(35,0) initial dcl 49 ref 324 NEVER 000020 constant fixed bin(71,0) initial dcl 48 ref 274 387 OPEN 000022 constant float bin(27) initial dcl 47 ref 241 241 273 275 276 286 351 395 395 absentee 244 based structure array level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 291 absentee 244 026350 automatic structure array level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 291* 291 absolute_cutoff 350 based fixed bin(71,0) level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 387 389* absolute_cutoff 350 026350 automatic fixed bin(71,0) level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 274* absolute_increm 352 based fixed bin(17,0) level 2 dcl 3-58 ref 395 absolute_limit 346 based float bin(27) level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 395 395 395* absolute_limit 346 026350 automatic float bin(27) level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 273* absolute_spent 347 based float bin(27) level 2 dcl 3-58 set ref 395 395* addamt 026053 automatic float bin(27) dcl 73 set ref 369* addr builtin function dcl 94 ref 222 222 226 283 304 al 026336 automatic fixed bin(21,0) dcl 83 set ref 130* 132 138 142 145 146 150 153* 161 162 163 164 165 167 167 171 171 172 172 173 173 174 174 175 175 176 176 178* 183 183 185 185 190 190 amt parameter float bin(27) dcl 347 set ref 338 353* 357* answer 026770 automatic char(10) dcl 321 set ref 330* 331 331* 332 332* 334 ap 026334 automatic pointer dcl 82 set ref 130* 132 138 142 145 146 150 153* 161 162 163 164 165 167 171 171 172 172 173 173 174 174 175 175 176 176 178* 183 185 190 arg_count 026346 automatic fixed bin(17,0) dcl 87 set ref 123* 129 bchr based char packed unaligned dcl 92 set ref 132 138 142 145 146 150 161 162 163 164 165 167* 171 171 172 172 173 173 174 174 175 175 176 176 183* 185* 190* begini 026331 automatic fixed bin(17,0) dcl 81 set ref 261* 266* 280 brief 026042 automatic bit(1) packed unaligned dcl 65 set ref 119* 171* 222 370 391 charge 244 based float bin(27) array level 3 in structure "user" dcl 3-58 in procedure "pur" set ref 380 415 415* charge 274 based float bin(27) array level 3 in structure "user" dcl 3-58 in procedure "pur" set ref 381 422 422* charge 124 based float bin(27) array level 3 in structure "user" dcl 3-58 in procedure "pur" set ref 376 405 405* clock builtin function dcl 94 ref 212 212 com_err_ 000112 constant entry external dcl 109 ref 125 135 155 167 180 185 190 196 207 215 con 026340 automatic fixed bin(71,0) dcl 85 set ref 374* 377* 377 395* 395* connect 132 based fixed bin(71,0) array level 3 dcl 3-58 set ref 377 405 405* 405* core 130 based fixed bin(71,0) array level 3 dcl 3-58 ref 405 405 cpu 126 based fixed bin(71,0) array level 3 in structure "user" dcl 3-58 in procedure "pur" set ref 405 405* 405* cpu 246 based fixed bin(71,0) array level 3 in structure "user" dcl 3-58 in procedure "pur" set ref 415 415* 415* cu_$arg_count 000100 constant entry external dcl 104 ref 123 cu_$arg_ptr 000076 constant entry external dcl 103 ref 130 153 178 current_size 36 based fixed bin(17,0) level 2 dcl 3-27 ref 225 cutinc 000000 constant char(8) initial array packed unaligned dcl 50 set ref 395* cuttime 026064 automatic char(8) dcl 76 set ref 387* 389* 395 395* date_time_ 000110 constant entry external dcl 108 ref 212 389 devices 324 026350 automatic float bin(27) array level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 293* 293 devices 324 based float bin(27) array level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 293 384 429 429* dirname 000010 internal static char(168) initial packed unaligned dcl 114 set ref 183* 205* 207* divide builtin function dcl 94 ref 324 325 327 dollar_charge 75 based float bin(27) level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 227 239 241 244 246 286 288 391* 395* dollar_charge 75 026350 automatic float bin(27) level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 303* dollar_limit 74 based float bin(27) level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 241 244 245 246 286 369* dollar_limit 74 026350 automatic float bin(27) level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 276* dvt 026071 automatic structure array level 1 dcl 78 set ref 222 222 ec 026337 automatic fixed bin(35,0) dcl 84 set ref 123* 124 125* 130* 131 153* 154 178* 179 183* 184 185* 205* 207* 214* 215 215* 308* en 000100 automatic char(32) packed unaligned dcl 53 set ref 121* 134 138* 183* 200 201* 202* 202 205* 207* endi 026332 automatic fixed bin(17,0) dcl 81 set ref 262* 267* 280 error_table_$badopt 000062 external static fixed bin(17,0) dcl 96 set ref 190* expand_pathname_$add_suffix 000102 constant entry external dcl 105 ref 183 flag 000115 automatic char(1) dcl 57 set ref 365* 367* 368* 391* 395* flt_bin_sort_ 000074 constant entry external dcl 102 ref 258 h 026066 automatic fixed bin(17,0) dcl 77 set ref 375* 376 377* 379* 380 381* 383* 384* 404* 405 405 405 405 405 405* 405 405 405 405 405 405 405 405* 414* 415 415 415 415 415* 415 415 415 415 415* 421* 422 422 422 422 422* 422 422 422 422* 428* 429 429 429* hcs_$initiate 000114 constant entry external dcl 110 ref 205 hcs_$terminate_noname 000116 constant entry external dcl 111 ref 308 hours 026765 automatic fixed bin(17,0) dcl 318 set ref 327* 330* i 026067 automatic fixed bin(17,0) dcl 77 set ref 129* 130* 151* 151 153* 177* 177 178* 222* 225* 226 248* 280* 281 283* idsort_ 000072 constant entry external dcl 101 ref 255 incr 026333 automatic fixed bin(17,0) dcl 81 set ref 263* 268* 280 interactive 124 026350 automatic structure array level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 290* 290 interactive 124 based structure array level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 290 io_ops 134 based fixed bin(71,0) array level 3 dcl 3-58 set ref 405 405 405* ioa_ 000104 constant entry external dcl 106 ref 156 217 218 298 299 391 394 395 405 415 422 429 ioa_$rsnnl 000106 constant entry external dcl 107 ref 302 330 356 iod 274 based structure array level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 292 iod 274 026350 automatic structure array level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 292* 292 j 026764 automatic fixed bin(17,0) dcl 317 set ref 330* jj 027002 automatic fixed bin(17,0) dcl 348 set ref 356* jobs 245 based fixed bin(17,0) array level 3 dcl 3-58 set ref 415 415* lim parameter char(8) dcl 346 set ref 338 352* 356* limit parameter float bin(27) dcl 345 set ref 338 351 356* 357 limv 000116 automatic char(8) dcl 58 set ref 369* 370 370* 391* 395* lines 300 based fixed bin(71,0) array level 3 dcl 3-58 set ref 422 422* logins 122 based fixed bin(17,0) level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 289 395* logins 122 026350 automatic fixed bin(17,0) level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 289* 289 long 026046 automatic bit(1) packed unaligned dcl 69 set ref 119* 174* 394 403 m 026070 automatic fixed bin(17,0) dcl 77 set ref 224* 229* 230* 235* 236 239 241 244 245 246 248 249 249 254* 255 255* 258* 261 267 max_rs_number 026347 automatic fixed bin(17,0) dcl 88 set ref 116* 213 217 memory 250 based fixed bin(71,0) array level 3 dcl 3-58 ref 415 415 minutes 026766 automatic fixed bin(17,0) dcl 319 set ref 325* 327 328* 328 330* mod builtin function dcl 94 ref 326 328 name 026071 automatic char(8) array level 2 dcl 78 set ref 429* no_header 026043 automatic bit(1) packed unaligned dcl 66 set ref 119* 171* 172* 211 now_in 10 based fixed bin(17,0) level 2 dcl 3-58 ref 368 null builtin function dcl 94 ref 206 nzsw 000114 automatic bit(1) dcl 56 set ref 119* 145* 227 pages 277 based fixed bin(35,0) array level 3 dcl 3-58 set ref 422 422* pdt based structure level 1 dcl 3-27 pdtep 000112 automatic pointer dcl 55 set ref 226* 227 227 230 236 239 241 241 244 244 245 246 246 283* 286 286 288 289 290 291 292 293 304* 364 365 368 369 376 377 380 381 384 387 389 391 391 395 395 395 395 395 395 395 395 395 405 405 405 405 405 405 405 405 405 405 405 405 405 415 415 415 415 415 415 415 415 415 422 422 422 422 422 422 422 422 429 429 pdtp 000110 automatic pointer dcl 54 set ref 205* 206 214 215 217 222 225 226 283 308* person_id 2 based char(24) level 2 in structure "user" dcl 3-58 in procedure "pur" set ref 230 236 391* 395* person_id 2 026350 automatic char(24) level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 302* pieces 275 based fixed bin(17,0) array level 3 dcl 3-58 set ref 422 422* print_count 026052 automatic fixed bin(17,0) dcl 72 set ref 277* 282* 282 297 302* project_name 42 based char(28) level 2 dcl 3-27 set ref 217* rev 026047 automatic bit(1) packed unaligned dcl 70 set ref 119* 175* 260 rs_name 026031 automatic char(32) packed unaligned dcl 63 set ref 214* 217* rs_number 356 based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 3-27 set ref 214 215* 222 rtrim builtin function dcl 94 ref 202 sc 026050 automatic fixed bin(17,0) dcl 71 set ref 120* 152* 152 195 seconds 026767 automatic fixed bin(17,0) dcl 320 set ref 324* 325 326* 326 330* shift_limit 76 026350 automatic float bin(27) array level 2 dcl 90 set ref 275* sort_sw 026041 automatic fixed bin(17,0) dcl 64 set ref 118* 160* 161* 162* 163* 164* 165* 239 241 245 246 255 state based fixed bin(17,0) level 2 in structure "user" dcl 3-58 in procedure "pur" ref 227 364 365 state 026350 automatic fixed bin(17,0) level 2 in structure "total_user" dcl 90 in procedure "pur" set ref 272* substr builtin function dcl 94 set ref 132 331 331* 332 332* subtotal_limit 026062 automatic float bin(27) dcl 75 set ref 278* 286* 286 299 299* 303 subtotal_nolimit 026063 automatic float bin(27) dcl 75 set ref 278* 288* 288 299 303 system_info_$device_prices_rs 000066 constant entry external dcl 99 ref 222 system_info_$max_rs_number 000120 constant entry external dcl 112 ref 116 system_info_$rs_name 000070 constant entry external dcl 100 ref 214 tempa 026343 automatic float bin(27) dcl 86 set ref 373* 380* 380 395* tempdev 026345 automatic float bin(27) dcl 86 set ref 373* 384* 384 395* tempi 026342 automatic float bin(27) dcl 86 set ref 373* 376* 376 395* tempio 026344 automatic float bin(27) dcl 86 set ref 373* 381* 381 395* time parameter fixed bin(71,0) dcl 316 ref 311 324 time_string 026054 automatic char(24) dcl 74 set ref 212* 217* total 026044 automatic bit(1) packed unaligned dcl 67 set ref 119* 173* 284 total_user 026350 automatic structure level 1 dcl 90 set ref 271* 304 unspec builtin function dcl 94 set ref 271* user 400 based structure array level 2 in structure "pdt" dcl 3-27 in procedure "pur" set ref 226 283 user based structure level 1 dcl 3-58 in procedure "pur" user_attributes based structure level 1 dcl 1-21 user_count 026051 automatic fixed bin(17,0) dcl 72 set ref 120* 141* 141 142 229 235 235* 254 user_info_ 000064 constant entry external dcl 98 ref 201 user_sw 026045 automatic bit(1) dcl 68 set ref 119* 132 147* 228 x 000120 automatic char(32) array dcl 59 set ref 142* 230 236* 255* y 020050 automatic fixed bin(17,0) array dcl 60 set ref 248* 283 yy 022043 automatic fixed bin(17,0) array dcl 61 set ref 148* 249* 255* 258* 281 283 z 024036 automatic float bin(27) array dcl 62 set ref 239* 241* 244* 245* 246* 258* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 2-38 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 1-77 PDT_entry_lth internal static fixed bin(17,0) initial dcl 3-19 PDT_header_lth internal static fixed bin(17,0) initial dcl 3-19 PDT_person_id_length internal static fixed bin(17,0) initial dcl 3-19 PDT_project_name_length internal static fixed bin(17,0) initial dcl 3-19 PDT_version internal static fixed bin(17,0) initial dcl 3-19 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 1-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 1-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 1-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 1-50 user_abs_attributes based structure level 1 dcl 2-25 NAMES DECLARED BY EXPLICIT CONTEXT. VALID 001104 constant label dcl 156 ref 168 bad_arg_code 000626 constant label dcl 125 ref 131 cv_limit 003052 constant entry internal dcl 338 ref 369 cv_time 002744 constant entry internal dcl 311 ref 395 395 405 405 405 405 415 415 display_user 003122 constant entry internal dcl 362 ref 284 305 got_user 002234 constant label dcl 239 ref 230 next_user 002302 constant label dcl 251 ref 232 proj_usage_report 000562 constant entry external dcl 13 pur 000553 constant entry external dcl 13 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4324 4446 4112 4334 Length 4746 4112 122 264 212 52 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME pur 12108 external procedure is an external procedure. cv_time internal procedure shares stack frame of external procedure pur. cv_limit internal procedure shares stack frame of external procedure pur. display_user internal procedure shares stack frame of external procedure pur. STORAGE FOR INTERNAL STATIC VARIABLES. LOC IDENTIFIER BLOCK NAME 000010 dirname pur STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME pur 000100 en pur 000110 pdtp pur 000112 pdtep pur 000114 nzsw pur 000115 flag pur 000116 limv pur 000120 x pur 020050 y pur 022043 yy pur 024036 z pur 026031 rs_name pur 026041 sort_sw pur 026042 brief pur 026043 no_header pur 026044 total pur 026045 user_sw pur 026046 long pur 026047 rev pur 026050 sc pur 026051 user_count pur 026052 print_count pur 026053 addamt pur 026054 time_string pur 026062 subtotal_limit pur 026063 subtotal_nolimit pur 026064 cuttime pur 026066 h pur 026067 i pur 026070 m pur 026071 dvt pur 026331 begini pur 026332 endi pur 026333 incr pur 026334 ap pur 026336 al pur 026337 ec pur 026340 con pur 026342 tempi pur 026343 tempa pur 026344 tempio pur 026345 tempdev pur 026346 arg_count pur 026347 max_rs_number pur 026350 total_user pur 026764 j cv_time 026765 hours cv_time 026766 minutes cv_time 026767 seconds cv_time 026770 answer cv_time 027002 jj cv_limit THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a r_g_a r_ne_as alloc_char_temp call_ext_out_desc call_ext_out return_mac bound_ck_signal mdfx1 shorten_stack ext_entry divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr date_time_ expand_pathname_$add_suffix flt_bin_sort_ hcs_$initiate hcs_$terminate_noname idsort_ ioa_ ioa_$rsnnl system_info_$device_prices_rs system_info_$max_rs_number system_info_$rs_name user_info_ 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 13 000552 116 000567 118 000575 119 000577 120 000606 121 000610 123 000613 124 000624 125 000626 127 000646 129 000647 130 000657 131 000674 132 000676 134 000705 135 000711 136 000741 138 000742 139 000757 141 000761 142 000762 144 000776 145 000777 146 001007 147 001013 148 001015 149 001026 150 001027 151 001033 152 001034 153 001035 154 001052 155 001054 156 001104 158 001120 160 001121 161 001122 162 001133 163 001142 164 001151 165 001160 167 001167 168 001226 170 001227 171 001230 172 001244 173 001257 174 001272 175 001305 176 001320 177 001330 178 001331 179 001346 180 001350 181 001400 183 001401 184 001437 185 001441 186 001470 188 001471 190 001472 191 001527 193 001530 195 001532 196 001535 197 001565 200 001566 201 001572 202 001612 203 001640 205 001641 206 001705 207 001711 208 001747 211 001750 212 001752 213 001771 214 001773 215 002020 217 002056 218 002116 222 002132 224 002155 225 002156 226 002167 227 002172 228 002200 229 002202 230 002211 231 002220 232 002222 235 002223 236 002227 239 002234 241 002243 244 002255 245 002261 246 002267 248 002275 249 002300 251 002302 254 002304 255 002306 258 002335 260 002356 261 002360 262 002362 263 002364 264 002366 266 002367 267 002371 268 002373 271 002375 272 002400 273 002402 274 002404 275 002406 276 002417 277 002421 278 002422 280 002425 281 002446 282 002451 283 002452 284 002456 286 002461 288 002471 289 002474 290 002476 291 002531 292 002557 293 002612 295 002625 297 002630 298 002633 299 002644 302 002670 303 002724 304 002727 305 002731 308 002732 309 002743 311 002744 324 002746 325 002753 326 002755 327 002761 328 002764 330 002767 331 003025 332 003034 334 003042 338 003052 351 003054 352 003057 353 003063 354 003065 356 003066 357 003116 359 003121 362 003122 364 003123 365 003125 367 003132 368 003134 369 003141 370 003153 373 003162 374 003167 375 003171 376 003175 377 003203 378 003206 379 003210 380 003215 381 003223 382 003226 383 003230 384 003235 385 003242 387 003244 389 003253 391 003270 394 003333 395 003346 403 003503 404 003505 405 003511 413 003642 414 003644 415 003651 420 003751 421 003753 422 003761 427 004035 428 004037 429 004045 431 004077 434 004101 ----------------------------------------------------------- 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