1 /* BEGIN INCLUDE FILE ... pdt.incl.pl1 */
  2 /* Requires user_attributes.incl.pl1 */
  3 
  4 /* Modified 740723 by PG to add AIM info */
  5 /* Modified 750604 by T. Casey to add priority scheduler parameters */
  6 /* Modified May 1976 by T. Casey to add cutoff warning thresholds and change version to 3 */
  7 /* Modified May 1977 by John Gintell to add reqfile, projfile, and SAT to header */
  8 /* Modified May 1978 by T. Casey to add pdir_quota to user entry */
  9 /* Modified June 1978 by T. Casey to add rel ptr to pdt hash table */
 10 /* Modified November 1978 by T. Casey to add max_(fore back)ground, n_(fore back)ground and abs_foreground_cpu_limit */
 11 /* Modified October 1979 by T. Casey to add counters for interactive and disconnected processes. */
 12 /* Modified Feb 1980 by M. B. Armstrong to implement multiple rate structures (UNCA). */
 13 /* Modified May 1980 by R. McDonald to use iod cpu time field for page charging (UNCA) */
 14 /* Modified December 1981 by E. N. Kittlitz for user_warn fields */
 15 /* Modified January 1982 by E. N. Kittlitz for user_attributes.incl.pl1 changes */
 16 /* Modified September 1982 by E. N. Kittlitz for default ring. */
 17 /* Modified 1984-07-05 BIM for min authorization, version to 4 */
 18 
 19 dcl (PDT_version init (4),                                  /* version of this declaration */
 20      PDT_header_lth init (256),                             /* length in words of PDT head */
 21      PDT_entry_lth init (256),                              /* length in words of PDT entry */
 22 
 23      PDT_project_name_length init (9),                      /* proper length of pdt.project_name */
 24      PDT_person_id_length init (22)                         /* proper length of user.person_id */
 25      ) fixed bin internal static options (constant);
 26 
 27 dcl 1 pdt based (pdtp) aligned,
 28 
 29 % include author;
 30     2 max_size fixed bin,                                   /* max number of entries table can grow */
 31     2 current_size fixed bin,                               /* current size of table (in entries) */
 32     2 version fixed bin,                                    /* table version */
 33     2 freep fixed bin,                                      /* relptr to begin of free chain */
 34     2 n_users fixed bin,                                    /* number of entries actually used */
 35     2 project_name char (28),                               /* name of project */
 36     2 project_dir char (64),                                /* treename of project's directory */
 37     2 projfile_version fixed bin,
 38     2 projentry bit (66*36),
 39     2 pad3 (5) bit (36) aligned,
 40     2 reqfile_version fixed bin,
 41     2 reqentry bit (40*36),
 42     2 pad4 (9) fixed bin,
 43     2 sat_version fixed bin,
 44     2 satentry bit (52*36),                                 /* everything in sat.project from project.at on */
 45     2 pad5 (4) bit (36) aligned,
 46     2 date_reqfile_copied fixed bin (71),
 47     2 rs_number fixed bin (9) unsigned unaligned,           /* rate structure number, easier than looking in satentry */
 48     2 pad2l bit (27) unaligned,
 49     2 pad2 (16) fixed bin,                                  /* make header 256 words long */
 50     2 ht_relp fixed bin (18) aligned,                       /* if nonzero, pdt has hash table at that loc */
 51     2 user (1019) aligned,                                  /* the project definition table entries */
 52       3 pad (256) bit (36) aligned;                         /* each entry is 256 words long  */
 53 
 54 /* The hash table, if there is one, is right after the last user, and is described in hashst.incl.pl1 */
 55 
 56 
 57 
 58 dcl 1 user based (pdtep) aligned,                           /* declaration of a single PDT entry  */
 59     2 state fixed bin,                                      /* 1 = normal, 2 = deleted 0 = free */
 60     2 lock bit (36),                                        /* update lock */
 61     2 person_id char (24) aligned,                          /* login name of user */
 62     2 now_in fixed bin,                                     /* count of users logged in on this entry */
 63     2 password char (8) aligned,                            /* password for anonymous user */
 64     2 at like user_attributes aligned,                      /* include user_attributes.incl.pl1 */
 65     2 initial_procedure char (64) aligned,                  /* initproc and subsystem name packed into one string */
 66     2 home_dir char (64) aligned,                           /* user's default working directory */
 67     2 bump_grace fixed bin,                                 /* number of minutes he is protected */
 68     2 high_ring fixed bin,                                  /* highest ring user may use */
 69     2 default_ring fixed bin (17) unal,                     /* ring user will start in */
 70     2 low_ring fixed bin (17) unal,                         /* lowest ring user may use */
 71     2 outer_module char (32),                               /* outer module used if user is interactive */
 72     2 lot_size fixed bin,                                   /* size of linkage offset table */
 73     2 kst_size fixed bin,                                   /* size of known segment table */
 74     2 cls_size fixed bin,                                   /* size of combined linkage */
 75     2 uflags,                                               /* various flags */
 76       3 dont_call_init_admin bit (1) unal,                  /* call overseer direct */
 77       3 ip_given bit (1) unal,                              /* ip_len gives length of initproc packed in initial_procedure */
 78       3 ss_given bit (1) unal,                              /* subsystem name is packed in initial_procedure */
 79       3 flagpad bit (33) unal,
 80     2 ip_len fixed bin (17) unal,                           /* length of initproc name packed in initial_procedure */
 81     2 ss_len fixed bin (17) unal,                           /* length of subsystem name packed in initial_procedure */
 82     2 dollar_limit float bin,
 83     2 dollar_charge float bin,                              /* total dollars spent this month */
 84     2 shift_limit (0: 7) float bin,
 85     2 daton fixed bin (71),                                 /* date user added to system */
 86     2 datof fixed bin (71),                                 /* date user deleted */
 87     2 last_login_time fixed bin (71),                       /* time of last login */
 88     2 last_login_unit char (4),                             /* terminal id last used */
 89     2 last_login_type fixed bin (17) unal,                  /* terminal type */
 90     2 last_login_line_type fixed bin (17) unal,             /* terminal line type */
 91     2 time_last_bump fixed bin (71),                        /* for bump-wait */
 92     2 last_update fixed bin (71),                           /* time of last transaction */
 93     2 logins fixed bin,                                     /* number of logins */
 94     2 crashes fixed bin,                                    /* sessions abnormally terminated */
 95     2 interactive (0: 7),                                   /* interactive use, shifts 0-7 */
 96       3 charge float bin,                                   /* total dollar charge this shift */
 97       3 xxx fixed bin,
 98       3 cpu fixed bin (71),                                 /* cpu usage in microseconds */
 99       3 core fixed bin (71),                                /* core demand in page-microseconds */
