1 /* BEGIN INCLUDE FILE ... absentee_user_table.incl.pl1 */
 2 
 3 /* *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
 4 /*                                                                           */
 5 /* The absentee user table is the control data base for the absentee         */
 6 /* facility.  It has a header, with scheduling parameters, then one user     */
 7 /* table entry for each logged-in absentee job.                              */
 8 /*                                                                           */
 9 /* Programs which use this table must also include                           */
10 /* user_table_header.incl.pl1 and user_table_entry.incl.pl1.                 */
11 /*                                                                           */
12 /* *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
13 
14 
15 /****^  HISTORY COMMENTS:
16   1) change(81-09-10,Kittlitz), approve(), audit(), install():
17      Replace abs_user_tab.incl.pl1.
18   2) change(87-04-26,GDixon), approve(87-07-13,MCR7741),
19      audit(87-07-16,Brunelle), install(87-08-04,MR12.1-1056):
20      Use ut_header common to all user control tables.
21                                                    END HISTORY COMMENTS */
22 
23 
24 dcl  AUTBL_version_4 fixed bin int static options (constant) init (4);
25 
26 dcl  autp ptr automatic init (null);
27 
28 dcl 1 autbl based (autp) aligned,                           /* a per system table to store info on absentee processes */
29     2 header like ut_header,                                /* Header common to all user tables. */
30 
31 /* Counter elements */
32     2 n_abs_run fixed bin,                                  /* actual number of absentee processes current */
33     2 max_abs_users fixed bin,                              /* max number of background absentee processes permitted */
34     2 n_background_abs fixed bin,                           /* number of absentee processes not from foreground queue */
35     2 n_sec_fg fixed bin,                                   /* number of secondary foreground absentee jobs */
36     2 idle_units fixed bin,                                 /* used in adjusting abs_maxu dynamically */
37     2 abs_units fixed bin,                                  /* part of anstbl.n_units used by background absentees */
38     2 n_abs (4) fixed bin,                                  /* number of processes from each background queue */
39     2 qres (4) fixed bin,                                   /* number of slots reserved for each background queue */
40     2 rsc_waiting (-1:4) fixed bin,                         /* number of requests waiting for resources, from each queue */
41     2 qerr (-1:4) fixed bin,                                /* number of consecutive errors for q (dropped if > QERR_MAX) */
42     2 cpu_limit (4) fixed bin (35),                         /* current per-queue cpu time limits */
43 
44 /* absentee user manager values. */
45     2 defer_channel fixed bin (71),                         /* IPC for time-defered queue entries */
46     2 absentee_rq_chn fixed bin (71),                       /* IPC channel for absentee requests */
47     2 last_queue_searched fixed bin,                        /* highest queue looked at by scheduler */
48     2 debugging fixed bin,                                  /* take asdumps at strategic places */
49     2 control,                                              /* see also whotab.incl.pl1 */
50       3 mnbz bit (1) unal,                                  /* must not be zero */
51       3 abs_maxu_auto bit (1) unal,                         /* 1 if abs maxu has not been set by operator command */
52       3 abs_maxq_auto bit (1) unal,                         /* 1 if abs maxq has not been set by operator command */
53       3 abs_qres_auto bit (1) unal,                         /* 1 if abs qres has not been set by operator command */
54       3 abs_cpu_limit_auto bit (1) unal,                    /* 1 if abs cpu_limit has not been set by operator command */
55       3 queue_dropped (-1:4) bit (1) unal,                  /* 1 if queue has been dropped because of errors */
56       3 abs_up bit (1) unal,                                /* 1 if absentee facility is running */
57       3 abs_stopped bit (1) unal,                           /* 1 if abs stop command was issued */
58                                                             /* both 1 if we're waiting for the last jobs to log out */
59       3 aum_ctl bit (1) unal,                               /* for AUM to tell AU to start a new sequence */
60       3 lc_list bit (1) unal,                               /* for AU to tell AUM that the lc list is non-empty */
61                                                             /* comments in AU and AUM explain aum_ctl and lc_list */
62       3 control_pad (21) bit (1) unal,                      /* fill out rest of word */
63     2 aum_pad fixed bin,
64 
65     2 entry_pad (80) fixed bin,                             /*  pad table header to 128 words */
66     2 entry (0 refer (autbl.current_size)) like ute;
67 
68 dcl AUTBL_CONTROL_NAMES (15) char(20) varying int static options(constant) init(
69           "mnbz",
70           "abs_maxu_auto",
71           "abs_maxq_auto",
72           "abs_qres_auto",
73           "abs_cpu_limit_auto",
74           "queue_dropped(-1)",
75           "queue_dropped( 0)",
76           "queue_dropped( 1)",
77           "queue_dropped( 2)",
78           "queue_dropped( 3)",
79           "queue_dropped( 4)",
80           "abs_up",
81           "abs_stopped",
82           "aum_ctl",
83           "lc_list");
84 
85 /* END INCLUDE FILE ... absentee_user_table.incl.pl1 */