COMPILATION LISTING OF SEGMENT proj_mtd Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/13/88 1021.5 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 /* format: style4 */ 12 proj_mtd: proc; 13 14 /* PROJ_MTD - month-to-date project usage report */ 15 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures. */ 16 /* Modified June 1982 by E. N. Kittlitz for user_attributes.incl.pl1 conversion. */ 17 18 dcl pdtp ptr, /* ptr to pdt */ 19 pdtep ptr, /* ptr to pdt entry */ 20 pp ptr, 21 dkrate float bin, 22 ft float bin, 23 dummy (0:7) float bin, 24 dcg float bin, 25 regp float bin, 26 (i, ec) fixed bin; 27 dcl rs_number fixed bin; /* rate structure index */ 28 dcl rs_count fixed bin; 29 30 dcl get_wdir_ entry () returns (char (168) aligned), 31 com_err_ entry options (variable), 32 cu_$arg_ptr entry (fixed bin, ptr, fixed bin, fixed bin), 33 expand_path_ entry (ptr, fixed bin, ptr, ptr, fixed bin), 34 hcs_$initiate entry (char (*) aligned, char (*) aligned, char (*) aligned, 35 fixed bin, fixed bin, ptr, fixed bin), 36 hcs_$terminate_noname entry (ptr, fixed bin), 37 ioa_ entry options (variable), 38 ioa_$rsnnl entry options (variable); 39 dcl search_sat_$rs_number entry (char (*), fixed bin, fixed bin); 40 dcl search_sat_$clean_up entry; 41 dcl system_info_$prices_rs entry (fixed bin, 42 (0:7) float bin, (0:7) float bin, (0:7) float bin, (0:7) float bin, float bin, float bin); 43 dcl system_info_$max_rs_number entry (fixed bin); 44 45 dcl (null, index, addr) builtin; 46 47 dcl ff float bin init (0e0), 48 kl fixed bin init (0), 49 jj fixed bin, 50 kk fixed bin init (0), 51 ap ptr, 52 al fixed bin, 53 bchr char (al) unal based (ap), 54 test char (12), 55 star char (1) aligned, 56 dirname char (168) aligned, 57 pdt_dir char (168) aligned, 58 pdt_name char (32) aligned; 59 60 /* ================================================= */ 61 62 call system_info_$max_rs_number (rs_count); /* see if site has multiple rate structures */ 63 call cu_$arg_ptr (1, ap, al, ec); 64 if ec ^= 0 then go to err; 65 test = bchr; 66 call cu_$arg_ptr (2, ap, al, ec); 67 if ec = 0 then dirname = bchr; 68 else dirname = "safe_pdts"; 69 call expand_path_ (addr (dirname), index (dirname, " ") - 1, addr (pdt_dir), null, ec); 70 if ec ^= 0 then go to err; 71 72 dirname = get_wdir_ (); 73 call ioa_$rsnnl ("^a.pdt", pdt_name, i, test); 74 call hcs_$initiate (pdt_dir, pdt_name, "", 0, 1, pdtp, ec); 75 if pdtp = null then do; 76 err: call com_err_ (ec, "proj_mtd", ""); 77 return; 78 end; 79 call hcs_$initiate (dirname, "projfile", "", 0, 1, pp, ec); 80 if pp = null then go to err; 81 do jj = 1 to projfile.nproj; 82 if id (jj) = test then go to found; 83 end; 84 call com_err_ (0, "proj_mtd", "projfile entry for ""^a"" missing", test); 85 return; 86 found: 87 if rs_count > 0 then do; /* only if site has multiple rate structures */ 88 call search_sat_$rs_number (test, rs_number, ec); /* get rate index */ 89 if ec ^= 0 then do; 90 call com_err_ (0, "proj_mtd", "While searching sat for project ""^a"". pdt rate structure index (^d) used.", 91 test, pdt.rs_number); 92 rs_number = pdt.rs_number; /* if we cannot get the sat we'll go for second best */ 93 end; 94 end; 95 else rs_number = 0; 96 call system_info_$prices_rs (rs_number, dummy, dummy, dummy, dummy, dkrate, regp); 97 call ioa_ ("Month to date report for project ^a", test); 98 call ioa_ ("^/Name^25xlogins^5xcharge^/"); 99 do i = 1 to pdt.current_size; 100 pdtep = addr (pdt.user (i)); 101 if user.state = 0 then go to skip; 102 if user.state = 2 then star = "*"; else star = " "; 103 call ioa_ ("^1a^29a^5d $^10.2f", star, user.person_id, user.logins, user.dollar_charge); 104 kk = kk + user.logins; 105 kl = kl + 1; 106 ff = ff + user.dollar_charge; 107 skip: end; 108 call hcs_$terminate_noname (pdtp, ec); 109 call ioa_ ("^/^5d users^19x^5d $^10.2f", kl, kk, ff); 110 111 ft = kl * regp; 112 call ioa_ ("^/registration^24x$^10.2f", ft); 113 114 dcg = disk_psec (jj) * dkrate; 115 call ioa_ ("misc^32x$^10.2f", misc_charges (jj)); 116 call ioa_ ("disk^32x$^10.2f", dcg); 117 call ioa_ ("^/Total^31x$^10.2f", ff + ft + misc_charges (jj) + dcg); 118 call ioa_ (""); 119 call hcs_$terminate_noname (pp, ec); 120 121 if rs_count > 0 then call search_sat_$clean_up; /* tidy up */ 122 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 */ 123 124 3 1 /* BEGIN INCLUDE FILE .. projfile.incl.pl1 */ 3 2 /* Modified by T. Casey April 1976 to change disk_infs (obsolete) to dir_disk_use */ 3 3 /* Modified 1984-07-09 BIM for dir_disk_quota, version */ 3 4 /* Modified 1984-09-14 BIM for reasonable array size */ 3 5 3 6 dcl 1 projfile based (pp) aligned, /* Project history file */ 3 7 2 nproj fixed bin (35), /* number of entries */ 3 8 2 version fixed bin, 3 9 2 projfilexx0 (6) bit (36) aligned, 3 10 2 projfiletab (3000), /* in seg limit */ 3 11 3 id char (12) unal, /* project ID */ 3 12 3 title char (52) unal, /* project title */ 3 13 3 inv char (32) unal, /* name of principal investigator */ 3 14 3 inv_addr char (32) unal, /* address */ 3 15 3 sup char (32) unal, /* name of supervisor */ 3 16 3 sup_addr char (32) unal, /* address */ 3 17 3 sup_phone char (16) unal, /* telephone */ 3 18 3 on fixed bin (71), /* date on */ 3 19 3 off fixed bin (71), /* date off */ 3 20 3 disk_psec fixed bin (71), /* project disk page-seconds */ 3 21 3 disk_quota fixed bin (35), /* project disk quota */ 3 22 3 dir_disk_quota fixed bin (35), /* project dir disk quota */ 3 23 3 disk_use fixed bin (35), /* total segment pages used */ 3 24 3 dir_disk_use fixed bin (35), /* total directory pages used */ 3 25 3 misc_charges float bin, /* manuals, etc */ 3 26 3 n_misc fixed bin, /* number of entries */ 3 27 3 processed fixed bin, /* temp for usage-report */ 3 28 3 pad bit (36) aligned; /* out to even number of words */ 3 29 3 30 dcl loph int static fixed bin (17) options (constant) init (8), /* lth of projfile header */ 3 31 lope int static fixed bin (17) options (constant) init (66); /* lth of projflile entry */ 3 32 3 33 dcl PROJFILE_VERSION fixed bin init (3) int static options (constant); 3 34 3 35 /* END INCLUDE FILE ... projfile.incl.pl1 */ 125 126 4 1 /* BEGIN INCLUDE FILE ... user_attributes.incl.pl1 TAC 10/79 */ 4 2 4 3 4 4 /****^ HISTORY COMMENTS: 4 5* 1) change(86-12-11,Brunelle), approve(87-07-13,MCR7741), 4 6* audit(87-04-19,GDixon), install(87-08-04,MR12.1-1056): 4 7* Add incl for abs_attributes.incl.pl1 to automatically include absentee 4 8* attribute switches. 4 9* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 4 10* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 4 11* A) Add USER_ATTRIBUTE_NAMES arrays. attribute_names.incl.pl1 can thereby 4 12* be deleted. 4 13* B) Add constants identifying attributes that can be changed by user at 4 14* login, etc. 4 15* END HISTORY COMMENTS */ 4 16 4 17 4 18 /* Modified 82-01-03 E. N. Kittlitz. to declare a complete level-1 structure */ 4 19 4 20 /* format: style4 */ 4 21 dcl 1 user_attributes aligned based, /* the user user_attributes */ 4 22 (2 administrator bit (1), /* 1 system administrator privileges */ 4 23 2 primary_line bit (1), /* 2 user has primary-line privileges */ 4 24 2 nobump bit (1), /* 2 user cannot be bumped */ 4 25 2 guaranteed_login bit (1), /* 4 user has guaranteed login privileges */ 4 26 2 anonymous bit (1), /* 5 used only in SAT. project may have anon.users */ 4 27 2 nopreempt bit (1), /* 6 used only in PDT. user not preemptable by others 4 28* . of same project (distinct from "nobump") */ 4 29 2 nolist bit (1), /* 7 don't list user on "who" */ 4 30 2 dialok bit (1), /* 8 user may have multiple consoles */ 4 31 2 multip bit (1), /* 9 user may have several processes */ 4 32 2 bumping bit (1), /* 10 in SAT. Can users in project bump each other? */ 4 33 2 brief bit (1), /* 11 no login or logout message */ 4 34 2 vinitproc bit (1), /* 12 user may change initial procedure */ 4 35 2 vhomedir bit (1), /* 13 user may change homedir */ 4 36 2 nostartup bit (1), /* 14 user does not want start_up.ec */ 4 37 2 sb_ok bit (1), /* 15 user may be standby */ 4 38 2 pm_ok bit (1), /* 16 user may be primary */ 4 39 2 eo_ok bit (1), /* 17 user may be edit_only */ 4 40 2 daemon bit (1), /* 18 user may login as daemon */ 4 41 2 vdim bit (1), /* 19 * OBSOLETE * user may change outer mdle */ 4 42 2 no_warning bit (1), /* 20 no warning message */ 4 43 2 igroup bit (1), /* 21 in SAT: this project may give its users individual groups 4 44* . in PDT: this user has an individual load control group */ 4 45 2 save_pdir bit (1), /* 22 save pdir after fatal process error */ 4 46 2 disconnect_ok bit (1), /* 23 ok to save user's disconnected processes */ 4 47 2 save_on_disconnect bit (1), /* 24 save them unless -nosave login arg is given */ 4 48 2 pad bit (12)) unaligned; 4 49 4 50 dcl USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 4 51 ("none", /* 0 */ 4 52 "administrator", /* 1 */ 4 53 "primary_line", /* 2 */ 4 54 "nobump", /* 3 */ 4 55 "guaranteed_login", /* 4 */ 4 56 "anonymous", /* 5 */ 4 57 "nopreempt", /* 6 */ 4 58 "nolist", /* 7 */ 4 59 "dialok", /* 8 */ 4 60 "multip", /* 9 */ 4 61 "bumping", /* 10 */ 4 62 "brief", /* 11 */ 4 63 "vinitproc", /* 12 */ 4 64 "vhomedir", /* 13 */ 4 65 "nostartup", /* 14 */ 4 66 "no_secondary", /* 15 */ 4 67 "no_prime", /* 16 */ 4 68 "no_eo", /* 17 */ 4 69 "daemon", /* 18 */ 4 70 "", /* 19 vdim OBSOLETE */ 4 71 "no_warning", /* 20 */ 4 72 "igroup", /* 21 */ 4 73 "save_pdir", /* 22 */ 4 74 "disconnect_ok", /* 23 */ 4 75 "save_on_disconnect"); /* 24 */ 4 76 4 77 dcl ALT_USER_ATTRIBUTE_NAMES (0:24) char (20) int static options (constant) init 4 78 ("null", /* 0 */ 4 79 "admin", /* 1 */ 4 80 "", "", /* 2 - 3 */ 4 81 "guar", /* 4 */ 4 82 "anon", /* 5 */ 4 83 "", "", /* 6 - 7 */ 4 84 "dial", /* 8 */ 4 85 "multi_login", /* 9 */ 4 86 "preempting", /* 10 */ 4 87 "", /* 11 */ 4 88 "v_process_overseer", /* 12 */ 4 89 "v_home_dir", /* 13 */ 4 90 "no_start_up", /* 14 */ 4 91 "no_sec", /* 15 */ 4 92 "no_primary", /* 16 */ 4 93 "no_edit_only", /* 17 */ 4 94 "op_login", /* 18 */ 4 95 "", /* 19 */ 4 96 "nowarn", /* 20 */ 4 97 "", "", "", /* 21 - 23 */ 4 98 "save"); /* 24 */ 4 99 4 100 dcl USER_ATTRIBUTES_always_allowed bit (36) aligned int static 4 101 options(constant) init("000000000010000000010000000000000000"b); 4 102 /* SAT/PDT attributes not needed for user to give (brief, no_warning) */ 4 103 4 104 dcl USER_ATTRIBUTES_default_in_pdt bit (36) aligned int static 4 105 options(constant) init("000000000010000000010000000000000000"b); 4 106 /* PDT value for (brief, no_warning) is default */ 4 107 4 108 dcl USER_ATTRIBUTES_settable_by_user bit (36) aligned int static 4 109 options(constant) init("000100000110010000010000000000000000"b); 4 110 /* user MIGHT set (bump, ns, brief, guar, no_warning) */ 4 111 5 1 /* BEGIN INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 5 2 5 3 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 4 /* */ 5 5 /* This include file describes the attributes of an absentee job. It is */ 5 6 /* used by user_table_entry.incl.pl1, abs_message_format.incl.pl1 */ 5 7 /* and PIT.incl.pl1. */ 5 8 /* */ 5 9 /* * * * * * * * * * * * * * * * * * * * * * * * * * */ 5 10 5 11 /****^ HISTORY COMMENTS: 5 12* 1) change(86-12-08,GDixon), approve(87-07-13,MCR7741), 5 13* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 14* Separated abs_attributes from the request structure 5 15* (abs_message_format.incl.pl1) so that the identical structure could be 5 16* used in the ute structure (user_table_entry.incl.pl1). 5 17* 2) change(87-04-19,GDixon), approve(87-07-13,MCR7741), 5 18* audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056): 5 19* Added ABS_ATTRIBUTE_NAMES array. 5 20* 3) change(87-11-11,Parisek), approve(88-02-11,MCR7849), 5 21* audit(88-03-22,Lippard), install(88-07-13,MR12.2-1047): 5 22* Added the no_start_up flag. SCP6367 5 23* END HISTORY COMMENTS */ 5 24 5 25 dcl 1 user_abs_attributes aligned based, 5 26 2 restartable bit (1) unaligned, /* 1 if request may be started over from the beginning */ 5 27 2 user_deferred_until_time bit (1) unaligned, /* 1 if request was specified as deferred */ 5 28 2 proxy bit (1) unaligned, /* 1 if request submitted for someone else */ 5 29 2 set_bit_cnt bit (1) unaligned, /* 1 if should set bit count after every write call */ 5 30 2 time_in_gmt bit (1) unaligned, /* 1 if deferred_time is in GMT */ 5 31 2 user_deferred_indefinitely bit (1) unaligned, /* 1 if operator is to say when to run it */ 5 32 2 secondary_ok bit (1) unaligned, /* 1 if ok to log in as secondary foreground user */ 5 33 2 truncate_absout bit (1) unaligned, /* 1 if .absout is to be truncated */ 5 34 2 restarted bit (1) unaligned, /* 1 if job is restarted */ 5 35 2 no_start_up bit (1) unaligned, /* 1 if requested -ns */ 5 36 2 attributes_pad bit (26) unaligned; 5 37 5 38 dcl ABS_ATTRIBUTE_NAMES (10) char (28) varying int static options(constant) init( 5 39 "restartable", 5 40 "user_deferred_until_time", 5 41 "proxy", 5 42 "set_bit_cnt", 5 43 "time_in_gmt", 5 44 "user_deferred_indefinitely", 5 45 "secondary_ok", 5 46 "truncate_absout", 5 47 "restarted", 5 48 "no_start_up"); 5 49 5 50 /* END INCLUDE FILE ... user_abs_attributes.incl.pl1 */ 5 51 4 112 4 113 4 114 /* END INCLUDE FILE ... user_attributes.incl.pl1 */ 127 128 129 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/13/88 0941.2 proj_mtd.pl1 >special_ldd>install>MR12.2-1047>proj_mtd.pl1 123 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 125 3 09/20/84 0925.7 projfile.incl.pl1 >ldd>include>projfile.incl.pl1 127 4 08/06/87 0913.6 user_attributes.incl.pl1 >ldd>include>user_attributes.incl.pl1 4-112 5 07/13/88 0900.1 user_abs_attributes.incl.pl1 >special_ldd>install>MR12.2-1047>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. addr builtin function dcl 45 ref 69 69 69 69 100 al 000134 automatic fixed bin(17,0) dcl 47 set ref 63* 65 66* 67 ap 000132 automatic pointer dcl 47 set ref 63* 65 66* 67 bchr based char packed unaligned dcl 47 ref 65 67 com_err_ 000012 constant entry external dcl 30 ref 76 84 90 cu_$arg_ptr 000014 constant entry external dcl 30 ref 63 66 current_size 36 based fixed bin(17,0) level 2 dcl 1-27 ref 99 dcg 000120 automatic float bin(27) dcl 18 set ref 114* 116* 117 dirname 000141 automatic char(168) dcl 47 set ref 67* 68* 69 69 69 72* 79* disk_psec 100 based fixed bin(71,0) array level 3 dcl 3-6 ref 114 dkrate 000106 automatic float bin(27) dcl 18 set ref 96* 114 dollar_charge 75 based float bin(27) level 2 dcl 1-58 set ref 103* 106 dummy 000110 automatic float bin(27) array dcl 18 set ref 96* 96* 96* 96* ec 000123 automatic fixed bin(17,0) dcl 18 set ref 63* 64 66* 67 69* 70 74* 76* 79* 88* 89 108* 119* expand_path_ 000016 constant entry external dcl 30 ref 69 ff 000126 automatic float bin(27) initial dcl 47 set ref 47* 106* 106 109* 117 ft 000107 automatic float bin(27) dcl 18 set ref 111* 112* 117 get_wdir_ 000010 constant entry external dcl 30 ref 72 hcs_$initiate 000020 constant entry external dcl 30 ref 74 79 hcs_$terminate_noname 000022 constant entry external dcl 30 ref 108 119 i 000122 automatic fixed bin(17,0) dcl 18 set ref 73* 99* 100* id 10 based char(12) array level 3 packed packed unaligned dcl 3-6 ref 82 index builtin function dcl 45 ref 69 ioa_ 000024 constant entry external dcl 30 ref 97 98 103 109 112 115 116 117 118 ioa_$rsnnl 000026 constant entry external dcl 30 ref 73 jj 000130 automatic fixed bin(17,0) dcl 47 set ref 81* 82* 114 115 117 kk 000131 automatic fixed bin(17,0) initial dcl 47 set ref 47* 104* 104 109* kl 000127 automatic fixed bin(17,0) initial dcl 47 set ref 47* 105* 105 109* 111 logins 122 based fixed bin(17,0) level 2 dcl 1-58 set ref 103* 104 misc_charges 106 based float bin(27) array level 3 dcl 3-6 set ref 115* 117 nproj based fixed bin(35,0) level 2 dcl 3-6 ref 81 null builtin function dcl 45 ref 69 69 75 80 pdt based structure level 1 dcl 1-27 pdt_dir 000213 automatic char(168) dcl 47 set ref 69 69 74* pdt_name 000265 automatic char(32) dcl 47 set ref 73* 74* pdtep 000102 automatic pointer dcl 18 set ref 100* 101 102 103 103 103 104 106 pdtp 000100 automatic pointer dcl 18 set ref 74* 75 90 92 99 100 108* person_id 2 based char(24) level 2 dcl 1-58 set ref 103* pp 000104 automatic pointer dcl 18 set ref 79* 80 81 82 114 115 117 119* projfile based structure level 1 dcl 3-6 projfiletab 10 based structure array level 2 dcl 3-6 regp 000121 automatic float bin(27) dcl 18 set ref 96* 111 rs_count 000125 automatic fixed bin(17,0) dcl 28 set ref 62* 86 121 rs_number 356 based fixed bin(9,0) level 2 in structure "pdt" packed packed unsigned unaligned dcl 1-27 in procedure "proj_mtd" set ref 90* 92 rs_number 000124 automatic fixed bin(17,0) dcl 27 in procedure "proj_mtd" set ref 88* 92* 95* 96* search_sat_$clean_up 000032 constant entry external dcl 40 ref 121 search_sat_$rs_number 000030 constant entry external dcl 39 ref 88 star 000140 automatic char(1) dcl 47 set ref 102* 102* 103* state based fixed bin(17,0) level 2 dcl 1-58 ref 101 102 system_info_$max_rs_number 000036 constant entry external dcl 43 ref 62 system_info_$prices_rs 000034 constant entry external dcl 41 ref 96 test 000135 automatic char(12) packed unaligned dcl 47 set ref 65* 73* 82 84* 88* 90* 97* user 400 based structure array level 2 in structure "pdt" dcl 1-27 in procedure "proj_mtd" set ref 100 user based structure level 1 dcl 1-58 in procedure "proj_mtd" user_attributes based structure level 1 dcl 4-21 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ABS_ATTRIBUTE_NAMES internal static varying char(28) initial array dcl 5-38 ALT_USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 4-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 PROJFILE_VERSION internal static fixed bin(17,0) initial dcl 3-33 USER_ATTRIBUTES_always_allowed internal static bit(36) initial dcl 4-100 USER_ATTRIBUTES_default_in_pdt internal static bit(36) initial dcl 4-104 USER_ATTRIBUTES_settable_by_user internal static bit(36) initial dcl 4-108 USER_ATTRIBUTE_NAMES internal static char(20) initial array packed unaligned dcl 4-50 lope internal static fixed bin(17,0) initial dcl 3-30 loph internal static fixed bin(17,0) initial dcl 3-30 user_abs_attributes based structure level 1 dcl 5-25 NAMES DECLARED BY EXPLICIT CONTEXT. err 000417 constant label dcl 76 ref 64 70 80 found 000570 constant label dcl 86 ref 82 proj_mtd 000155 constant entry external dcl 12 skip 001031 constant label dcl 107 ref 101 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1430 1470 1260 1440 Length 1770 1260 40 263 147 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME proj_mtd 296 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME proj_mtd 000100 pdtp proj_mtd 000102 pdtep proj_mtd 000104 pp proj_mtd 000106 dkrate proj_mtd 000107 ft proj_mtd 000110 dummy proj_mtd 000120 dcg proj_mtd 000121 regp proj_mtd 000122 i proj_mtd 000123 ec proj_mtd 000124 rs_number proj_mtd 000125 rs_count proj_mtd 000126 ff proj_mtd 000127 kl proj_mtd 000130 jj proj_mtd 000131 kk proj_mtd 000132 ap proj_mtd 000134 al proj_mtd 000135 test proj_mtd 000140 star proj_mtd 000141 dirname proj_mtd 000213 pdt_dir proj_mtd 000265 pdt_name proj_mtd THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. fx1_to_fl2 call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_ptr expand_path_ get_wdir_ hcs_$initiate hcs_$terminate_noname ioa_ ioa_$rsnnl search_sat_$clean_up search_sat_$rs_number system_info_$max_rs_number system_info_$prices_rs NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000154 47 000162 62 000166 63 000174 64 000213 65 000215 66 000222 67 000241 68 000251 69 000254 70 000311 72 000313 73 000322 74 000351 75 000413 76 000417 77 000442 79 000443 80 000507 81 000513 82 000523 83 000532 84 000534 85 000567 86 000570 88 000572 89 000612 90 000614 92 000654 94 000660 95 000661 96 000662 97 000702 98 000722 99 000736 100 000747 101 000752 102 000754 102 000761 103 000763 104 001022 105 001025 106 001026 107 001031 108 001033 109 001044 111 001073 112 001077 114 001117 115 001130 116 001154 117 001177 118 001226 119 001237 121 001250 129 001257 ----------------------------------------------------------- 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