100       3 connect fixed bin (71),                             /* total console time in microseconds */
101       3 io_ops fixed bin (71),                              /* total i/o ops on terminal */
102     2 absentee (4),                                         /* absentee use, queues 1-4 */
103       3 charge float bin,                                   /* dollar charge this queue */
104       3 jobs fixed bin,                                     /* number of jobs submitted */
105       3 cpu fixed bin (71),                                 /* total cpu time in microseconds */
106       3 memory fixed bin (71),                              /* total memory demand */
107     2 iod (4),                                              /* io daemon use, queues 1-4 */
108       3 charge float bin,                                   /* dollar charge this queue */
109       3 pieces fixed bin,                                   /* pieces of output requested */
110       3 pad fixed bin (35),
111       3 pages fixed bin (35),                               /* number of pages output */
112       3 lines fixed bin (71),                               /* total record count of output */
113     2 devices (16) float bin,                               /* device charges */
114     2 time_last_reset fixed bin (71),                       /* time PDT last updated */
115     2 absolute_limit float bin,                             /* Limit, not reset monthly */
116     2 absolute_spent float bin,                             /* Spending against this */
117     2 absolute_cutoff fixed bin (71),                       /* Spending will be reset on this date */
118     2 absolute_increm fixed bin,                            /* .. time increment code. 0 = don't reset */
119     2 pad_was_authorization bit (72) aligned,
120     2 group char (8),                                       /* group for this user (if at.igroup = "1"b) */
121     2 warn_days fixed bin (17) unaligned,                   /* warn user if less than this many days to cutoff */
122     2 warn_pct fixed bin (17) unaligned,                    /* warn user if less than this percent of funds left */
123     2 warn_dollars float bin,                               /* warn user if less than this amount of funds left */
124     2 n_foreground fixed bin (9) unsigned unaligned,        /* number of foreground and background processes */
125     2 n_background fixed bin (9) unsigned unaligned,        /* that this user has. see limits just below */
126     2 max_foreground fixed bin (9) unsigned unaligned,      /* max simultaneous foreground and */
127     2 max_background fixed bin (9) unsigned unaligned,      /* background processes that this user can have */
128     2 n_interactive fixed bin (9) unsigned unaligned,       /* number of interactive processes that user has */
129     2 n_disconnected fixed bin (9) unsigned unaligned,      /* number of disconnected processes that user has */
130     2 pdtupad1 fixed bin (18) unsigned unaligned,
131     2 user_warn_days fixed bin (17) unaligned,              /* warn user if less than this many days to user cutoff */
132     2 user_warn_pct fixed bin (17) unaligned,               /* warn user if less than this percent of user funds left */
133     2 user_warn_dollars float bin,                          /* warn user if less than this amount of user funds left */
134     2 user_authorization (2) bit (72) aligned,              /* range */
135     2 pdtupad (5) fixed bin,
136     2 abs_foreground_cpu_limit fixed bin (17) unaligned,    /* time limit (sec) on foreground absentee jobs */
137     2 pdir_quota fixed bin (17) unaligned,                  /* quota to put on user's pdir (0 => use default) */
138     2 chain fixed bin;                                      /* free chain */
139 
140 /* END INCLUDE FILE ... pdt.incl.pl1 */