1 /* BEGIN INCLUDE FILE author.incl.pl1 */
 2 
 3 /* the "author" items must always be the first ones in the table. The
 4    module which moves the converted table to the System Control process
 5    fills in these data items and assumes them to be at the head of the segment
 6    regardless of the specific table's actual declaration. The variables
 7    "lock" and "last_install_time" used to be "process_id" and "ev_channel"
 8     respectively. For tables installed in multiple processes, these
 9     are to be used to lock out multiple installations. */
10 
11 /*  Lock should be used as a modification lock. Since, in general,
12     entries may not be moved in system tables, even by installations,
13     it is sufficient for only installers and programs that change threads
14     to set or respect the lock. Simply updating data in an entry
15     requires no such protection.
16 
17     Last_install_time is used by readers of system tables to detect
18     installations or other serious modifications. By checking it before
19     and after copying a block of data, they can be protected against
20     modifications.
21 
22     Modules that set the lock should save proc_group_id, and then
23     put their group id there for the time they hold the lock.
24     if they do not actually install the, they should restore the group id.
25 */
26 
27     2 author aligned,                                       /* validation data about table's author */
28       3 proc_group_id char (32),                            /* process-group-id  (personid.projectid.tag) */
29       3 lock bit (36),                                      /* installation lock */
30       3 update_attributes bit (1) unal,                     /* update/add/delete attributes */
31       3 update_authorization bit (1) unal,                  /* update only authorizations */
32       3 deferral_notified bit (1) unal,                     /* installer notified of deferral of installation */
33       3 pad bit (33) unaligned,
34       3 last_install_time fixed bin (71),
35       3 table char (4),                                     /* name of table, e.g., SAT MGT TTT RTDT PDT etc. */
36       3 w_dir char (64),                                    /* author's working directory */
37 
38 /* END INCLUDE FILE author.incl.pl1 */