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 */