COMPILATION LISTING OF SEGMENT usage_total Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/29/88 0921.1 mst Mon Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1987 * 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 /* format: style3 */ 13 /* Modified 1984-08-31 BIM for v3 use_totals */ 14 15 /****^ HISTORY COMMENTS: 16* 1) change(86-10-15,Parisek), approve(87-06-17,MCR7570), 17* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 18* Suppress error reporting of a non existent pdt of a renamed project. 19* 2) change(88-04-27,GDixon), approve(88-08-15,MCR7969), 20* audit(88-08-04,Lippard), install(88-08-29,MR12.2-1093): 21* A) Add misc charges from projfile into use_totals.dollar_charge, in 22* addition to summing them in the misc field. (as 471, phx19221) 23* END HISTORY COMMENTS */ 24 25 usage_total: 26 procedure options (variable); 27 28 /* program to clear all usage in pdt's */ 29 30 dcl satp ptr, /* pointer to the sat */ 31 pdtp ptr, /* pointer to the pdt */ 32 pp ptr, /* ptr to projfile */ 33 satep ptr, /* ptr to sat entry */ 34 pdtep ptr, /* ptr to pdt entry */ 35 ap ptr, 36 dtemp fixed bin (71), 37 ftemp float bin, 38 disk_price float bin, 39 al fixed bin (21), 40 (sat_dir, pdtdir, tot_dir, projfile_dir) 41 char (168), 42 (sat_ename, projfile_ename, tot_ename, pdt_ename) 43 char (32); 44 45 dcl arg char (al) based (ap); 46 47 dcl error_table_$unimplemented_version 48 fixed bin (35) ext static; 49 50 dcl absolute_pathname_ entry (character (*), character (*), fixed binary (35)); 51 dcl expand_pathname_$add_suffix 52 entry (character (*), character (*), character (*), character (*), fixed binary (35)); 53 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 54 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 55 dcl com_err_ entry options (variable); 56 dcl com_err_$suppress_name 57 entry () options (variable); 58 dcl initiate_file_ entry (character (*), character (*), bit (*), pointer, fixed binary (24), fixed binary (35)) 59 ; 60 dcl terminate_file_ entry (pointer, fixed binary (24), bit (*), fixed binary (35)); 61 dcl pathname_ entry (character (*), character (*)) returns (character (168)); 62 dcl system_info_$prices_rs 63 entry (fixed bin, (0:7) float bin, (0:7) float bin, (0:7) float bin, (0:7) float bin, 64 float bin, float bin); 65 66 dcl (addr, null, rtrim, clock) 67 builtin; 68 69 dcl ec fixed bin (35), 70 t fixed bin, /* user type index */ 71 (i, j, k) fixed bin; 72 declare arg_count fixed bin; 73 declare ME char (32) init ("usage_total") int static options (constant); 74 declare cleanup condition; 75 76 1 1 /* BEGIN INCLUDE FILE ... terminate_file.incl.pl1 */ 1 2 /* format: style2,^inddcls,idind32 */ 1 3 1 4 declare 1 terminate_file_switches based, 1 5 2 truncate bit (1) unaligned, 1 6 2 set_bc bit (1) unaligned, 1 7 2 terminate bit (1) unaligned, 1 8 2 force_write bit (1) unaligned, 1 9 2 delete bit (1) unaligned; 1 10 1 11 declare TERM_FILE_TRUNC bit (1) internal static options (constant) initial ("1"b); 1 12 declare TERM_FILE_BC bit (2) internal static options (constant) initial ("01"b); 1 13 declare TERM_FILE_TRUNC_BC bit (2) internal static options (constant) initial ("11"b); 1 14 declare TERM_FILE_TERM bit (3) internal static options (constant) initial ("001"b); 1 15 declare TERM_FILE_TRUNC_BC_TERM bit (3) internal static options (constant) initial ("111"b); 1 16 declare TERM_FILE_FORCE_WRITE bit (4) internal static options (constant) initial ("0001"b); 1 17 declare TERM_FILE_DELETE bit (5) internal static options (constant) initial ("00001"b); 1 18 1 19 /* END INCLUDE FILE ... terminate_file.incl.pl1 */ 77 2 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 78 3 1 /* BEGIN INCLUDE FILE ... sat.incl.pl1 */ 3 2 3 3 3 4 3 5 3 6 /****^ HISTORY COMMENTS: 3 7* 1) change(86-09-05,Parisek), approve(87-06-17,MCR7570), 3 8* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 3 9* Expand comment line of project.state to include the renamed state (state = 3 10* 3). 3 11* END HISTORY COMMENTS */ 3 12 3 13 3 14 3 15 /* Modified 740723 by PG to add AIM info */ 3 16 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 3 17 /* Modified May 1976 by T. Casey to add project cutoff limits */ 3 18 /* Modified May 1978 by T. Casey to add pdir_quota */ 3 19 /* Modified November 1978 by T. Casey to add max_(fore back)ground and abs_foreground_cpu_limit */ 3 20 /* Modified July 1979 by J. N. R. Barnecut to support multiple rate structures. (UNCA) */ 3 21 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 3 22 /* Modified 1984-07-05 BIM range of authorizations, version 3 */ 3 23 3 24 dcl (SAT_version init (3), /* version 2 of this declaration */ 3 25 3 26 SAT_header_lth init (466), /* length in words of SAT header */ 3 27 SAT_entry_lth init (80), /* length in words of SAT entry */ 3 28 3 29 SAT_project_name_length init (9) /* proper length of project.project_id */ 3 30 ) fixed bin internal static options (constant); 3 31 3 32 dcl 1 sat based (satp) aligned, 3 33 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 34 3 35 2 max_size fixed bin, /* max number of entries table can grow */ 3 36 2 current_size fixed bin, /* current size of table (in entries) */ 3 37 2 version fixed bin, /* version number of table (word 32) */ 3 38 2 freep fixed bin, /* free chain ptr. 0 if no free entries */ 3 39 2 n_projects fixed bin, /* number of entries actually used */ 3 40 2 pad_was_max_users bit (36) aligned, 3 41 2 max_units fixed bin, /* maximum number of login-units per session */ 3 42 2 pad_was_max_prim bit (36) aligned, 3 43 2 uwt_size fixed bin, /* size of User Weight Table */ 3 44 2 uwt (24) aligned, /* User Weight Table */ 3 45 3 initproc char (64) unaligned, /* user's initial procedure */ 3 46 3 units fixed bin, /* weight of initial procedure */ 3 47 2 system_admin (2) char (32) unal, /* system administrator ID */ 3 48 2 pad1 (4) fixed bin, /* padding to 466 wds */ 3 49 2 project (3258), /* The SAT entries. 255K segment. */ 3 50 3 pad (80) fixed bin; /* each entry is 80 words long */ 3 51 3 52 3 53 dcl 1 project based (satep) aligned, /* declaration of a single SAT entry */ 3 54 2 state fixed bin, /* state 1 = normal, 0 = free, 2 = deleted, 3 = renamed */ 3 55 2 project_id char (12) unaligned, /* project's name */ 3 56 2 project_dir char (64) unaligned, /* project's directory */ 3 57 2 pdt_ptr pointer, /* pointer to current PDT */ 3 58 2 max_users fixed bin, /* maximum number of users from project */ 3 59 2 n_users fixed bin, /* current number */ 3 60 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 3 61 2 admin (4) aligned, /* list of project's administrators */ 3 62 3 userid char (30) unal, /* administrator's user-id (personid.projectid) */ 3 63 3 pad char (2) unal, 3 64 2 cutoff char (1), /* if project is cut off, why. */ 3 65 2 min_ring fixed bin, /* lowest ring for project */ 3 66 2 max_ring fixed bin, /* highest ring for project */ 3 67 2 alias char (8) unal, /* project alias */ 3 68 2 group char (8) unal, /* default group for this project */ 3 69 2 grace_max fixed bin, /* maximum bump grace */ 3 70 2 audit bit (36), /* audit flags for project */ 3 71 2 project_authorization (2) bit (72), /* authorization of this project */ 3 72 2 groups (2) char (8) unal, /* authorized groups for this project */ 3 73 2 days_to_cutoff fixed bin (17) unaligned, /* these figures are as of last running of daily_summary */ 3 74 2 pct_balance fixed bin (17) unaligned, /* they are used for warning message printing only */ 3 75 2 dollars_to_cutoff float bin, /* and are not to be taken as up-to-date figures */ 3 76 2 pdir_quota fixed bin (17) unaligned, /* max pdir quota allowed for project */ 3 77 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and background */ 3 78 2 max_background fixed bin (9) unsigned unaligned, /* processes that a user on this project can have */ 3 79 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit on foreground absentee jobs */ 3 80 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0=default rates ) */ 3 81 2 satpad1 fixed bin (9) unsigned unaligned, 3 82 2 satpad (1) bit (36) aligned, /* pad to 80 words */ 3 83 2 chain fixed bin; /* if free entry, chain */ 3 84 3 85 /* END INCLUDE FILE ... sat.incl.pl1 */ 79 5 1 /* BEGIN INCLUDE FILE ... pdt.incl.pl1 */ 5 2 /* Requires user_attributes.incl.pl1 */ 5 3 5 4 /* Modified 740723 by PG to add AIM info */ 5 5 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 5 6 /* Modified May 1976 by T. Casey to add cutoff warning thresholds and change version to 3 */ 5 7 /* Modified May 1977 by John Gintell to add reqfile, projfile, and SAT to header */ 5 8 /* Modified May 1978 by T. Casey to add pdir_quota to user entry */ 5 9 /* Modified June 1978 by T. Casey to add rel ptr to pdt hash table */ 5 10 /* Modified November 1978 by T. Casey to add max_(fore back)ground, n_(fore back)ground and abs_foreground_cpu_limit */ 5 11 /* Modified October 1979 by T. Casey to add counters for interactive and disconnected processes. */ 5 12 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures (UNCA). */ 5 13 /* Modified May 1980 by R. McDonald to use iod cpu time field for page charging (UNCA) */ 5 14 /* Modified December 1981 by E. N. Kittlitz for user_warn fields */ 5 15 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 5 16 /* Modified September 1982 by E. N. Kittlitz for default ring. */ 5 17 /* Modified 1984-07-05 BIM for min authorization, version to 4 */ 5 18 5 19 dcl (PDT_version init (4), /* version of this declaration */ 5 20 PDT_header_lth init (256), /* length in words of PDT head */ 5 21 PDT_entry_lth init (256), /* length in words of PDT entry */ 5 22 5 23 PDT_project_name_length init (9), /* proper length of pdt.project_name */ 5 24 PDT_person_id_length init (22) /* proper length of user.person_id */ 5 25 ) fixed bin internal static options (constant); 5 26 5 27 dcl 1 pdt based (pdtp) aligned, 5 28 6 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 6 2 6 3 /* the "author" items must always be the first ones in the table. The 6 4* module which moves the converted table to the System Control process 6 5* fills in these data items and assumes them to be at the head of the segment 6 6* regardless of the specific table's actual declaration. The variables 6 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 6 8* respectively. For tables installed in multiple processes, these 6 9* are to be used to lock out multiple installations. */ 6 10 6 11 /* Lock should be used as a modification lock. Since, in general, 6 12* entries may not be moved in system tables, even by installations, 6 13* it is sufficient for only installers and programs that change threads 6 14* to set or respect the lock. Simply updating data in an entry 6 15* requires no such protection. 6 16* 6 17* Last_install_time is used by readers of system tables to detect 6 18* installations or other serious modifications. By checking it before 6 19* and after copying a block of data, they can be protected against 6 20* modifications. 6 21* 6 22* Modules that set the lock should save proc_group_id, and then 6 23* put their group id there for the time they hold the lock. 6 24* if they do not actually install the, they should restore the group id. 6 25**/ 6 26 6 27 2 author aligned, /* validation data about table's author */ 6 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 6 29 3 lock bit (36), /* installation lock */ 6 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 6 31 3 update_authorization bit (1) unal, /* update only authorizations */ 6 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 6 33 3 pad bit (33) unaligned, 6 34 3 last_install_time fixed bin (71), 6 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 6 36 3 w_dir char (64), /* author's working directory */ 6 37 6 38 /* END INCLUDE FILE author.incl.pl1 */ 5 29 5 30 2 max_size fixed bin, /* max number of entries table can grow */ 5 31 2 current_size fixed bin, /* current size of table (in entries) */ 5 32 2 version fixed bin, /* table version */ 5 33 2 freep fixed bin, /* relptr to begin of free chain */ 5 34 2 n_users fixed bin, /* number of entries actually used */ 5 35 2 project_name char (28), /* name of project */ 5 36 2 project_dir char (64), /* treename of project's directory */ 5 37 2 projfile_version fixed bin, 5 38 2 projentry bit (66*36), 5 39 2 pad3 (5) bit (36) aligned, 5 40 2 reqfile_version fixed bin, 5 41 2 reqentry bit (40*36), 5 42 2 pad4 (9) fixed bin, 5 43 2 sat_version fixed bin, 5 44 2 satentry bit (52*36), /* everything in sat.project from project.at on */ 5 45 2 pad5 (4) bit (36) aligned, 5 46 2 date_reqfile_copied fixed bin (71), 5 47 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number, easier than looking in satentry */ 5 48 2 pad2l bit (27) unaligned, 5 49 2 pad2 (16) fixed bin, /* make header 256 words long */ 5 50 2 ht_relp fixed bin (18) aligned, /* if nonzero, pdt has hash table at that loc */ 5 51 2 user (1019) aligned, /* the project definition table entries */ 5 52 3 pad (256) bit (36) aligned; /* each entry is 256 words long */ 5 53 5 54 /* The hash table, if there is one, is right after the last user, and is described in hashst.incl.pl1 */ 5 55 5 56 5 57 5 58 dcl 1 user based (pdtep) aligned, /* declaration of a single PDT entry */ 5 59 2 state fixed bin, /* 1 = normal, 2 = deleted 0 = free */ 5 60 2 lock bit (36), /* update lock */ 5 61 2 person_id char (24) aligned, /* login name of user */ 5 62 2 now_in fixed bin, /* count of users logged in on this entry */ 5 63 2 password char (8) aligned, /* password for anonymous user */ 5 64 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 5 65 2 initial_procedure char (64) aligned, /* initproc and subsystem name packed into one string */ 5 66 2 home_dir char (64) aligned, /* user's default working directory */ 5 67 2 bump_grace fixed bin, /* number of minutes he is protected */ 5 68 2 high_ring fixed bin, /* highest ring user may use */ 5 69 2 default_ring fixed bin (17) unal, /* ring user will start in */ 5 70 2 low_ring fixed bin (17) unal, /* lowest ring user may use */ 5 71 2 outer_module char (32), /* outer module used if user is interactive */ 5 72 2 lot_size fixed bin, /* size of linkage offset table */ 5 73 2 kst_size fixed bin, /* size of known segment table */ 5 74 2 cls_size fixed bin, /* size of combined linkage */ 5 75 2 uflags, /* various flags */ 5 76 3 dont_call_init_admin bit (1) unal, /* call overseer direct */ 5 77 3 ip_given bit (1) unal, /* ip_len gives length of initproc packed in initial_procedure */ 5 78 3 ss_given bit (1) unal, /* subsystem name is packed in initial_procedure */ 5 79 3 flagpad bit (33) unal, 5 80 2 ip_len fixed bin (17) unal, /* length of initproc name packed in initial_procedure */ 5 81 2 ss_len fixed bin (17) unal, /* length of subsystem name packed in initial_procedure */ 5 82 2 dollar_limit float bin, 5 83 2 dollar_charge float bin, /* total dollars spent this month */ 5 84 2 shift_limit (0: 7) float bin, 5 85 2 daton fixed bin (71), /* date user added to system */ 5 86 2 datof fixed bin (71), /* date user deleted */ 5 87 2 last_login_time fixed bin (71), /* time of last login */ 5 88 2 last_login_unit char (4), /* terminal id last used */ 5 89 2 last_login_type fixed bin (17) unal, /* terminal type */ 5 90 2 last_login_line_type fixed bin (17) unal, /* terminal line type */ 5 91 2 time_last_bump fixed bin (71), /* for bump-wait */ 5 92 2 last_update fixed bin (71), /* time of last transaction */ 5 93 2 logins fixed bin, /* number of logins */ 5 94 2 crashes fixed bin, /* sessions abnormally terminated */ 5 95 2 interactive (0: 7), /* interactive use, shifts 0-7 */ 5 96 3 charge float bin, /* total dollar charge this shift */ 5 97 3 xxx fixed bin, 5 98 3 cpu fixed bin (71), /* cpu usage in microseconds */ 5 99 3 core fixed bin (71), /* core demand in page-microseconds */ 5 100 3 connect fixed bin (71), /* total console time in microseconds */ 5 101 3 io_ops fixed bin (71), /* total i/o ops on terminal */ 5 102 2 absentee (4), /* absentee use, queues 1-4 */ 5 103 3 charge float bin, /* dollar charge this queue */ 5 104 3 jobs fixed bin, /* number of jobs submitted */ 5 105 3 cpu fixed bin (71), /* total cpu time in microseconds */ 5 106 3 memory fixed bin (71), /* total memory demand */ 5 107 2 iod (4), /* io daemon use, queues 1-4 */ 5 108 3 charge float bin, /* dollar charge this queue */ 5 109 3 pieces fixed bin, /* pieces of output requested */ 5 110 3 pad fixed bin (35), 5 111 3 pages fixed bin (35), /* number of pages output */ 5 112 3 lines fixed bin (71), /* total record count of output */ 5 113 2 devices (16) float bin, /* device charges */ 5 114 2 time_last_reset fixed bin (71), /* time PDT last updated */ 5 115 2 absolute_limit float bin, /* Limit, not reset monthly */ 5 116 2 absolute_spent float bin, /* Spending against this */ 5 117 2 absolute_cutoff fixed bin (71), /* Spending will be reset on this date */ 5 118 2 absolute_increm fixed bin, /* .. time increment code. 0 = don't reset */ 5 119 2 pad_was_authorization bit (72) aligned, 5 120 2 group char (8), /* group for this user (if at.igroup = "1"b) */ 5 121 2 warn_days fixed bin (17) unaligned, /* warn user if less than this many days to cutoff */ 5 122 2 warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of funds left */ 5 123 2 warn_dollars float bin, /* warn user if less than this amount of funds left */ 5 124 2 n_foreground fixed bin (9) unsigned unaligned, /* number of foreground and background processes */ 5 125 2 n_background fixed bin (9) unsigned unaligned, /* that this user has. see limits just below */ 5 126 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and */ 5 127 2 max_background fixed bin (9) unsigned unaligned, /* background processes that this user can have */ 5 128 2 n_interactive fixed bin (9) unsigned unaligned, /* number of interactive processes that user has */ 5 129 2 n_disconnected fixed bin (9) unsigned unaligned, /* number of disconnected processes that user has */ 5 130 2 pdtupad1 fixed bin (18) unsigned unaligned, 5 131 2 user_warn_days fixed bin (17) unaligned, /* warn user if less than this many days to user cutoff */ 5 132 2 user_warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of user funds left */ 5 133 2 user_warn_dollars float bin, /* warn user if less than this amount of user funds left */ 5 134 2 user_authorization (2) bit (72) aligned, /* range */ 5 135 2 pdtupad (5) fixed bin, 5 136 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit (sec) on foreground absentee jobs */ 5 137 2 pdir_quota fixed bin (17) unaligned, /* quota to put on user's pdir (0 => use default) */ 5 138 2 chain fixed bin; /* free chain */ 5 139 5 140 /* END INCLUDE FILE ... pdt.incl.pl1 */ 80 7 1 /* BEGIN INCLUDE FILE .. projfile.incl.pl1 */ 7 2 /* Modified by T. Casey April 1976 to change disk_infs (obsolete) to dir_disk_use */ 7 3 /* Modified 1984-07-09 BIM for dir_disk_quota, version */ 7 4 /* Modified 1984-09-14 BIM for reasonable array size */ 7 5 7 6 dcl 1 projfile based (pp) aligned, /* Project history file */ 7 7 2 nproj fixed bin (35), /* number of entries */ 7 8 2 version fixed bin, 7 9 2 projfilexx0 (6) bit (36) aligned, 7 10 2 projfiletab (3000), /* in seg limit */ 7 11 3 id char (12) unal, /* project ID */ 7 12 3 title char (52) unal, /* project title */ 7 13 3 inv char (32) unal, /* name of principal investigator */ 7 14 3 inv_addr char (32) unal, /* address */ 7 15 3 sup char (32) unal, /* name of supervisor */ 7 16 3 sup_addr char (32) unal, /* address */ 7 17 3 sup_phone char (16) unal, /* telephone */ 7 18 3 on fixed bin (71), /* date on */ 7 19 3 off fixed bin (71), /* date off */ 7 20 3 disk_psec fixed bin (71), /* project disk page-seconds */ 7 21 3 disk_quota fixed bin (35), /* project disk quota */ 7 22 3 dir_disk_quota fixed bin (35), /* project dir disk quota */ 7 23 3 disk_use fixed bin (35), /* total segment pages used */ 7 24 3 dir_disk_use fixed bin (35), /* total directory pages used */ 7 25 3 misc_charges float bin, /* manuals, etc */ 7 26 3 n_misc fixed bin, /* number of entries */ 7 27 3 processed fixed bin, /* temp for usage-report */ 7 28 3 pad bit (36) aligned; /* out to even number of words */ 7 29 7 30 dcl loph int static fixed bin (17) options (constant) init (8), /* lth of projfile header */ 7 31 lope int static fixed bin (17) options (constant) init (66); /* lth of projflile entry */ 7 32 7 33 dcl PROJFILE_VERSION fixed bin init (3) int static options (constant); 7 34 7 35 /* END INCLUDE FILE ... projfile.incl.pl1 */ 81 8 1 /* BEGIN INCLUDE FILE ... use_totals.incl.pl1 */ 8 2 /* format: style3 */ 8 3 8 4 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures. (UNCA) 8 5* Modified May 1980 by R. McDonald to include printer page charge, replaces cpu time in iod. (UNCA) 8 6* Modified July 1981 by C. Hornig to eliminate rs_number and master_proj from bin, 8 7* - split it into sub-structures for convenience in conversion, 8 8* - and make version a character string. 8 9* Modified August 1981 by T. Casey to put back rs_number in bin. 8 10* Modified 1984-08-31 BIM for half-year billing cycles, which is all 8 11* that will fit in a segment. 8 12**/ 8 13 8 14 dcl use_totals_ptr pointer; 8 15 dcl 1 use_totals based (use_totals_ptr) aligned, 8 16 2 meters, 8 17 3 generated fixed bin (71), /* Time usage data generated. */ 8 18 3 period_begin fixed bin (71), /* Earliest time covered */ 8 19 3 period_end fixed bin (71), /* Latest time */ 8 20 3 disk_available 8 21 fixed bin (35), /* Total disk capacity in MULT partition. */ 8 22 3 disk_left fixed bin (35), /* Total disk unused.. */ 8 23 3 version char (8), /* revision of this include file */ 8 24 3 pad1 (6) fixed bin, /* Gross system statistics, determined from answering service meters. */ 8 25 3 uptime fixed bin (71), /* Time system has been on the air. */ 8 26 3 sys_starts fixed bin, /* Number of bootloads */ 8 27 3 sys_crash fixed bin, /* Number of crashes */ 8 28 3 cpu_avail fixed bin (71), /* CPU time available. >= uptime by two-cpu time */ 8 29 3 idle fixed bin (71), /* Total idle for all causes */ 8 30 3 initializer fixed bin (71), /* Initializer usage */ 8 31 3 total_cpu fixed bin (71), /* Total VIRTUAL cpu from bins - so get overhead */ 8 32 3 zidle fixed bin (71), /* Total zero idle. */ 8 33 3 mpidle fixed bin (71), /* Total MP idle */ 8 34 3 pad2 (6) fixed bin (71), /* variables used while reading answering service meters */ 8 35 3 zidle_since_boot 8 36 fixed bin (71), /* Zero idle since boot */ 8 37 3 mpidle_since_boot 8 38 fixed bin (71), /* MP idle since boot */ 8 39 3 time_last_boot 8 40 fixed bin (71), /* Time of last bootload */ 8 41 3 time_last_sample 8 42 fixed bin (71), /* Time of last 15-minute sample */ 8 43 3 uptime_since_boot 8 44 fixed bin (71), /* Time system on air since last boot */ 8 45 3 cpu_avail_since_boot 8 46 fixed bin (71), /* CPU available since boot */ 8 47 3 idle_since_boot 8 48 fixed bin (71), /* Idle time since boot */ 8 49 3 last_sysid char (8), /* Current system ID */ 8 50 3 n_users_on fixed bin, /* Users on at last sample */ 8 51 3 n_stat_gaps fixed bin, /* Number of times we missed getting all data */ 8 52 /* Statistics by day, for black and white chart. */ 8 53 2 b_and_w, 8 54 3 origin fixed bin (71), /* Base time for slot 1 */ 8 55 3 max_day_log fixed bin, /* Highest used day. */ 8 56 3 max_qhour fixed bin, /* Highest quarter in highest day */ 8 57 3 daylog (190), /* array of days. */ 8 58 4 qh (96), /* Quarter-hour within the day. */ 8 59 5 time fixed bin (71), /* Time of sample. */ 8 60 5 sysid char (8), /* System ID */ 8 61 5 dump_number 8 62 fixed (18) unsigned unaligned, 8 63 5 flags unaligned, 8 64 6 shutdown 8 65 bit (1), 8 66 6 pad bit (17), 8 67 5 cpu fixed bin (5) unsigned unaligned, 8 68 5 nunits fixed bin (13) unsigned unaligned, 8 69 /* Number of load units */ 8 70 5 kmem fixed bin (18) unsigned unaligned, 8 71 5 starttime fixed bin (71), /* Boot time */ 8 72 5 crashtime fixed bin (71), /* Time of crash */ 8 73 /**** User-classification info, loaded once a month. defines usage bins. bin 1 is always "other" */ 8 74 2 bins, 8 75 3 ntypes fixed bin, /* Number of valid bins */ 8 76 3 n_select fixed bin, /* Number of selectors */ 8 77 3 bin_data (3258) aligned, 8 78 4 select_proj char (12) aligned, /* Project ID - same number as in sat */ 8 79 4 select_ut fixed bin, /* Bin number for the project */ 8 80 /* Usage bins for each usage type. Determined from summarizing the PDT's. 8 81* * Note - bin "use_totals.ut (use_totals.ntypes+1)" is a zeroed bin which can be used to represent non-existent bins. 8 82* * e.g. Last month's use_totals seg has a bin that has been removed from this month's use_totals seg. 8 83**/ 8 84 3 ut (301), /* array usage by project type */ 8 85 4 utype char (24), /* Label for usage bin */ 8 86 4 dollar_charge 8 87 float bin, /* total dollars spent this month */ 8 88 4 logins fixed bin, /* number of logins */ 8 89 4 crashes fixed bin, /* sessions abnormally terminated */ 8 90 4 nproj fixed bin, /* projects in this class */ 8 91 4 nusers fixed bin, /* users in this class */ 8 92 4 disk_psec fixed bin (71), /* Total page-seconds */ 8 93 4 disk_quota fixed bin (35), /* Total quota */ 8 94 4 disk_usage fixed bin (35), /* Disk occupancy */ 8 95 4 misc float bin, /* Miscellaneous charges */ 8 96 4 flag char (4), /* paying categories = "$" */ 8 97 4 flag1 char (4), /* used to control reporting of categories */ 8 98 4 pad1a (3) fixed bin (35), 8 99 4 rs_number fixed bin, /* rate structure number for all projects in this bin */ 8 100 4 pad1b (14) fixed bin (35), 8 101 4 interactive (0:7), /* interactive use, shifts 0-7 */ 8 102 5 charge float bin, /* total dollar charge this shift */ 8 103 5 pad1 fixed bin, 8 104 5 cpu fixed bin (71), /* cpu usage in microseconds */ 8 105 5 core fixed bin (71), /* core demand in page-microseconds */ 8 106 5 connect fixed bin (71), /* total console time in microseconds */ 8 107 5 io_ops fixed bin (71), /* total terminal i/o ops */ 8 108 4 absentee (4), /* absentee use, queues 1-4 */ 8 109 5 charge float bin, /* dollar charge this queue */ 8 110 5 jobs fixed bin, /* number of jobs submitted */ 8 111 5 cpu fixed bin (71), /* total cpu time in microseconds */ 8 112 5 memory fixed bin (71), /* total memory usage in mu */ 8 113 4 iod (4), /* io daemon use, queues 1-4 */ 8 114 5 charge float bin, /* dollar charge this queue */ 8 115 5 pieces fixed bin, /* pieces of output requested */ 8 116 5 pad2 fixed bin, 8 117 5 pages fixed bin, /* number of pages output */ 8 118 5 lines fixed bin (71), /* total record count of output */ 8 119 4 devices (16) float bin; /* device charges */ 8 120 8 121 dcl USE_TOTALS_VERSION_2 8 122 char (8) static options (constant) initial ("usetot_2"); 8 123 dcl USE_TOTALS_VERSION_3 8 124 char (8) static options (constant) initial ("usetot_3"); 8 125 8 126 /* END INCLUDE FILE ... use_totals.incl.pl1 */ 82 9 1 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 9 2 9 3 9 4 /****^ HISTORY COMMENTS: 9 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 9 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 9 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 9 8* attribute switches. 9 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 9 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 9 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 9 12* be deleted. 9 13* B) Add constants identifying attributes that can be changed by user at 9 14* login, etc. 9 15* END HISTORY COMMENTS */ 9 16 9 17 9 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 9 19 9 20 /* format: style4 */ 9 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 9 22 (2 administrator bit (1), /* 1 system administrator privileges */ 9 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 9 24 2 nobump bit (1), /* 2 user cannot be bumped */ 9 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 9 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 9 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 9 28* . of same project (distinct from "nobump") */ 9 29 2 nolist bit (1), /* 7 don't list user on "who" */ 9 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 9 31 2 multip bit (1), /* 9 user may have several processes */ 9 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 9 33 2 brief bit (1), /* 11 no login or logout message */ 9 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 9 35 2 vhomedir bit (1), /* 13 user may change homedir */ 9 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 9 37 2 sb_ok bit (1), /* 15 user may be standby */ 9 38 2 pm_ok bit (1), /* 16 user may be primary */ 9 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 9 40 2 daemon bit (1), /* 18 user may login as daemon */ 9 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 9 42 2 no_warning bit (1), /* 20 no warning message */ 9 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 9 44* . in PDT: this user has an individual load control group */ 9 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 9 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 9 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 9 48 2 pad bit (12)) unaligned; 9 49 9 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 9 51 ("none", /* 0 */ 9 52 "administrator", /* 1 */ 9 53 "primary_line", /* 2 */ 9 54 "nobump", /* 3 */ 9 55 "guaranteed_login", /* 4 */ 9 56 "anonymous", /* 5 */ 9 57 "nopreempt", /* 6 */ 9 58 "nolist", /* 7 */ 9 59 "dialok", /* 8 */ 9 60 "multip", /* 9 */ 9 61 "bumping", /* 10 */ 9 62 "brief", /* 11 */ 9 63 "vinitproc", /* 12 */ 9 64 "vhomedir", /* 13 */ 9 65 "nostartup", /* 14 */ 9 66 "no_secondary", /* 15 */ 9 67 "no_prime", /* 16 */ 9 68 "no_eo", /* 17 */ 9 69 "daemon", /* 18 */ 9 70 "", /* 19 vdim OBSOLETE */ 9 71 "no_warning", /* 20 */ 9 72 "igroup", /* 21 */ 9 73 "save_pdir", /* 22 */ 9 74 "disconnect_ok", /* 23 */ 9 75 "save_on_disconnect"); /* 24 */ 9 76 9 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 9 78 ("null", /* 0 */ 9 79 "admin", /* 1 */ 9 80 "", "", /* 2 - 3 */ 9 81 "guar", /* 4 */ 9 82 "anon", /* 5 */ 9 83 "", "", /* 6 - 7 */ 9 84 "dial", /* 8 */ 9 85 "multi_login", /* 9 */ 9 86 "preempting", /* 10 */ 9 87 "", /* 11 */ 9 88 "v_process_overseer", /* 12 */ 9 89 "v_home_dir", /* 13 */ 9 90 "no_start_up", /* 14 */ 9 91 "no_sec", /* 15 */ 9 92 "no_primary", /* 16 */ 9 93 "no_edit_only", /* 17 */ 9 94 "op_login", /* 18 */ 9 95 "", /* 19 */ 9 96 "nowarn", /* 20 */ 9 97 "", "", "", /* 21 - 23 */ 9 98 "save"); /* 24 */ 9 99 9 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 9 101 options(constant) init("000000000010000000010000000000000000"b); 9 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 9 103 9 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 9 105 options(constant) init("000000000010000000010000000000000000"b); 9 106 /* PDT value for (brief, no_warning) is default */ 9 107 9 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 9 109 options(constant) init("000100000110010000010000000000000000"b); 9 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 9 111 10 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 10 2 10 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 4 /* */ 10 5 /* This include file describes the attributes of an absentee job. It is */ 10 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 10 7 /* and PIT.incl.pl1. */ 10 8 /* */ 10 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 10 10 10 11 /****^ HISTORY COMMENTS: 10 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 10 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 14* Separated abs_attributes from the request structure 10 15* (abs_message_format.incl.pl1) so that the identical structure could be 10 16* used in the ute structure (user_table_entry.incl.pl1). 10 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 10 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 10 19* Added ABS_ATTRIBUTE_NAMES array. 10 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 10 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 10 22* Added the no_start_up flag. SCP6367 10 23* END HISTORY COMMENTS */ 10 24 10 25 dcl 1 user_abs_attributes aligned based, 10 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 10 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 10 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 10 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 10 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 10 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 10 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 10 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 10 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 10 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 10 36 2 attributes_pad bit (26) unaligned; 10 37 10 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 10 39 "restartable", 10 40 "user_deferred_until_time", 10 41 "proxy", 10 42 "set_bit_cnt", 10 43 "time_in_gmt", 10 44 "user_deferred_indefinitely", 10 45 "secondary_ok", 10 46 "truncate_absout", 10 47 "restarted", 10 48 "no_start_up"); 10 49 10 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 10 51 9 112 9 113 9 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 83 84 85 86 satp, pdtp, use_totals_ptr, pp = null (); 87 on cleanup call clean_up; 88 call cu_$arg_count (arg_count, ec); 89 if ec ^= 0 90 then do; 91 call com_err_ (ec, ME); 92 return; 93 end; 94 if arg_count ^= 4 95 then do; 96 call com_err_$suppress_name (0, ME, 97 "Usage: usage_totals SAT_path PDT_dir_path PROJFILE_path USE_TOTALS_path"); 98 return; 99 end; 100 101 call cu_$arg_ptr (1, ap, al, (0)); 102 call expand_pathname_$add_suffix (arg, "", sat_dir, sat_ename, ec); 103 if ec ^= 0 104 then do; 105 call com_err_ (ec, ME, "Invalid sat pathname ^a.", arg); 106 go to ERROR; 107 end; 108 call initiate_file_ (sat_dir, sat_ename, R_ACCESS, satp, (0), ec); 109 if ec ^= 0 110 then do; 111 call com_err_ (ec, ME, "^a.", pathname_ (sat_dir, sat_ename)); 112 go to ERROR; 113 end; 114 call cu_$arg_ptr (2, ap, al, (0)); 115 call absolute_pathname_ (arg, pdtdir, ec); 116 if ec ^= 0 117 then do; 118 call com_err_ (ec, ME, "Invalid PDT directory pathname ^a.", arg); 119 go to ERROR; 120 end; 121 call cu_$arg_ptr (3, ap, al, (0)); 122 call expand_pathname_$add_suffix (arg, "", projfile_dir, projfile_ename, ec); 123 if ec ^= 0 124 then do; 125 call com_err_ (ec, ME, "Invalid projfile pathname ^a.", arg); 126 go to ERROR; 127 end; 128 call initiate_file_ (projfile_dir, projfile_ename, R_ACCESS, pp, (0), ec); 129 if ec ^= 0 130 then do; 131 call com_err_ (ec, ME, "^a", pathname_ (projfile_dir, projfile_ename)); 132 goto ERROR; 133 end; 134 135 call cu_$arg_ptr (4, ap, al, (0)); 136 call expand_pathname_$add_suffix (arg, "use_totals", tot_dir, tot_ename, ec); 137 if ec ^= 0 138 then do; 139 call com_err_ (ec, ME, "Invalid use totals pathname ^a.", arg); 140 go to ERROR; 141 end; 142 call initiate_file_ (tot_dir, tot_ename, RW_ACCESS, use_totals_ptr, (0), ec); 143 if ec ^= 0 144 then do; 145 call com_err_ (ec, ME, "^a", pathname_ (tot_dir, tot_ename)); 146 go to ERROR; 147 end; 148 if use_totals.version ^= USE_TOTALS_VERSION_3 149 then do; 150 call com_err_ (error_table_$unimplemented_version, ME, "^a is version 2, but it should be version 3.", 151 pathname_ (tot_dir, tot_ename)); 152 go to ERROR; 153 end; 154 155 use_totals.generated = clock (); 156 use_totals.period_begin = clock (); 157 use_totals.period_end = 0; 158 use_totals.total_cpu = 0; /* Recalculate this. */ 159 do t = 1 to use_totals.ntypes; 160 use_totals.ut (t).dollar_charge = 0e0; 161 use_totals.ut (t).logins = 0; 162 use_totals.ut (t).crashes = 0; 163 use_totals.ut (t).nproj = 0; 164 use_totals.ut (t).nusers = 0; 165 use_totals.ut (t).disk_psec = 0; 166 use_totals.ut (t).disk_quota = 0; 167 use_totals.ut (t).disk_usage = 0; 168 use_totals.ut (t).misc = 0e0; 169 do i = 0 to 7; 170 use_totals.ut (t).interactive (i).charge = 0e0; 171 use_totals.ut (t).interactive (i).cpu = 0; 172 use_totals.ut (t).interactive (i).core = 0; 173 use_totals.ut (t).interactive (i).connect = 0; 174 use_totals.ut (t).interactive (i).io_ops = 0; 175 end; 176 do i = 1 to 4; 177 use_totals.ut (t).absentee (i).charge = 0e0; 178 use_totals.ut (t).absentee (i).jobs = 0; 179 use_totals.ut (t).absentee (i).cpu = 0; 180 use_totals.ut (t).absentee (i).memory = 0; 181 end; 182 do i = 1 to 4; 183 use_totals.ut (t).iod (i).charge = 0e0; 184 use_totals.ut (t).iod (i).pieces = 0; 185 use_totals.ut (t).iod (i).pages = 0; 186 use_totals.ut (t).iod (i).lines = 0; 187 end; 188 do i = 1 to 16; 189 use_totals.ut (t).devices (i) = 0e0; 190 end; 191 end; 192 193 do j = 1 to satp -> sat.current_size; 194 satep = addr (satp -> sat.project (j)); 195 if project.state = 0 | project.state = 3 /* skip renamed project also to suppress error messages */ 196 then go to endloop1; 197 198 pdt_ename = rtrim (project.project_id) || ".pdt"; 199 200 do i = 1 to use_totals.n_select; /* classify project into bin */ 201 if select_proj (i) = project.project_id 202 then do; 203 t = select_ut (i); 204 go to scan3; 205 end; 206 end; 207 t = 1; 208 scan3: 209 use_totals.ut (t).nproj = use_totals.ut (t).nproj + 1; 210 211 call system_info_$prices_rs ((project.rs_number), (0), (0), (0), (0), disk_price, (0)); 212 213 do i = 1 to projfile.nproj; /* look up project disk usage */ 214 if projfile.id (i) = project.project_id 215 then do; 216 use_totals.ut (t).disk_quota = use_totals.ut (t).disk_quota + projfile.disk_quota (i); 217 use_totals.ut (t).disk_usage = use_totals.ut (t).disk_usage + projfile.disk_use (i); 218 dtemp = projfile.disk_psec (i); 219 use_totals.ut (t).disk_psec = use_totals.ut (t).disk_psec + dtemp; 220 ftemp = disk_price * dtemp; 221 use_totals.ut (t).dollar_charge = use_totals.ut (t).dollar_charge + ftemp; 222 use_totals.ut (t).misc = use_totals.ut (t).misc + projfile.misc_charges (i); 223 use_totals.ut (t).dollar_charge = use_totals.ut (t).dollar_charge + projfile.misc_charges (i); 224 go to getpdt; 225 end; 226 end; 227 call com_err_ (0, ME, "Projfile entry missing for ^a", project.project_id); 228 229 getpdt: 230 call initiate_file_ (pdtdir, pdt_ename, RW_ACCESS, pdtp, (0), ec); 231 if ec ^= 0 232 then do; 233 call com_err_ (ec, ME, "^a", pathname_ (pdtdir, pdt_ename)); 234 go to endloop1; 235 end; 236 237 do k = 1 to pdtp -> pdt.current_size; /* loop on users in project */ 238 pdtep = addr (pdtp -> pdt.user (k)); 239 if user.state = 0 240 then go to endloop; 241 242 if user.state = 1 243 then /* Find out when month began. */ 244 if user.time_last_reset ^= 0 245 then if user.time_last_reset < use_totals.period_begin 246 then use_totals.period_begin = user.time_last_reset; 247 if user.last_update > use_totals.period_end 248 then if user.last_update < use_totals.generated 249 then use_totals.period_end = user.last_update; 250 else user.last_update = use_totals.generated; 251 252 use_totals.ut (t).nusers = use_totals.ut (t).nusers + 1; 253 use_totals.ut (t).dollar_charge = use_totals.ut (t).dollar_charge + user.dollar_charge; 254 use_totals.ut (t).logins = use_totals.ut (t).logins + user.logins; 255 use_totals.ut (t).crashes = use_totals.ut (t).crashes + user.crashes; 256 do i = 0 to 7; 257 use_totals.ut (t).interactive (i).charge = 258 use_totals.ut (t).interactive (i).charge + user.interactive (i).charge; 259 use_totals.ut (t).interactive (i).cpu = 260 use_totals.ut (t).interactive (i).cpu + user.interactive (i).cpu; 261 use_totals.total_cpu = use_totals.total_cpu + user.interactive (i).cpu; 262 use_totals.ut (t).interactive (i).core = 263 use_totals.ut (t).interactive (i).core + user.interactive (i).core; 264 use_totals.ut (t).interactive (i).connect = 265 use_totals.ut (t).interactive (i).connect + user.interactive (i).connect; 266 use_totals.ut (t).interactive (i).io_ops = 267 use_totals.ut (t).interactive (i).io_ops + user.interactive (i).io_ops; 268 end; 269 do i = 1 to 4; 270 use_totals.ut (t).absentee (i).charge = 271 use_totals.ut (t).absentee (i).charge + user.absentee (i).charge; 272 use_totals.ut (t).absentee (i).jobs = 273 use_totals.ut (t).absentee (i).jobs + user.absentee (i).jobs; 274 use_totals.ut (t).absentee (i).cpu = use_totals.ut (t).absentee (i).cpu + user.absentee (i).cpu; 275 use_totals.total_cpu = use_totals.total_cpu + user.absentee (i).cpu; 276 use_totals.ut (t).absentee (i).memory = 277 use_totals.ut (t).absentee (i).memory + user.absentee (i).memory; 278 end; 279 do i = 1 to 4; 280 use_totals.ut (t).iod (i).charge = use_totals.ut (t).iod (i).charge + user.iod (i).charge; 281 use_totals.ut (t).iod (i).pieces = use_totals.ut (t).iod (i).pieces + user.iod (i).pieces; 282 use_totals.ut (t).iod (i).pages = use_totals.ut (t).iod (i).pages + user.iod (i).pages; 283 use_totals.ut (t).iod (i).lines = use_totals.ut (t).iod (i).lines + user.iod (i).lines; 284 end; 285 do i = 1 to 16; 286 use_totals.ut (t).devices (i) = use_totals.ut (t).devices (i) + user.devices (i); 287 end; 288 289 endloop: 290 end; 291 call terminate_file_ (pdtp, (0), TERM_FILE_TERM, (0)); 292 293 endloop1: 294 end; 295 296 ERROR: 297 call clean_up; 298 return; 299 300 301 302 clean_up: 303 procedure; 304 305 if pdtp ^= null () 306 then call terminate_file_ (pdtp, (0), TERM_FILE_TERM, (0)); 307 if pp ^= null () 308 then call terminate_file_ (pp, (0), TERM_FILE_TERM, (0)); 309 if use_totals_ptr ^= null () 310 then call terminate_file_ (use_totals_ptr, (0), TERM_FILE_TERM, (0)); 311 if satp ^= null () 312 then call terminate_file_ (satp, (0), TERM_FILE_TERM, (0)); 313 return; 314 end clean_up; 315 316 end usage_total; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/29/88 0858.8 usage_total.pl1 >spec>install>1093>usage_total.pl1 77 1 04/06/83 1239.4 terminate_file.incl.pl1 >ldd>include>terminate_file.incl.pl1 78 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.incl.pl1 79 3 08/06/87 1416.6 sat.incl.pl1 >ldd>include>sat.incl.pl1 3-34 4 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 80 5 09/13/84 0921.6 pdt.incl.pl1 >ldd>include>pdt.incl.pl1 5-29 6 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 81 7 09/20/84 0925.7 projfile.incl.pl1 >ldd>include>projfile.incl.pl1 82 8 12/07/84 1102.2 use_totals.incl.pl1 >ldd>include>use_totals.incl.pl1 83 9 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 9-112 10 07/14/88 2015.0 user_abs_attributes.incl.pl1 >ldd>include>user_abs_attributes.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 000004 constant char(32) initial packed unaligned dcl 73 set ref 91* 96* 105* 111* 118* 125* 131* 139* 145* 150* 227* 233* RW_ACCESS 000002 constant bit(3) initial packed unaligned dcl 2-11 set ref 142* 229* R_ACCESS 000016 constant bit(3) initial packed unaligned dcl 2-11 set ref 108* 128* TERM_FILE_TERM 000003 constant bit(3) initial packed unaligned dcl 1-14 set ref 291* 305* 307* 309* 311* USE_TOTALS_VERSION_3 000000 constant char(8) initial packed unaligned dcl 8-123 ref 148 absentee 576042 based structure array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" absentee 244 based structure array level 2 in structure "user" dcl 5-58 in procedure "usage_total" absolute_pathname_ 000012 constant entry external dcl 50 ref 115 addr builtin function dcl 66 ref 194 238 al 000120 automatic fixed bin(21,0) dcl 30 set ref 101* 102 102 105 105 114* 115 115 118 118 121* 122 122 125 125 135* 136 136 139 139 ap 000112 automatic pointer dcl 30 set ref 101* 102 105 114* 115 118 121* 122 125 135* 136 139 arg based char packed unaligned dcl 45 set ref 102* 105* 115* 118* 122* 125* 136* 139* arg_count 000436 automatic fixed bin(17,0) dcl 72 set ref 88* 94 bin_data 544304 based structure array level 3 dcl 8-15 bins 544302 based structure level 2 dcl 8-15 charge 575722 based float bin(27) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 170* 257* 257 charge 576042 based float bin(27) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 177* 270* 270 charge 576072 based float bin(27) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 183* 280* 280 charge 274 based float bin(27) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 280 charge 124 based float bin(27) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 257 charge 244 based float bin(27) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 270 cleanup 000440 stack reference condition dcl 74 ref 87 clock builtin function dcl 66 ref 155 156 com_err_ 000022 constant entry external dcl 55 ref 91 105 111 118 125 131 139 145 150 227 233 com_err_$suppress_name 000024 constant entry external dcl 56 ref 96 connect 575730 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 173* 264* 264 connect 132 based fixed bin(71,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 264 core 130 based fixed bin(71,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 262 core 575726 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 172* 262* 262 cpu 575724 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 171* 259* 259 cpu 126 based fixed bin(71,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 259 261 cpu 576044 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 179* 274* 274 cpu 246 based fixed bin(71,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 274 275 crashes 123 based fixed bin(17,0) level 2 in structure "user" dcl 5-58 in procedure "usage_total" ref 255 crashes 575664 based fixed bin(17,0) array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 162* 255* 255 cu_$arg_count 000016 constant entry external dcl 53 ref 88 cu_$arg_ptr 000020 constant entry external dcl 54 ref 101 114 121 135 current_size 36 based fixed bin(17,0) level 2 in structure "sat" dcl 3-32 in procedure "usage_total" ref 193 current_size 36 based fixed bin(17,0) level 2 in structure "pdt" dcl 5-27 in procedure "usage_total" ref 237 devices 576122 based float bin(27) array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 189* 286* 286 devices 324 based float bin(27) array level 2 in structure "user" dcl 5-58 in procedure "usage_total" ref 286 disk_price 000117 automatic float bin(27) dcl 30 set ref 211* 220 disk_psec 100 based fixed bin(71,0) array level 3 in structure "projfile" dcl 7-6 in procedure "usage_total" ref 218 disk_psec 575670 based fixed bin(71,0) array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 165* 219* 219 disk_quota 575672 based fixed bin(35,0) array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 166* 216* 216 disk_quota 102 based fixed bin(35,0) array level 3 in structure "projfile" dcl 7-6 in procedure "usage_total" ref 216 disk_usage 575673 based fixed bin(35,0) array level 4 dcl 8-15 set ref 167* 217* 217 disk_use 104 based fixed bin(35,0) array level 3 dcl 7-6 ref 217 dollar_charge 75 based float bin(27) level 2 in structure "user" dcl 5-58 in procedure "usage_total" ref 253 dollar_charge 575662 based float bin(27) array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 160* 221* 221 223* 223 253* 253 dtemp 000114 automatic fixed bin(71,0) dcl 30 set ref 218* 219 220 ec 000431 automatic fixed bin(35,0) dcl 69 set ref 88* 89 91* 102* 103 105* 108* 109 111* 115* 116 118* 122* 123 125* 128* 129 131* 136* 137 139* 142* 143 145* 229* 231 233* error_table_$unimplemented_version 000010 external static fixed bin(35,0) dcl 47 set ref 150* expand_pathname_$add_suffix 000014 constant entry external dcl 51 ref 102 122 136 ftemp 000116 automatic float bin(27) dcl 30 set ref 220* 221 generated based fixed bin(71,0) level 3 dcl 8-15 set ref 155* 247 250 i 000433 automatic fixed bin(17,0) dcl 69 set ref 169* 170 171 172 173 174* 176* 177 178 179 180* 182* 183 184 185 186* 188* 189* 200* 201 203* 213* 214 216 217 218 222 223* 256* 257 257 257 259 259 259 261 262 262 262 264 264 264 266 266 266* 269* 270 270 270 272 272 272 274 274 274 275 276 276 276* 279* 280 280 280 281 281 281 282 282 282 283 283 283* 285* 286 286 286* id 10 based char(12) array level 3 packed packed unaligned dcl 7-6 ref 214 initiate_file_ 000026 constant entry external dcl 58 ref 108 128 142 229 interactive 124 based structure array level 2 in structure "user" dcl 5-58 in procedure "usage_total" interactive 575722 based structure array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" io_ops 134 based fixed bin(71,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 266 io_ops 575732 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 174* 266* 266 iod 576072 based structure array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" iod 274 based structure array level 2 in structure "user" dcl 5-58 in procedure "usage_total" j 000434 automatic fixed bin(17,0) dcl 69 set ref 193* 194* jobs 576043 based fixed bin(17,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 178* 272* 272 jobs 245 based fixed bin(17,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 272 k 000435 automatic fixed bin(17,0) dcl 69 set ref 237* 238* last_update 120 based fixed bin(71,0) level 2 dcl 5-58 set ref 247 247 247 250* lines 576076 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 186* 283* 283 lines 300 based fixed bin(71,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 283 logins 575663 based fixed bin(17,0) array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 161* 254* 254 logins 122 based fixed bin(17,0) level 2 in structure "user" dcl 5-58 in procedure "usage_total" ref 254 memory 576046 based fixed bin(71,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 180* 276* 276 memory 250 based fixed bin(71,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 276 meters based structure level 2 dcl 8-15 misc 575674 based float bin(27) array level 4 dcl 8-15 set ref 168* 222* 222 misc_charges 106 based float bin(27) array level 3 dcl 7-6 ref 222 223 n_select 544303 based fixed bin(17,0) level 3 dcl 8-15 ref 200 nproj based fixed bin(35,0) level 2 in structure "projfile" dcl 7-6 in procedure "usage_total" ref 213 nproj 575665 based fixed bin(17,0) array level 4 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 163* 208* 208 ntypes 544302 based fixed bin(17,0) level 3 dcl 8-15 ref 159 null builtin function dcl 66 ref 86 305 307 309 311 nusers 575666 based fixed bin(17,0) array level 4 dcl 8-15 set ref 164* 252* 252 pages 576075 based fixed bin(17,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 185* 282* 282 pages 277 based fixed bin(35,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 282 pathname_ 000032 constant entry external dcl 61 ref 111 111 131 131 145 145 150 150 233 233 pdt based structure level 1 dcl 5-27 pdt_ename 000421 automatic char(32) packed unaligned dcl 30 set ref 198* 229* 233* 233* pdtdir 000173 automatic char(168) packed unaligned dcl 30 set ref 115* 229* 233* 233* pdtep 000110 automatic pointer dcl 30 set ref 238* 239 242 242 242 242 247 247 247 250 253 254 255 257 259 261 262 264 266 270 272 274 275 276 280 281 282 283 286 pdtp 000102 automatic pointer dcl 30 set ref 86* 229* 237 238 291* 305 305* period_begin 2 based fixed bin(71,0) level 3 dcl 8-15 set ref 156* 242 242* period_end 4 based fixed bin(71,0) level 3 dcl 8-15 set ref 157* 247 247* pieces 576073 based fixed bin(17,0) array level 5 in structure "use_totals" dcl 8-15 in procedure "usage_total" set ref 184* 281* 281 pieces 275 based fixed bin(17,0) array level 3 in structure "user" dcl 5-58 in procedure "usage_total" ref 281 pp 000104 automatic pointer dcl 30 set ref 86* 128* 213 214 216 217 218 222 223 307 307* project based structure level 1 dcl 3-53 in procedure "usage_total" project 722 based structure array level 2 in structure "sat" dcl 3-32 in procedure "usage_total" set ref 194 project_id 1 based char(12) level 2 packed packed unaligned dcl 3-53 set ref 198 201 214 227* projfile based structure level 1 dcl 7-6 projfile_dir 000317 automatic char(168) packed unaligned dcl 30 set ref 122* 128* 131* 131* projfile_ename 000401 automatic char(32) packed unaligned dcl 30 set ref 122* 128* 131* 131* projfiletab 10 based structure array level 2 dcl 7-6 rs_number 115(18) based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 3-53 ref 211 rtrim builtin function dcl 66 ref 198 sat based structure level 1 dcl 3-32 sat_dir 000121 automatic char(168) packed unaligned dcl 30 set ref 102* 108* 111* 111* sat_ename 000371 automatic char(32) packed unaligned dcl 30 set ref 102* 108* 111* 111* satep 000106 automatic pointer dcl 30 set ref 194* 195 195 198 201 211 214 227 satp 000100 automatic pointer dcl 30 set ref 86* 108* 193 194 311 311* select_proj 544304 based char(12) array level 4 dcl 8-15 ref 201 select_ut 544307 based fixed bin(17,0) array level 4 dcl 8-15 ref 203 state based fixed bin(17,0) level 2 in structure "project" dcl 3-53 in procedure "usage_total" ref 195 195 state based fixed bin(17,0) level 2 in structure "user" dcl 5-58 in procedure "usage_total" ref 239 242 system_info_$prices_rs 000034 constant entry external dcl 62 ref 211 t 000432 automatic fixed bin(17,0) dcl 69 set ref 159* 160 161 162 163 164 165 166 167 168 170 171 172 173 174 177 178 179 180 183 184 185 186 189* 203* 207* 208 208 216 216 217 217 219 219 221 221 222 222 223 223 252 252 253 253 254 254 255 255 257 257 259 259 262 262 264 264 266 266 270 270 272 272 274 274 276 276 280 280 281 281 282 282 283 283 286 286 terminate_file_ 000030 constant entry external dcl 60 ref 291 305 307 309 311 time_last_reset 344 based fixed bin(71,0) level 2 dcl 5-58 ref 242 242 242 tot_dir 000245 automatic char(168) packed unaligned dcl 30 set ref 136* 142* 145* 145* 150* 150* tot_ename 000411 automatic char(32) packed unaligned dcl 30 set ref 136* 142* 145* 145* 150* 150* total_cpu 32 based fixed bin(71,0) level 3 dcl 8-15 set ref 158* 261* 261 275* 275 use_totals based structure level 1 dcl 8-15 use_totals_ptr 000446 automatic pointer dcl 8-14 set ref 86* 142* 148 155 156 157 158 159 160 161 162 163 164 165 166 167 168 170 171 172 173 174 177 178 179 180 183 184 185 186 189 200 201 203 208 208 216 216 217 217 219 219 221 221 222 222 223 223 242 242 247 247 247 250 252 252 253 253 254 254 255 255 257 257 259 259 261 261 262 262 264 264 266 266 270 270 272 272 274 274 275 275 276 276 280 280 281 281 282 282 283 283 286 286 309 309* user based structure level 1 dcl 5-58 in procedure "usage_total" user 400 based structure array level 2 in structure "pdt" dcl 5-27 in procedure "usage_total" set ref 238 user_attributes based structure level 1 dcl 9-21 ut 575654 based structure array level 3 dcl 8-15 version 10 based char(8) level 3 dcl 8-15 ref 148 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 10-38 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 9-77 A_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 M_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 PDT_entry_lth internal static fixed bin(17,0) initial dcl 5-19 PDT_header_lth internal static fixed bin(17,0) initial dcl 5-19 PDT_person_id_length internal static fixed bin(17,0) initial dcl 5-19 PDT_project_name_length internal static fixed bin(17,0) initial dcl 5-19 PDT_version internal static fixed bin(17,0) initial dcl 5-19 PROJFILE_VERSION internal static fixed bin(17,0) initial dcl 7-33 REW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SAT_entry_lth internal static fixed bin(17,0) initial dcl 3-24 SAT_header_lth internal static fixed bin(17,0) initial dcl 3-24 SAT_project_name_length internal static fixed bin(17,0) initial dcl 3-24 SAT_version internal static fixed bin(17,0) initial dcl 3-24 SA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 TERM_FILE_BC internal static bit(2) initial packed unaligned dcl 1-12 TERM_FILE_DELETE internal static bit(5) initial packed unaligned dcl 1-17 TERM_FILE_FORCE_WRITE internal static bit(4) initial packed unaligned dcl 1-16 TERM_FILE_TRUNC internal static bit(1) initial packed unaligned dcl 1-11 TERM_FILE_TRUNC_BC internal static bit(2) initial packed unaligned dcl 1-13 TERM_FILE_TRUNC_BC_TERM internal static bit(3) initial packed unaligned dcl 1-15 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 9-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 9-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 9-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 9-50 USE_TOTALS_VERSION_2 internal static char(8) initial packed unaligned dcl 8-121 W_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 lope internal static fixed bin(17,0) initial dcl 7-30 loph internal static fixed bin(17,0) initial dcl 7-30 terminate_file_switches based structure level 1 packed packed unaligned dcl 1-4 user_abs_attributes based structure level 1 dcl 10-25 NAMES DECLARED BY EXPLICIT CONTEXT. ERROR 002477 constant label dcl 296 ref 106 112 119 126 132 140 146 152 clean_up 002505 constant entry internal dcl 302 ref 87 296 endloop 002444 constant label dcl 289 ref 239 endloop1 002475 constant label dcl 293 ref 195 234 getpdt 002075 constant label dcl 229 ref 224 scan3 001651 constant label dcl 208 ref 204 usage_total 000162 constant entry external dcl 25 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3062 3120 2672 3072 Length 3516 2672 36 362 167 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME usage_total 444 external procedure is an external procedure. on unit on line 87 64 on unit clean_up 84 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME usage_total 000100 satp usage_total 000102 pdtp usage_total 000104 pp usage_total 000106 satep usage_total 000110 pdtep usage_total 000112 ap usage_total 000114 dtemp usage_total 000116 ftemp usage_total 000117 disk_price usage_total 000120 al usage_total 000121 sat_dir usage_total 000173 pdtdir usage_total 000245 tot_dir usage_total 000317 projfile_dir usage_total 000371 sat_ename usage_total 000401 projfile_ename usage_total 000411 tot_ename usage_total 000421 pdt_ename usage_total 000431 ec usage_total 000432 t usage_total 000433 i usage_total 000434 j usage_total 000435 k usage_total 000436 arg_count usage_total 000446 use_totals_ptr usage_total THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out call_int_this call_int_other return_mac enable_op shorten_stack ext_entry int_entry clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. absolute_pathname_ com_err_ com_err_$suppress_name cu_$arg_count cu_$arg_ptr expand_pathname_$add_suffix initiate_file_ pathname_ system_info_$prices_rs 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 25 000161 86 000167 87 000174 88 000216 89 000227 91 000231 92 000246 94 000247 96 000252 98 000277 101 000300 102 000320 103 000354 105 000356 106 000411 108 000412 109 000450 111 000452 112 000521 114 000522 115 000542 116 000566 118 000570 119 000623 121 000624 122 000644 123 000700 125 000702 126 000735 128 000736 129 000774 131 000776 132 001045 135 001046 136 001066 137 001126 139 001130 140 001163 142 001164 143 001222 145 001224 146 001273 148 001274 150 001301 152 001351 155 001352 156 001354 157 001357 158 001361 159 001362 160 001373 161 001402 162 001403 163 001404 164 001405 165 001406 166 001410 167 001411 168 001412 169 001414 170 001421 171 001435 172 001437 173 001440 174 001441 175 001442 176 001444 177 001451 178 001465 179 001466 180 001470 181 001471 182 001473 183 001501 184 001515 185 001516 186 001517 187 001521 188 001523 189 001531 190 001542 191 001544 193 001546 194 001557 195 001563 198 001567 200 001615 201 001627 203 001641 204 001644 206 001645 207 001647 208 001651 211 001655 213 001757 214 001767 216 002000 217 002012 218 002017 219 002021 220 002023 221 002030 222 002032 223 002035 224 002040 226 002041 227 002043 229 002075 231 002133 233 002135 234 002204 237 002205 238 002215 239 002220 242 002222 247 002232 250 002242 252 002244 253 002250 254 002254 255 002256 256 002260 257 002265 259 002302 261 002305 262 002310 264 002313 266 002316 268 002321 269 002323 270 002331 272 002346 274 002350 275 002353 276 002356 278 002361 279 002363 280 002371 281 002406 282 002410 283 002414 284 002417 285 002421 286 002427 287 002442 289 002444 291 002446 293 002475 296 002477 298 002503 302 002504 305 002512 307 002545 309 002601 311 002635 313 002671 ----------------------------------------------------------- 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