COMPILATION LISTING OF SEGMENT display_account_status Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 08/29/88 0919.8 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 /****^ HISTORY COMMENTS: 14* 1) change(87-08-14,Hartogs), approve(88-08-15,MCR7969), 15* audit(88-08-04,Lippard), install(88-08-29,MR12.2-1093): 16* Changed to display when there are no authorized groups in -long 17* output. (phx16057) 18* END HISTORY COMMENTS */ 19 20 21 /* DISPLAY_ACCOUNT_STATUS - command to print the contents of the various account files 22* that have been copied into the PDT. 23* 24* USAGE: display_account_status {project_name} {control_args} 25* -brief,-bf -no_header,-nhe and -long,-lg are accepted 26**/ 27 28 /* 29* Initial coding June 1977 by John Gintell 30* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures. (UNCA) 31* Modified Apr 1980 by J. N. R. Barnecut to print requistion amount. (UNCA) 32* Modified March 1981 by John Gintell for MCR 4851 33* Modified June 1981 by E. N. Kittlitz for multiple rate structures. 34* Modified 1984-08-27 BIM for login auth ranges, projfile/reqfile versions. 35* Modified 1984-12-14 by EJ Sharpe for new audit flags 36**/ 37 38 display_account_status: das: procedure; 39 40 41 42 /* DECLARATION OF AUTOMATIC STORAGE VARIABLES */ 43 44 dcl ctr fixed bin init (0); 45 dcl authorization_string char (500); 46 dcl audit_string char (256); 47 dcl disk_price float bin; 48 dcl disk_chg float bin (63); 49 dcl dum (0:7) float bin; 50 dcl (an, nargs) fixed bin; 51 dcl rs_name char (32); 52 dcl attr varying char (512); 53 dcl (pdt_dir, pdt_path) char (168) aligned; 54 dcl projname char (9); 55 dcl namexx char (24); 56 dcl accxx char (32); 57 dcl datestr char (16) aligned; 58 dcl date_string char (24) aligned; 59 dcl sel_name char (32) aligned init (""); 60 dcl pdt_name char (32) aligned; 61 dcl (i, slng) fixed bin; 62 dcl code fixed bin (35); 63 dcl no_header bit (1) init (""b); 64 dcl brief bit (1) init (""b); 65 dcl pmf bit (1) init (""b); 66 dcl long bit (1) init (""b); 67 dcl (argp, pdtep, pdtp) ptr; 68 dcl (pp, qp, satp, satep) ptr; 69 dcl (projp, reqp) ptr; 70 dcl max_rs_number fixed bin; 71 72 dcl 1 req based (reqp) aligned, 73 2 entry like reqfile.reqfiletab; 74 dcl 1 proj based (projp), 75 2 entry like projfile.projfiletab; 76 77 /* DECLARATION OF INTERNAL STATIC */ 78 79 dcl NEVER fixed bin (71) int static init /* This date is 12/31/99 2359. */ 80 (1011000110010110011001001110100110111010100100000000b); /* .. if Multics last this long we will have to fix */ 81 82 dcl myname static char (22) init ("display_account_status") options (constant); 83 84 /* DECLARATION OF BASED STRUCTURES */ 85 86 dcl arg char (slng) unaligned based (argp); 87 88 89 /* DECLARATION OF BUILTIN FUNCTIONS */ 90 91 dcl (addr, addrel, clock, divide, length, max, null, search, substr, rtrim, unspec) builtin; 92 93 /* DECLARATION OF EXTERNAL ENTRIES */ 94 95 dcl expand_pathname_ entry (char (*) aligned, char (*) aligned, char (*) aligned, fixed bin (35)); 96 dcl format_attributes_ entry (ptr, char (*) var); 97 dcl convert_access_audit_flags_$to_string entry (bit (36) aligned, char (*), fixed bin (35)); 98 dcl convert_access_class_$to_string_range entry ( (2) bit (72) aligned, character (*), fixed binary (35)); 99 dcl user_info_ entry (char (*), char (*), char (*)); 100 dcl date_time_ entry (fixed bin (71), char (*) aligned); 101 dcl com_err_ entry options (variable); 102 dcl ioa_ entry options (variable); 103 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin (35)); 104 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 105 dcl hcs_$initiate entry (char (*) aligned, char (*) aligned, char (*) aligned, 106 fixed bin (1), fixed bin (2), ptr, fixed bin (35)); 107 dcl hcs_$terminate_noname entry (ptr, fixed bin (35)); 108 dcl system_info_$max_rs_number entry (fixed bin); 109 dcl system_info_$prices_rs ext entry 110 (fixed bin, (0: 7) float bin, (0: 7) float bin, (0: 7) float bin, (0: 7) float bin, float bin, float bin); 111 dcl system_info_$rs_name ext entry (fixed bin, char (*), fixed bin (35)); 112 113 /* DECLARATION OF EXTERNAL STATIC */ 114 115 dcl error_table_$entlong fixed bin(35) ext static; 116 1 1 /* BEGIN INCLUDE FILE ... pdt.incl.pl1 */ 1 2 /* Requires user_attributes.incl.pl1 */ 1 3 1 4 /* Modified 740723 by PG to add AIM info */ 1 5 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 1 6 /* Modified May 1976 by T. Casey to add cutoff warning thresholds and change version to 3 */ 1 7 /* Modified May 1977 by John Gintell to add reqfile, projfile, and SAT to header */ 1 8 /* Modified May 1978 by T. Casey to add pdir_quota to user entry */ 1 9 /* Modified June 1978 by T. Casey to add rel ptr to pdt hash table */ 1 10 /* Modified November 1978 by T. Casey to add max_(fore back)ground, n_(fore back)ground and abs_foreground_cpu_limit */ 1 11 /* Modified October 1979 by T. Casey to add counters for interactive and disconnected processes. */ 1 12 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures (UNCA). */ 1 13 /* Modified May 1980 by R. McDonald to use iod cpu time field for page charging (UNCA) */ 1 14 /* Modified December 1981 by E. N. Kittlitz for user_warn fields */ 1 15 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 1 16 /* Modified September 1982 by E. N. Kittlitz for default ring. */ 1 17 /* Modified 1984-07-05 BIM for min authorization, version to 4 */ 1 18 1 19 dcl (PDT_version init (4), /* version of this declaration */ 1 20 PDT_header_lth init (256), /* length in words of PDT head */ 1 21 PDT_entry_lth init (256), /* length in words of PDT entry */ 1 22 1 23 PDT_project_name_length init (9), /* proper length of pdt.project_name */ 1 24 PDT_person_id_length init (22) /* proper length of user.person_id */ 1 25 ) fixed bin internal static options (constant); 1 26 1 27 dcl 1 pdt based (pdtp) aligned, 1 28 2 1 /* BEGIN INCLUDE FILE author.incl.pl1 */ 2 2 2 3 /* the "author" items must always be the first ones in the table. The 2 4* module which moves the converted table to the System Control process 2 5* fills in these data items and assumes them to be at the head of the segment 2 6* regardless of the specific table's actual declaration. The variables 2 7* "lock" and "last_install_time" used to be "process_id" and "ev_channel" 2 8* respectively. For tables installed in multiple processes, these 2 9* are to be used to lock out multiple installations. */ 2 10 2 11 /* Lock should be used as a modification lock. Since, in general, 2 12* entries may not be moved in system tables, even by installations, 2 13* it is sufficient for only installers and programs that change threads 2 14* to set or respect the lock. Simply updating data in an entry 2 15* requires no such protection. 2 16* 2 17* Last_install_time is used by readers of system tables to detect 2 18* installations or other serious modifications. By checking it before 2 19* and after copying a block of data, they can be protected against 2 20* modifications. 2 21* 2 22* Modules that set the lock should save proc_group_id, and then 2 23* put their group id there for the time they hold the lock. 2 24* if they do not actually install the, they should restore the group id. 2 25**/ 2 26 2 27 2 author aligned, /* validation data about table's author */ 2 28 3 proc_group_id char (32), /* process-group-id (personid.projectid.tag) */ 2 29 3 lock bit (36), /* installation lock */ 2 30 3 update_attributes bit (1) unal, /* update/add/delete attributes */ 2 31 3 update_authorization bit (1) unal, /* update only authorizations */ 2 32 3 deferral_notified bit (1) unal, /* installer notified of deferral of installation */ 2 33 3 pad bit (33) unaligned, 2 34 3 last_install_time fixed bin (71), 2 35 3 table char (4), /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */ 2 36 3 w_dir char (64), /* author's working directory */ 2 37 2 38 /* END INCLUDE FILE author.incl.pl1 */ 1 29 1 30 2 max_size fixed bin, /* max number of entries table can grow */ 1 31 2 current_size fixed bin, /* current size of table (in entries) */ 1 32 2 version fixed bin, /* table version */ 1 33 2 freep fixed bin, /* relptr to begin of free chain */ 1 34 2 n_users fixed bin, /* number of entries actually used */ 1 35 2 project_name char (28), /* name of project */ 1 36 2 project_dir char (64), /* treename of project's directory */ 1 37 2 projfile_version fixed bin, 1 38 2 projentry bit (66*36), 1 39 2 pad3 (5) bit (36) aligned, 1 40 2 reqfile_version fixed bin, 1 41 2 reqentry bit (40*36), 1 42 2 pad4 (9) fixed bin, 1 43 2 sat_version fixed bin, 1 44 2 satentry bit (52*36), /* everything in sat.project from project.at on */ 1 45 2 pad5 (4) bit (36) aligned, 1 46 2 date_reqfile_copied fixed bin (71), 1 47 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number, easier than looking in satentry */ 1 48 2 pad2l bit (27) unaligned, 1 49 2 pad2 (16) fixed bin, /* make header 256 words long */ 1 50 2 ht_relp fixed bin (18) aligned, /* if nonzero, pdt has hash table at that loc */ 1 51 2 user (1019) aligned, /* the project definition table entries */ 1 52 3 pad (256) bit (36) aligned; /* each entry is 256 words long */ 1 53 1 54 /* The hash table, if there is one, is right after the last user, and is described in hashst.incl.pl1 */ 1 55 1 56 1 57 1 58 dcl 1 user based (pdtep) aligned, /* declaration of a single PDT entry */ 1 59 2 state fixed bin, /* 1 = normal, 2 = deleted 0 = free */ 1 60 2 lock bit (36), /* update lock */ 1 61 2 person_id char (24) aligned, /* login name of user */ 1 62 2 now_in fixed bin, /* count of users logged in on this entry */ 1 63 2 password char (8) aligned, /* password for anonymous user */ 1 64 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 1 65 2 initial_procedure char (64) aligned, /* initproc and subsystem name packed into one string */ 1 66 2 home_dir char (64) aligned, /* user's default working directory */ 1 67 2 bump_grace fixed bin, /* number of minutes he is protected */ 1 68 2 high_ring fixed bin, /* highest ring user may use */ 1 69 2 default_ring fixed bin (17) unal, /* ring user will start in */ 1 70 2 low_ring fixed bin (17) unal, /* lowest ring user may use */ 1 71 2 outer_module char (32), /* outer module used if user is interactive */ 1 72 2 lot_size fixed bin, /* size of linkage offset table */ 1 73 2 kst_size fixed bin, /* size of known segment table */ 1 74 2 cls_size fixed bin, /* size of combined linkage */ 1 75 2 uflags, /* various flags */ 1 76 3 dont_call_init_admin bit (1) unal, /* call overseer direct */ 1 77 3 ip_given bit (1) unal, /* ip_len gives length of initproc packed in initial_procedure */ 1 78 3 ss_given bit (1) unal, /* subsystem name is packed in initial_procedure */ 1 79 3 flagpad bit (33) unal, 1 80 2 ip_len fixed bin (17) unal, /* length of initproc name packed in initial_procedure */ 1 81 2 ss_len fixed bin (17) unal, /* length of subsystem name packed in initial_procedure */ 1 82 2 dollar_limit float bin, 1 83 2 dollar_charge float bin, /* total dollars spent this month */ 1 84 2 shift_limit (0: 7) float bin, 1 85 2 daton fixed bin (71), /* date user added to system */ 1 86 2 datof fixed bin (71), /* date user deleted */ 1 87 2 last_login_time fixed bin (71), /* time of last login */ 1 88 2 last_login_unit char (4), /* terminal id last used */ 1 89 2 last_login_type fixed bin (17) unal, /* terminal type */ 1 90 2 last_login_line_type fixed bin (17) unal, /* terminal line type */ 1 91 2 time_last_bump fixed bin (71), /* for bump-wait */ 1 92 2 last_update fixed bin (71), /* time of last transaction */ 1 93 2 logins fixed bin, /* number of logins */ 1 94 2 crashes fixed bin, /* sessions abnormally terminated */ 1 95 2 interactive (0: 7), /* interactive use, shifts 0-7 */ 1 96 3 charge float bin, /* total dollar charge this shift */ 1 97 3 xxx fixed bin, 1 98 3 cpu fixed bin (71), /* cpu usage in microseconds */ 1 99 3 core fixed bin (71), /* core demand in page-microseconds */ 1 100 3 connect fixed bin (71), /* total console time in microseconds */ 1 101 3 io_ops fixed bin (71), /* total i/o ops on terminal */ 1 102 2 absentee (4), /* absentee use, queues 1-4 */ 1 103 3 charge float bin, /* dollar charge this queue */ 1 104 3 jobs fixed bin, /* number of jobs submitted */ 1 105 3 cpu fixed bin (71), /* total cpu time in microseconds */ 1 106 3 memory fixed bin (71), /* total memory demand */ 1 107 2 iod (4), /* io daemon use, queues 1-4 */ 1 108 3 charge float bin, /* dollar charge this queue */ 1 109 3 pieces fixed bin, /* pieces of output requested */ 1 110 3 pad fixed bin (35), 1 111 3 pages fixed bin (35), /* number of pages output */ 1 112 3 lines fixed bin (71), /* total record count of output */ 1 113 2 devices (16) float bin, /* device charges */ 1 114 2 time_last_reset fixed bin (71), /* time PDT last updated */ 1 115 2 absolute_limit float bin, /* Limit, not reset monthly */ 1 116 2 absolute_spent float bin, /* Spending against this */ 1 117 2 absolute_cutoff fixed bin (71), /* Spending will be reset on this date */ 1 118 2 absolute_increm fixed bin, /* .. time increment code. 0 = don't reset */ 1 119 2 pad_was_authorization bit (72) aligned, 1 120 2 group char (8), /* group for this user (if at.igroup = "1"b) */ 1 121 2 warn_days fixed bin (17) unaligned, /* warn user if less than this many days to cutoff */ 1 122 2 warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of funds left */ 1 123 2 warn_dollars float bin, /* warn user if less than this amount of funds left */ 1 124 2 n_foreground fixed bin (9) unsigned unaligned, /* number of foreground and background processes */ 1 125 2 n_background fixed bin (9) unsigned unaligned, /* that this user has. see limits just below */ 1 126 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and */ 1 127 2 max_background fixed bin (9) unsigned unaligned, /* background processes that this user can have */ 1 128 2 n_interactive fixed bin (9) unsigned unaligned, /* number of interactive processes that user has */ 1 129 2 n_disconnected fixed bin (9) unsigned unaligned, /* number of disconnected processes that user has */ 1 130 2 pdtupad1 fixed bin (18) unsigned unaligned, 1 131 2 user_warn_days fixed bin (17) unaligned, /* warn user if less than this many days to user cutoff */ 1 132 2 user_warn_pct fixed bin (17) unaligned, /* warn user if less than this percent of user funds left */ 1 133 2 user_warn_dollars float bin, /* warn user if less than this amount of user funds left */ 1 134 2 user_authorization (2) bit (72) aligned, /* range */ 1 135 2 pdtupad (5) fixed bin, 1 136 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit (sec) on foreground absentee jobs */ 1 137 2 pdir_quota fixed bin (17) unaligned, /* quota to put on user's pdir (0 => use default) */ 1 138 2 chain fixed bin; /* free chain */ 1 139 1 140 /* END INCLUDE FILE ... pdt.incl.pl1 */ 117 3 1 /* Requisition file declaration */ 3 2 /* Modified BIM 1984-07-10 for unaligned strings */ 3 3 /* Modified BIM 1984-09-14 foor 3000 size-array */ 3 4 3 5 dcl 1 reqfile based (qp) aligned, /* MIT accounting data */ 3 6 2 nacts fixed, 3 7 2 version fixed bin, 3 8 2 pad (6) bit (36) aligned, 3 9 2 reqfiletab (3000), /* one entry per Multics account */ 3 10 /* same size as projfile */ 3 11 3 acctid char (12) unal, /* account id. usually same as Proj */ 3 12 3 mitacct char (12) unal, /* MIT account no. */ 3 13 3 reqno char (12) unal, /* requisition or PO no. */ 3 14 3 qflag char (8), /* class & activity */ 3 15 3 procssd fixed bin, /* temp for usage report */ 3 16 3 qdn fixed bin (71), /* date on for account */ 3 17 3 qdf fixed bin (71), /* date off */ 3 18 3 billing_name char (32) unal, /* where to send bill */ 3 19 3 billing_addr char (32) unal, 3 20 3 chg_mo float bin (63), /* charges this month */ 3 21 3 chg_tr float bin (63), /* charges this req */ 3 22 3 req_amt float bin (63), /* req face value */ 3 23 3 cutoff fixed bin (71); /* term date for req */ 3 24 3 25 dcl loqh int static fixed bin (17) init (8), /* length of reqfile head */ 3 26 loqe int static fixed bin (17) init (40); /* lth of reqfile entry */ 3 27 3 28 declare REQFILE_VERSION fixed bin init (2) int static options (constant); 3 29 3 30 /* End include file reqfile.incl.pl1 */ 118 4 1 /* BEGIN INCLUDE FILE .. projfile.incl.pl1 */ 4 2 /* Modified by T. Casey April 1976 to change disk_infs (obsolete) to dir_disk_use */ 4 3 /* Modified 1984-07-09 BIM for dir_disk_quota, version */ 4 4 /* Modified 1984-09-14 BIM for reasonable array size */ 4 5 4 6 dcl 1 projfile based (pp) aligned, /* Project history file */ 4 7 2 nproj fixed bin (35), /* number of entries */ 4 8 2 version fixed bin, 4 9 2 projfilexx0 (6) bit (36) aligned, 4 10 2 projfiletab (3000), /* in seg limit */ 4 11 3 id char (12) unal, /* project ID */ 4 12 3 title char (52) unal, /* project title */ 4 13 3 inv char (32) unal, /* name of principal investigator */ 4 14 3 inv_addr char (32) unal, /* address */ 4 15 3 sup char (32) unal, /* name of supervisor */ 4 16 3 sup_addr char (32) unal, /* address */ 4 17 3 sup_phone char (16) unal, /* telephone */ 4 18 3 on fixed bin (71), /* date on */ 4 19 3 off fixed bin (71), /* date off */ 4 20 3 disk_psec fixed bin (71), /* project disk page-seconds */ 4 21 3 disk_quota fixed bin (35), /* project disk quota */ 4 22 3 dir_disk_quota fixed bin (35), /* project dir disk quota */ 4 23 3 disk_use fixed bin (35), /* total segment pages used */ 4 24 3 dir_disk_use fixed bin (35), /* total directory pages used */ 4 25 3 misc_charges float bin, /* manuals, etc */ 4 26 3 n_misc fixed bin, /* number of entries */ 4 27 3 processed fixed bin, /* temp for usage-report */ 4 28 3 pad bit (36) aligned; /* out to even number of words */ 4 29 4 30 dcl loph int static fixed bin (17) options (constant) init (8), /* lth of projfile header */ 4 31 lope int static fixed bin (17) options (constant) init (66); /* lth of projflile entry */ 4 32 4 33 dcl PROJFILE_VERSION fixed bin init (3) int static options (constant); 4 34 4 35 /* END INCLUDE FILE ... projfile.incl.pl1 */ 119 5 1 /* BEGIN INCLUDE FILE ... sat.incl.pl1 */ 5 2 5 3 5 4 5 5 5 6 /****^ HISTORY COMMENTS: 5 7* 1) change(86-09-05,Parisek), approve(87-06-17,MCR7570), 5 8* audit(87-06-15,Hirneisen), install(87-08-06,MR12.1-1066): 5 9* Expand comment line of project.state to include the renamed state (state = 5 10* 3). 5 11* END HISTORY COMMENTS */ 5 12 5 13 5 14 5 15 /* Modified 740723 by PG to add AIM info */ 5 16 /* Modified 750604 by T. Casey to add priority scheduler parameters */ 5 17 /* Modified May 1976 by T. Casey to add project cutoff limits */ 5 18 /* Modified May 1978 by T. Casey to add pdir_quota */ 5 19 /* Modified November 1978 by T. Casey to add max_(fore back)ground and abs_foreground_cpu_limit */ 5 20 /* Modified July 1979 by J. N. R. Barnecut to support multiple rate structures. (UNCA) */ 5 21 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */ 5 22 /* Modified 1984-07-05 BIM range of authorizations, version 3 */ 5 23 5 24 dcl (SAT_version init (3), /* version 2 of this declaration */ 5 25 5 26 SAT_header_lth init (466), /* length in words of SAT header */ 5 27 SAT_entry_lth init (80), /* length in words of SAT entry */ 5 28 5 29 SAT_project_name_length init (9) /* proper length of project.project_id */ 5 30 ) fixed bin internal static options (constant); 5 31 5 32 dcl 1 sat based (satp) aligned, 5 33 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 34 5 35 2 max_size fixed bin, /* max number of entries table can grow */ 5 36 2 current_size fixed bin, /* current size of table (in entries) */ 5 37 2 version fixed bin, /* version number of table (word 32) */ 5 38 2 freep fixed bin, /* free chain ptr. 0 if no free entries */ 5 39 2 n_projects fixed bin, /* number of entries actually used */ 5 40 2 pad_was_max_users bit (36) aligned, 5 41 2 max_units fixed bin, /* maximum number of login-units per session */ 5 42 2 pad_was_max_prim bit (36) aligned, 5 43 2 uwt_size fixed bin, /* size of User Weight Table */ 5 44 2 uwt (24) aligned, /* User Weight Table */ 5 45 3 initproc char (64) unaligned, /* user's initial procedure */ 5 46 3 units fixed bin, /* weight of initial procedure */ 5 47 2 system_admin (2) char (32) unal, /* system administrator ID */ 5 48 2 pad1 (4) fixed bin, /* padding to 466 wds */ 5 49 2 project (3258), /* The SAT entries. 255K segment. */ 5 50 3 pad (80) fixed bin; /* each entry is 80 words long */ 5 51 5 52 5 53 dcl 1 project based (satep) aligned, /* declaration of a single SAT entry */ 5 54 2 state fixed bin, /* state 1 = normal, 0 = free, 2 = deleted, 3 = renamed */ 5 55 2 project_id char (12) unaligned, /* project's name */ 5 56 2 project_dir char (64) unaligned, /* project's directory */ 5 57 2 pdt_ptr pointer, /* pointer to current PDT */ 5 58 2 max_users fixed bin, /* maximum number of users from project */ 5 59 2 n_users fixed bin, /* current number */ 5 60 2 at like user_attributes aligned, /* include user_attributes.incl.pl1 */ 5 61 2 admin (4) aligned, /* list of project's administrators */ 5 62 3 userid char (30) unal, /* administrator's user-id (personid.projectid) */ 5 63 3 pad char (2) unal, 5 64 2 cutoff char (1), /* if project is cut off, why. */ 5 65 2 min_ring fixed bin, /* lowest ring for project */ 5 66 2 max_ring fixed bin, /* highest ring for project */ 5 67 2 alias char (8) unal, /* project alias */ 5 68 2 group char (8) unal, /* default group for this project */ 5 69 2 grace_max fixed bin, /* maximum bump grace */ 5 70 2 audit bit (36), /* audit flags for project */ 5 71 2 project_authorization (2) bit (72), /* authorization of this project */ 5 72 2 groups (2) char (8) unal, /* authorized groups for this project */ 5 73 2 days_to_cutoff fixed bin (17) unaligned, /* these figures are as of last running of daily_summary */ 5 74 2 pct_balance fixed bin (17) unaligned, /* they are used for warning message printing only */ 5 75 2 dollars_to_cutoff float bin, /* and are not to be taken as up-to-date figures */ 5 76 2 pdir_quota fixed bin (17) unaligned, /* max pdir quota allowed for project */ 5 77 2 max_foreground fixed bin (9) unsigned unaligned, /* max simultaneous foreground and background */ 5 78 2 max_background fixed bin (9) unsigned unaligned, /* processes that a user on this project can have */ 5 79 2 abs_foreground_cpu_limit fixed bin (17) unaligned, /* time limit on foreground absentee jobs */ 5 80 2 rs_number fixed bin (9) unsigned unaligned, /* rate structure number (0=default rates ) */ 5 81 2 satpad1 fixed bin (9) unsigned unaligned, 5 82 2 satpad (1) bit (36) aligned, /* pad to 80 words */ 5 83 2 chain fixed bin; /* if free entry, chain */ 5 84 5 85 /* END INCLUDE FILE ... sat.incl.pl1 */ 120 7 1 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 7 2 7 3 7 4 /****^ HISTORY COMMENTS: 7 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 7 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 7 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 7 8* attribute switches. 7 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 7 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 7 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 7 12* be deleted. 7 13* B) Add constants identifying attributes that can be changed by user at 7 14* login, etc. 7 15* END HISTORY COMMENTS */ 7 16 7 17 7 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 7 19 7 20 /* format: style4 */ 7 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 7 22 (2 administrator bit (1), /* 1 system administrator privileges */ 7 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 7 24 2 nobump bit (1), /* 2 user cannot be bumped */ 7 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 7 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 7 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 7 28* . of same project (distinct from "nobump") */ 7 29 2 nolist bit (1), /* 7 don't list user on "who" */ 7 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 7 31 2 multip bit (1), /* 9 user may have several processes */ 7 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 7 33 2 brief bit (1), /* 11 no login or logout message */ 7 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 7 35 2 vhomedir bit (1), /* 13 user may change homedir */ 7 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 7 37 2 sb_ok bit (1), /* 15 user may be standby */ 7 38 2 pm_ok bit (1), /* 16 user may be primary */ 7 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 7 40 2 daemon bit (1), /* 18 user may login as daemon */ 7 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 7 42 2 no_warning bit (1), /* 20 no warning message */ 7 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 7 44* . in PDT: this user has an individual load control group */ 7 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 7 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 7 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 7 48 2 pad bit (12)) unaligned; 7 49 7 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 7 51 ("none", /* 0 */ 7 52 "administrator", /* 1 */ 7 53 "primary_line", /* 2 */ 7 54 "nobump", /* 3 */ 7 55 "guaranteed_login", /* 4 */ 7 56 "anonymous", /* 5 */ 7 57 "nopreempt", /* 6 */ 7 58 "nolist", /* 7 */ 7 59 "dialok", /* 8 */ 7 60 "multip", /* 9 */ 7 61 "bumping", /* 10 */ 7 62 "brief", /* 11 */ 7 63 "vinitproc", /* 12 */ 7 64 "vhomedir", /* 13 */ 7 65 "nostartup", /* 14 */ 7 66 "no_secondary", /* 15 */ 7 67 "no_prime", /* 16 */ 7 68 "no_eo", /* 17 */ 7 69 "daemon", /* 18 */ 7 70 "", /* 19 vdim OBSOLETE */ 7 71 "no_warning", /* 20 */ 7 72 "igroup", /* 21 */ 7 73 "save_pdir", /* 22 */ 7 74 "disconnect_ok", /* 23 */ 7 75 "save_on_disconnect"); /* 24 */ 7 76 7 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 7 78 ("null", /* 0 */ 7 79 "admin", /* 1 */ 7 80 "", "", /* 2 - 3 */ 7 81 "guar", /* 4 */ 7 82 "anon", /* 5 */ 7 83 "", "", /* 6 - 7 */ 7 84 "dial", /* 8 */ 7 85 "multi_login", /* 9 */ 7 86 "preempting", /* 10 */ 7 87 "", /* 11 */ 7 88 "v_process_overseer", /* 12 */ 7 89 "v_home_dir", /* 13 */ 7 90 "no_start_up", /* 14 */ 7 91 "no_sec", /* 15 */ 7 92 "no_primary", /* 16 */ 7 93 "no_edit_only", /* 17 */ 7 94 "op_login", /* 18 */ 7 95 "", /* 19 */ 7 96 "nowarn", /* 20 */ 7 97 "", "", "", /* 21 - 23 */ 7 98 "save"); /* 24 */ 7 99 7 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 7 101 options(constant) init("000000000010000000010000000000000000"b); 7 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 7 103 7 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 7 105 options(constant) init("000000000010000000010000000000000000"b); 7 106 /* PDT value for (brief, no_warning) is default */ 7 107 7 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 7 109 options(constant) init("000100000110010000010000000000000000"b); 7 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 7 111 8 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 8 2 8 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 4 /* */ 8 5 /* This include file describes the attributes of an absentee job. It is */ 8 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 8 7 /* and PIT.incl.pl1. */ 8 8 /* */ 8 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 8 10 8 11 /****^ HISTORY COMMENTS: 8 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 8 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 14* Separated abs_attributes from the request structure 8 15* (abs_message_format.incl.pl1) so that the identical structure could be 8 16* used in the ute structure (user_table_entry.incl.pl1). 8 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 8 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 8 19* Added ABS_ATTRIBUTE_NAMES array. 8 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 8 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 8 22* Added the no_start_up flag. SCP6367 8 23* END HISTORY COMMENTS */ 8 24 8 25 dcl 1 user_abs_attributes aligned based, 8 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 8 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 8 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 8 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 8 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 8 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 8 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 8 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 8 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 8 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 8 36 2 attributes_pad bit (26) unaligned; 8 37 8 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 8 39 "restartable", 8 40 "user_deferred_until_time", 8 41 "proxy", 8 42 "set_bit_cnt", 8 43 "time_in_gmt", 8 44 "user_deferred_indefinitely", 8 45 "secondary_ok", 8 46 "truncate_absout", 8 47 "restarted", 8 48 "no_start_up"); 8 49 8 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 8 51 7 112 7 113 7 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 121 122 123 /* LOCATE AND INITIALIZE A PDT */ 124 125 call system_info_$max_rs_number (max_rs_number); 126 127 pdt_path = ""; /* keep ERR from crapping out */ 128 call cu_$arg_count (nargs, code); 129 if code ^= 0 then go to ERR; 130 131 an = 1; 132 133 if nargs ^= 0 then do; 134 call cu_$arg_ptr (1, argp, slng, code); /* get 1st arg: name of pdt */ 135 if substr (arg, 1, 1) ^= "-" then do; 136 pdt_path = arg; 137 if substr (pdt_path, max (slng-3, 1), 4) ^= ".pdt" then do; 138 pdt_path = rtrim (pdt_path) || ".pdt"; 139 end; 140 an = 2; 141 end; 142 else call get_default_project; 143 end; 144 else call get_default_project; 145 146 if search (pdt_path, "><") ^= 0 then do; 147 call expand_pathname_ (pdt_path, pdt_dir, pdt_name, code); 148 if code ^= 0 then do; 149 ERR: call com_err_ (code, myname, "^a", pdt_path); 150 return; 151 end; 152 end; 153 else if length(rtrim(pdt_path)) > length(pdt_name) then do; 154 call com_err_ (error_table_$entlong, myname, "^a", pdt_path); 155 return; 156 end; 157 else do; 158 pdt_name = substr(pdt_path,1,length(pdt_name)); 159 pdt_dir = ">system_control_1>pdt"; 160 end; 161 162 call hcs_$initiate (pdt_dir, pdt_name, "", 0, 0, pdtp, code); 163 if pdtp = null then do; 164 call com_err_ (code, myname, "^a>^a", pdt_dir, pdt_name); 165 return; 166 end; 167 168 if pdt.projfile_version ^= PROJFILE_VERSION & pdt.reqfile_version ^= REQFILE_VERSION & pdt.sat_version ^= SAT_version then do; 169 call com_err_ ((0), myname, "PDT not in proper format."); 170 goto TERM; 171 end; 172 173 do an = an to nargs; 174 call cu_$arg_ptr (an, argp, slng, code); /* get next arg: a control arg */ 175 if arg = "-brief" | arg = "-bf" then no_header, brief = "1"b; 176 else if arg = "-long" | arg = "-lg" then long = "1"b; 177 else if arg = "-no_header" | arg = "-nhe" then no_header = "1"b; 178 else do; 179 call com_err_ (0, myname, "Unrecognized control argument - ^a", arg); 180 go to TERM; 181 end; 182 end; 183 184 projp = addr (pdt.projentry); 185 reqp = addr (pdt.reqentry); 186 satep = addrel (addr (pdt.satentry), -24); /* satentry is missing first 24 words */ 187 188 call system_info_$prices_rs ((pdt.rs_number), dum, dum, dum, dum, disk_price, dum (0)); 189 if max_rs_number > 0 then do; 190 call system_info_$rs_name ((pdt.rs_number), rs_name, code); 191 if code ^= 0 then call com_err_ (code, myname, 192 "Rate structure ^d for project ^a. Default rates will be used", pdt.rs_number, pdt_name); 193 end; 194 disk_chg = disk_price * proj.disk_psec; 195 196 if ^no_header then do; 197 call date_time_ ((clock ()), datestr); 198 call ioa_ ("^/^2-^28a^3x^20a^/", pdt_name, datestr); 199 call date_time_ (pdt.date_reqfile_copied, datestr); 200 call ioa_ ("^2-Account information copied ^4x^a^/", datestr); 201 call ioa_ ("Projectid:^10x^a;", pdt.project_name); 202 end; 203 204 if brief then do; 205 call ioa_ ("month-to-date charges: total: $^.2f, disk: $^.2f, misc: $^.2f", 206 req.chg_mo, disk_chg, proj.misc_charges); 207 end; 208 else do; 209 if long then do; 210 call ioa_ ("^/REQFILE"); 211 call ioa_ (" account:^-^-^a", req.mitacct); 212 call ioa_ (" reqno:^-^-^a", req.reqno); 213 if max_rs_number > 0 then 214 call ioa_ (" rate structure:^-^a", rs_name); 215 call ioa_ (" qflag:^-^-^a", fudge0 ((req.qflag))); 216 call ioa_ (" date on:^-^-^a", cv_time (req.qdn)); 217 call ioa_ (" date off:^-^a", cv_time (req.qdf)); 218 call ioa_ (" billing name:^-^a", req.billing_name); 219 call ioa_ (" billing addr:^-^a", req.billing_addr); 220 end; 221 call ioa_ (" charge this month:^-$ ^12.2f", req.chg_mo); 222 call ioa_ (" charge this req:^-$ ^12.2f", req.chg_tr); 223 call ioa_ (" req amount:^-$ ^12.2f^41tbalance:^-^[OPEN^s^;$ ^.2f^]", req.req_amt, req.req_amt = 0, req.req_amt -req.chg_tr -req.chg_mo); 224 call ioa_ (" cutoff date:^-^a", cv_time (req.cutoff)); 225 if long then do; 226 call ioa_ ("^/PROJFILE"); 227 call ioa_ (" title:^-^-^a", proj.title); 228 call ioa_ (" investigator:^-^a", proj.inv); 229 call ioa_ (" inv address:^-^a", proj.inv_addr); 230 call ioa_ (" supervisor:^-^a", proj.sup); 231 call ioa_ (" sup addr:^-^a", proj.sup_addr); 232 call ioa_ (" sup phone:^-^a", proj.sup_phone); 233 call ioa_ (" date on:^-^-^a", cv_time (proj.on)); 234 call ioa_ (" date off:^-^a", cv_time (proj.off)); 235 end; 236 call ioa_ (" disk page-months:^-^d, $ ^.2f", divide (proj.disk_psec, 60*60*24*30, 35, 0), disk_chg); 237 call ioa_ (" disk quota:^-^d", proj.disk_quota); 238 call ioa_ (" disk use:^-^d", proj.disk_use); 239 call ioa_ (" dir disk use:^-^d", proj.dir_disk_use); 240 call ioa_ (" misc charges:^-$ ^.2f", proj.misc_charges); 241 call ioa_ (" # misc charges:^-^d", proj.n_misc); 242 if long then do; 243 call ioa_ ("^/SAT"); 244 call format_attributes_ (addr (project.at), attr); 245 call ioa_ (" attributes:^-^a", attr); 246 do i = 1 to 4; 247 if project.userid (i) ^= "" then call ioa_ (" administrator:^-^a", project.userid (i)); 248 end; 249 call ioa_ (" ring:^2-^d,^d", project.min_ring, project.max_ring); 250 if project.alias ^= "" then call ioa_ (" alias:^2-^a", project.alias); 251 call ioa_ (" default group:^-^a", fudge0 (project.group)); 252 call ioa_ (" authorized groups:^-^[^3s^;^a^[^s^;, ^a^]", 253 fudge0(project.groups(1)) = "", 254 fudge0(project.groups(1)), 255 fudge0(project.groups(2)) = "", 256 fudge0(project.groups(2))); 257 call ioa_ (" max grace:^-^d", project.grace_max); 258 if project.audit ^= ""b then do; 259 call convert_access_audit_flags_$to_string (project.audit, audit_string, code); 260 if code ^= 0 then call com_err_ (code, myname, "Cannot convert audit string"); 261 else call ioa_ (" audit flags:^-^a", audit_string); 262 end; 263 if project.project_authorization (1) | project.project_authorization (2) ^= ""b then do; 264 call convert_access_class_$to_string_range (project.project_authorization, authorization_string, code); 265 if code ^= 0 then authorization_string = "unknown"; 266 call ioa_ (" authorization:^-^a", authorization_string); 267 end; 268 call ioa_ (" days to cutoff:^-^d", project.days_to_cutoff); 269 call ioa_ (" percent balance:^-^d%", project.pct_balance); 270 call ioa_ (" dollars to cutoff:^-$ ^.2f", project.dollars_to_cutoff); 271 call ioa_ (""); 272 end; 273 end; 274 TERM: call hcs_$terminate_noname (pdtp, code); 275 return; 276 277 get_default_project: proc; 278 call user_info_ (namexx, projname, accxx); 279 pdt_path = rtrim (projname) || ".pdt"; 280 end get_default_project; 281 282 cv_time: proc (time) returns (char (24) aligned); 283 284 dcl time fixed bin (71); 285 286 if time = 0 then return (""); 287 if time = NEVER then return (""); 288 call date_time_ (time, date_string); 289 290 return (date_string); 291 end cv_time; 292 293 fudge0: proc (input) returns (char (*)); 294 295 dcl input char (*); 296 if unspec (input) = ""b then return (""); 297 else return (input); 298 end fudge0; 299 300 301 end display_account_status; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/29/88 0856.4 display_account_status.pl1 >spec>install>1093>display_account_status.pl1 117 1 09/13/84 0921.6 pdt.incl.pl1 >ldd>include>pdt.incl.pl1 1-29 2 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 118 3 09/20/84 0925.7 reqfile.incl.pl1 >ldd>include>reqfile.incl.pl1 119 4 09/20/84 0925.7 projfile.incl.pl1 >ldd>include>projfile.incl.pl1 120 5 08/06/87 1416.6 sat.incl.pl1 >ldd>include>sat.incl.pl1 5-34 6 04/21/82 1211.8 author.incl.pl1 >ldd>include>author.incl.pl1 121 7 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 7-112 8 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. NEVER 000006 constant fixed bin(71,0) initial dcl 79 ref 287 PROJFILE_VERSION constant fixed bin(17,0) initial dcl 4-33 ref 168 REQFILE_VERSION constant fixed bin(17,0) initial dcl 3-28 ref 168 SAT_version constant fixed bin(17,0) initial dcl 5-24 ref 168 accxx 000762 automatic char(32) packed unaligned dcl 56 set ref 278* addr builtin function dcl 91 ref 184 185 186 244 244 addrel builtin function dcl 91 ref 186 admin 31 based structure array level 2 dcl 5-53 alias 74 based char(8) level 2 packed packed unaligned dcl 5-53 set ref 250 250* an 000412 automatic fixed bin(17,0) dcl 50 set ref 131* 140* 173* 173* 174* arg based char packed unaligned dcl 86 set ref 135 136 175 175 176 176 177 177 179* argp 001034 automatic pointer dcl 67 set ref 134* 135 136 174* 175 175 176 176 177 177 179 at 30 based structure level 2 dcl 5-53 set ref 244 244 attr 000424 automatic varying char(512) dcl 52 set ref 244* 245* audit 101 based bit(36) level 2 dcl 5-53 set ref 258 259* audit_string 000276 automatic char(256) packed unaligned dcl 46 set ref 259* 261* authorization_string 000101 automatic char(500) packed unaligned dcl 45 set ref 264* 265* 266* billing_addr 30 based char(32) level 3 packed packed unaligned dcl 72 set ref 219* billing_name 20 based char(32) level 3 packed packed unaligned dcl 72 set ref 218* brief 001030 automatic bit(1) initial packed unaligned dcl 64 set ref 64* 175* 204 chg_mo 40 based float bin(63) level 3 dcl 72 set ref 205* 221* 223 chg_tr 42 based float bin(63) level 3 dcl 72 set ref 222* 223 clock builtin function dcl 91 ref 197 code 001026 automatic fixed bin(35,0) dcl 62 set ref 128* 129 134* 147* 148 149* 162* 164* 174* 190* 191 191* 259* 260 260* 264* 265 274* com_err_ 000024 constant entry external dcl 101 ref 149 154 164 169 179 191 260 convert_access_audit_flags_$to_string 000014 constant entry external dcl 97 ref 259 convert_access_class_$to_string_range 000016 constant entry external dcl 98 ref 264 ctr 000100 automatic fixed bin(17,0) initial dcl 44 set ref 44* cu_$arg_count 000032 constant entry external dcl 104 ref 128 cu_$arg_ptr 000030 constant entry external dcl 103 ref 134 174 cutoff 46 based fixed bin(71,0) level 3 dcl 72 set ref 224* 224* date_reqfile_copied 354 based fixed bin(71,0) level 2 dcl 1-27 set ref 199* date_string 000776 automatic char(24) dcl 58 set ref 288* 290 date_time_ 000022 constant entry external dcl 100 ref 197 199 288 datestr 000772 automatic char(16) dcl 57 set ref 197* 198* 199* 200* days_to_cutoff 112 based fixed bin(17,0) level 2 packed packed unaligned dcl 5-53 set ref 268* dir_disk_use 75 based fixed bin(35,0) level 3 dcl 74 set ref 239* disk_chg 000400 automatic float bin(63) dcl 48 set ref 194* 205* 236* disk_price 000376 automatic float bin(27) dcl 47 set ref 188* 194 disk_psec 70 based fixed bin(71,0) level 3 dcl 74 ref 194 236 236 disk_quota 72 based fixed bin(35,0) level 3 dcl 74 set ref 237* disk_use 74 based fixed bin(35,0) level 3 dcl 74 set ref 238* divide builtin function dcl 91 ref 236 236 dollars_to_cutoff 113 based float bin(27) level 2 dcl 5-53 set ref 270* dum 000402 automatic float bin(27) array dcl 49 set ref 188* 188* 188* 188* 188* entry based structure level 2 in structure "req" dcl 72 in procedure "das" entry based structure level 2 in structure "proj" unaligned dcl 74 in procedure "das" error_table_$entlong 000046 external static fixed bin(35,0) dcl 115 set ref 154* expand_pathname_ 000010 constant entry external dcl 95 ref 147 format_attributes_ 000012 constant entry external dcl 96 ref 244 grace_max 100 based fixed bin(17,0) level 2 dcl 5-53 set ref 257* group 76 based char(8) level 2 packed packed unaligned dcl 5-53 set ref 251* groups 106 based char(8) array level 2 packed packed unaligned dcl 5-53 set ref 252* 252* 252* 252* hcs_$initiate 000034 constant entry external dcl 105 ref 162 hcs_$terminate_noname 000036 constant entry external dcl 107 ref 274 i 001024 automatic fixed bin(17,0) dcl 61 set ref 246* 247 247* input parameter char packed unaligned dcl 295 ref 293 296 297 inv 20 based char(32) level 3 packed packed unaligned dcl 74 set ref 228* inv_addr 30 based char(32) level 3 packed packed unaligned dcl 74 set ref 229* ioa_ 000026 constant entry external dcl 102 ref 198 200 201 205 210 211 212 213 215 216 217 218 219 221 222 223 224 226 227 228 229 230 231 232 233 234 236 237 238 239 240 241 243 245 247 249 250 251 252 257 261 266 268 269 270 271 length builtin function dcl 91 ref 153 153 158 long 001032 automatic bit(1) initial packed unaligned dcl 66 set ref 66* 176* 209 225 242 max builtin function dcl 91 ref 137 max_ring 73 based fixed bin(17,0) level 2 dcl 5-53 set ref 249* max_rs_number 001046 automatic fixed bin(17,0) dcl 70 set ref 125* 189 213 min_ring 72 based fixed bin(17,0) level 2 dcl 5-53 set ref 249* misc_charges 76 based float bin(27) level 3 dcl 74 set ref 205* 240* mitacct 3 based char(12) level 3 packed packed unaligned dcl 72 set ref 211* myname 000000 constant char(22) initial packed unaligned dcl 82 set ref 149* 154* 164* 169* 179* 191* 260* n_misc 77 based fixed bin(17,0) level 3 dcl 74 set ref 241* namexx 000754 automatic char(24) packed unaligned dcl 55 set ref 278* nargs 000413 automatic fixed bin(17,0) dcl 50 set ref 128* 133 173 no_header 001027 automatic bit(1) initial packed unaligned dcl 63 set ref 63* 175* 177* 196 null builtin function dcl 91 ref 163 off 66 based fixed bin(71,0) level 3 dcl 74 set ref 234* 234* on 64 based fixed bin(71,0) level 3 dcl 74 set ref 233* 233* pct_balance 112(18) based fixed bin(17,0) level 2 packed packed unaligned dcl 5-53 set ref 269* pdt based structure level 1 dcl 1-27 pdt_dir 000625 automatic char(168) dcl 53 set ref 147* 159* 162* 164* pdt_name 001014 automatic char(32) dcl 60 set ref 147* 153 158* 158 162* 164* 191* 198* pdt_path 000677 automatic char(168) dcl 53 set ref 127* 136* 137 138* 138 146 147* 149* 153 154* 158 279* pdtp 001036 automatic pointer dcl 67 set ref 162* 163 168 168 168 184 185 186 188 190 191 199 201 274* pmf 001031 automatic bit(1) initial packed unaligned dcl 65 set ref 65* proj based structure level 1 unaligned dcl 74 project based structure level 1 dcl 5-53 project_authorization 102 based bit(72) array level 2 dcl 5-53 set ref 263 263 264* project_name 42 based char(28) level 2 dcl 1-27 set ref 201* projentry 72 based bit(2376) level 2 dcl 1-27 set ref 184 projfile based structure level 1 dcl 4-6 projfile_version 71 based fixed bin(17,0) level 2 dcl 1-27 ref 168 projfiletab 10 based structure array level 2 dcl 4-6 projname 000751 automatic char(9) packed unaligned dcl 54 set ref 278* 279 projp 001042 automatic pointer dcl 69 set ref 184* 194 205 227 228 229 230 231 232 233 233 234 234 236 236 237 238 239 240 241 qdf 16 based fixed bin(71,0) level 3 dcl 72 set ref 217* 217* qdn 14 based fixed bin(71,0) level 3 dcl 72 set ref 216* 216* qflag 11 based char(8) level 3 dcl 72 ref 215 req based structure level 1 dcl 72 req_amt 44 based float bin(63) level 3 dcl 72 set ref 223* 223 223 reqentry 202 based bit(1440) level 2 dcl 1-27 set ref 185 reqfile based structure level 1 dcl 3-5 reqfile_version 201 based fixed bin(17,0) level 2 dcl 1-27 ref 168 reqfiletab 10 based structure array level 2 dcl 3-5 reqno 6 based char(12) level 3 packed packed unaligned dcl 72 set ref 212* reqp 001044 automatic pointer dcl 69 set ref 185* 205 211 212 215 216 216 217 217 218 219 221 222 223 223 223 223 223 224 224 rs_name 000414 automatic char(32) packed unaligned dcl 51 set ref 190* 213* rs_number 356 based fixed bin(9,0) level 2 packed packed unsigned unaligned dcl 1-27 set ref 188 190 191* rtrim builtin function dcl 91 ref 138 153 279 sat_version 263 based fixed bin(17,0) level 2 dcl 1-27 ref 168 satentry 264 based bit(1872) level 2 dcl 1-27 set ref 186 satep 001040 automatic pointer dcl 68 set ref 186* 244 244 247 247 249 249 250 250 251 252 252 252 252 257 258 259 263 263 264 268 269 270 search builtin function dcl 91 ref 146 sel_name 001004 automatic char(32) initial dcl 59 set ref 59* slng 001025 automatic fixed bin(17,0) dcl 61 set ref 134* 135 136 137 174* 175 175 176 176 177 177 179 179 substr builtin function dcl 91 ref 135 137 158 sup 40 based char(32) level 3 packed packed unaligned dcl 74 set ref 230* sup_addr 50 based char(32) level 3 packed packed unaligned dcl 74 set ref 231* sup_phone 60 based char(16) level 3 packed packed unaligned dcl 74 set ref 232* system_info_$max_rs_number 000040 constant entry external dcl 108 ref 125 system_info_$prices_rs 000042 constant entry external dcl 109 ref 188 system_info_$rs_name 000044 constant entry external dcl 111 ref 190 time parameter fixed bin(71,0) dcl 284 set ref 282 286 287 288* title 3 based char(52) level 3 packed packed unaligned dcl 74 set ref 227* unspec builtin function dcl 91 ref 296 user_attributes based structure level 1 dcl 7-21 user_info_ 000020 constant entry external dcl 99 ref 278 userid 31 based char(30) array level 3 packed packed unaligned dcl 5-53 set ref 247 247* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 8-38 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 7-77 PDT_entry_lth internal static fixed bin(17,0) initial dcl 1-19 PDT_header_lth internal static fixed bin(17,0) initial dcl 1-19 PDT_person_id_length internal static fixed bin(17,0) initial dcl 1-19 PDT_project_name_length internal static fixed bin(17,0) initial dcl 1-19 PDT_version internal static fixed bin(17,0) initial dcl 1-19 SAT_entry_lth internal static fixed bin(17,0) initial dcl 5-24 SAT_header_lth internal static fixed bin(17,0) initial dcl 5-24 SAT_project_name_length internal static fixed bin(17,0) initial dcl 5-24 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 7-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 7-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 7-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 7-50 lope internal static fixed bin(17,0) initial dcl 4-30 loph internal static fixed bin(17,0) initial dcl 4-30 loqe internal static fixed bin(17,0) initial dcl 3-25 loqh internal static fixed bin(17,0) initial dcl 3-25 pdtep automatic pointer dcl 67 pp automatic pointer dcl 68 qp automatic pointer dcl 68 sat based structure level 1 dcl 5-32 satp automatic pointer dcl 68 user based structure level 1 dcl 1-58 user_abs_attributes based structure level 1 dcl 8-25 NAMES DECLARED BY EXPLICIT CONTEXT. ERR 001001 constant label dcl 149 ref 129 TERM 003720 constant label dcl 274 ref 170 180 cv_time 004004 constant entry internal dcl 282 ref 216 216 217 217 224 224 233 233 234 234 das 000574 constant entry external dcl 38 display_account_status 000604 constant entry external dcl 38 fudge0 004050 constant entry internal dcl 293 ref 215 251 252 252 252 252 get_default_project 003732 constant entry internal dcl 277 ref 142 144 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4546 4616 4311 4556 Length 5216 4311 50 364 234 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME das 674 external procedure is an external procedure. get_default_project internal procedure shares stack frame of external procedure das. cv_time internal procedure shares stack frame of external procedure das. fudge0 65 internal procedure uses returns(char(*)) or returns(bit(*)), and is called during a stack extension. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME das 000100 ctr das 000101 authorization_string das 000276 audit_string das 000376 disk_price das 000400 disk_chg das 000402 dum das 000412 an das 000413 nargs das 000414 rs_name das 000424 attr das 000625 pdt_dir das 000677 pdt_path das 000751 projname das 000754 namexx das 000762 accxx das 000772 datestr das 000776 date_string das 001004 sel_name das 001014 pdt_name das 001024 i das 001025 slng das 001026 code das 001027 no_header das 001030 brief das 001031 pmf das 001032 long das 001034 argp das 001036 pdtp das 001040 satep das 001042 projp das 001044 reqp das 001046 max_rs_number das THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as r_ne_as alloc_char_temp call_ext_out_desc call_ext_out call_int_this_desc return_mac shorten_stack ext_entry int_entry_desc return_chars_eis divide_fx3 clock_mac THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ convert_access_audit_flags_$to_string convert_access_class_$to_string_range cu_$arg_count cu_$arg_ptr date_time_ expand_pathname_ format_attributes_ hcs_$initiate hcs_$terminate_noname ioa_ system_info_$max_rs_number system_info_$prices_rs system_info_$rs_name user_info_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$entlong LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 44 000561 59 000562 63 000565 64 000566 65 000567 66 000570 38 000573 125 000612 127 000621 128 000624 129 000635 131 000637 133 000641 134 000643 135 000662 136 000667 137 000673 138 000704 139 000732 140 000733 141 000735 142 000736 143 000737 144 000740 146 000741 147 000753 148 000777 149 001001 150 001030 152 001031 153 001032 154 001045 155 001074 158 001075 159 001100 162 001103 163 001146 164 001152 165 001205 168 001206 169 001220 170 001245 173 001246 174 001255 175 001272 176 001310 177 001323 179 001336 180 001372 182 001373 184 001375 185 001400 186 001403 188 001410 189 001435 190 001437 191 001464 194 001523 196 001531 197 001533 198 001552 199 001601 200 001617 201 001637 204 001660 205 001662 207 001713 209 001714 210 001716 211 001733 212 001755 213 001777 215 002024 216 002065 217 002120 218 002152 219 002173 221 002217 222 002240 223 002261 224 002320 225 002351 226 002353 227 002371 228 002413 229 002437 230 002460 231 002502 232 002524 233 002546 234 002600 236 002632 237 002664 238 002706 239 002730 240 002754 241 002775 242 003016 243 003020 244 003033 245 003053 246 003074 247 003101 248 003136 249 003140 250 003165 251 003215 252 003252 257 003416 258 003441 259 003444 260 003465 261 003514 263 003537 264 003551 265 003572 266 003577 268 003617 269 003643 270 003666 271 003707 274 003720 275 003731 277 003732 278 003733 279 003754 280 004002 282 004004 286 004006 287 004015 288 004024 290 004041 293 004047 296 004063 297 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