1 /* ******************************************************
 2    *                                                    *
 3    *                                                    *
 4    * Copyright (c) 1972 by Massachusetts Institute of   *
 5    * Technology and Honeywell Information Systems, Inc. *
 6    *                                                    *
 7    *                                                    *
 8    ****************************************************** */
 9 
10 gcos_abs_control: proc;
11 
12 /* This procedure is invoked by a gcos absentee job.  Its stack frame remains below the
13    stack frame of each gcos absentee command.  It contains the record quota overflow handler
14    for gcos absentee jobs */
15 
16 
17 /* DECLARATIONS */
18 /* ------------ */
19 
20 
21 /* fixed bin */
22 
23 dcl (
24      code                                                   /* error code */
25      ) fixed bin (35) aligned;
26 
27 dcl (
28      gcos_daemon_stat_$overflow_channel ext
29      ) fixed bin (71) aligned;
30 
31 
32 /* bit strings */
33 
34 dcl (
35      gcos_daemon_stat_$process_id ext                       /* process id of gcos_daemon */
36      ) bit (36) aligned;
37 
38 
39 /* character strings */
40 
41 dcl (
42      gcos_daemon_stat2_$overflow_dir ext
43      ) char (168) aligned;
44 
45 
46 /* conditions */
47 
48 dcl (
49      cleanup,
50      record_quota_overflow
51      ) condition;
52 
53 
54 /* external entries */
55 
56 dcl  get_wdir_ ext entry
57      returns (char (168) aligned);
58 
59 dcl  hcs_$wakeup ext entry
60     (bit (36) aligned, fixed bin (71) aligned, fixed bin (71) aligned, fixed bin (35) aligned);
61 
62 dcl  listen_$release_stack ext entry
63     (bit (1) aligned);
64 
65 dcl  logout ext entry;
66 
67 /* ^L */
68 
69           on condition (record_quota_overflow)              /* if an overflow occurrs */
70           begin;
71 
72                gcos_daemon_stat2_$overflow_dir = get_wdir_ (); /* set dir name for printing by daemon */
73 
74                call hcs_$wakeup (gcos_daemon_stat_$process_id, gcos_daemon_stat_$overflow_channel, 0, code);
75                                                             /* print it */
76 
77                call logout;                                 /* log absentee process out */
78 
79           end;
80 
81 next:     on condition (cleanup) go to next;                /* process next command line */
82           call listen_$release_stack ("0"b);
83 
84           return;
85 
86      end gcos_abs_control;