1 /* BEGIN INCLUDE FILE:  forum_structures.incl.pl1 */
  2 
  3 /* This include file contains the declarations for all of the structures
  4    used in a version 2 Forum meeting.
  5 
  6              Jay Pattin 12/28/82 */
  7 
  8 declare   attendee_seg_ptr              ptr,
  9           transaction_seg_ptr           ptr,
 10           attendee_ptr                  ptr,
 11           transaction_ptr               ptr,
 12           transaction_block_ptr         ptr,
 13           bit_map_ptr                   ptr;
 14 
 15 /* This structure is for the segment "Attendees", it contains the participant
 16    records and the bit-maps of transactions that have been seen. */
 17 
 18 declare   1 attendee_seg                aligned based (attendee_seg_ptr),
 19           2 header                      like attendee_seg_header,
 20           2 attendee_area               area;               /* where attendee and bit map nodes go */
 21 
 22 declare   1 attendee_seg_header         aligned based,
 23           2 version                     char (8),
 24           2 lock                        bit (36) aligned,
 25           2 flags,
 26             3 adjourned                 bit (1) unaligned,
 27             3 am_init                   bit (1) unaligned,  /* on if next value valid */
 28             3 am_print_acl_msg          bit (1) unaligned,  /* on if Sysadmin wants them printed */
 29             3 cm_init                   bit (1) unaligned,  /* on if next vaue valid */
 30             3 cm_print_acl_msg          bit (1) unaligned,  /* on if chair wants messages printed */
 31             3 salvaging                 bit (1) unaligned,
 32             3 mbz1                      bit (30) unaligned,
 33           2 attendee_count              fixed bin,          /* current number of attendees */
 34           2 chairman,
 35             3 person_id                 char (22),
 36             3 project_id                char (9),
 37           2 chairman_message            char (256),
 38           2 first_attendee_offset       bit (18),
 39           2 last_attendee_offset        bit (18),
 40           2 mbz2 (16)                   fixed bin (35);
 41 
 42 declare   1 attendee                    aligned based (attendee_ptr),
 43           2 version                     fixed bin,
 44           2 attendee_uid                fixed bin,          /* Unique for this meeting only */
 45           2 person_id                   char (22),
 46           2 project_id                  char (9),           /* of project on when last opened */
 47           2 flags,
 48             3 attending                 bit (1) unaligned,
 49             3 participating             bit (1) unaligned,
 50             3 deleted                   bit (1) unaligned,  /* by chairman - dlpt request */
 51             3 notify                    bit (1) unaligned,
 52             3 acl_change_pending        bit (1) unaligned,
 53             3 message_change_pending    bit (1) unaligned,
 54             3 mbz1                      bit (30) unaligned,
 55           2 xacl                        bit (36) aligned,   /* extended acl - see modes below */
 56           2 lock_id                     bit (36) aligned,
 57           2 process_id                  bit (36) aligned,
 58           2 event_channel               fixed bin (71),     /* For "A new transaction ..." messages */
 59           2 last_time_attended          fixed bin (71),
 60           2 bit_map_first_trans         fixed bin,
 61           2 bit_map_offset              bit (18),
 62           2 bit_map_length              fixed bin,
 63           2 left_son_offset             bit (18),           /* attendees are in a tree */
 64           2 right_son_offset            bit (18),
 65           2 next_offset                 bit (18);           /* For sequential searching */
 66 
 67 declare   1 bit_map                     aligned based (bit_map_ptr),
 68           2 attendee_uid                fixed bin,          /* For checking */
 69           2 length                      fixed bin,
 70           2 map                         bit (alloc_bit_map_length refer (bit_map.length));
 71 
 72 declare   alloc_bit_map_length          fixed bin;
 73 
 74 /* This structure is for the segment "Transactions" which contains all
 75    information about transactions except the subject and text. */
 76 
 77 declare   1 transaction_seg             aligned based (transaction_seg_ptr),
 78           2 version                     char (8),
 79           2 transaction_count           fixed bin,
 80           2 deleted_count               fixed bin,
 81           2 first_trans_offset          bit (18),
 82           2 last_trans_offset           bit (18),
 83           2 first_block_offset          bit (18),
 84           2 current_block_offset        bit (18),           /* location of block containing pointer to last trans */
 85           2 last_trans_in_block         fixed bin,          /* When we need to allocate new block */
 86           2 current_segno               fixed bin,          /* Where transactions are being allocated */
 87           2 next_trans_offset           bit (18),           /* offset within that seg */
 88           2 free_space_offset           bit (18),           /* first unused word in this seg */
 89           2 first_free_word             fixed bin;          /* only used to find initial value of previous */
 90 
 91 declare   1 transaction                 based (transaction_ptr),
 92           2 version                     fixed bin,
 93           2 trans_idx                   fixed bin,
 94           2 author,
 95             3 person_id                 char (22),
 96             3 project_id                char (9),
 97           2 flags,
 98             3 deleted                   bit (1) unaligned,
 99             3 deleted_by_author         bit (1) unaligned,  /* As opposed to deleted by chairman */
100             3 unfilled                  bit (1) unaligned,  /* And it should stay that way */
101             3 mbz1                      bit (33) unaligned,
102           2 pref_offset                 bit (18),
103           2 nref_offset                 bit (18),
104           2 time                        fixed bin (71),
105           2 segno                       fixed bin,          /* What proceeding segment this is in */
106           2 subject_offset              bit (18),
107           2 subject_length              fixed bin (21),
108           2 text_offset                 bit (18),
109           2 text_length                 fixed bin (21),
110           2 next_offset                 bit (18),
111           2 prev_offset                 bit (18);
112 
113 
114 declare   1 transaction_block           based (transaction_block_ptr),
115           2 first_trans_idx             fixed bin,          /* In this block */
116           2 last_trans_idx              fixed bin,
117           2 time                        fixed bin (71),     /* of first trans in this block */
118           2 prev_block_offset           bit (18),
119           2 next_block_offset           bit (18),
120           2 transactions                (1014),
121             3 offset                    bit (18);           /* -1 if expunged */
122 
123 declare   (ATTENDEE_SEG_VERSION_1       init ("FMCTL_1"),
124           TRANS_SEG_VERSION_1           init ("FMTR_1"))
125                                         char (8) static options (constant);
126 
127 declare   (ATTENDEE_SEG_NAME            init ("Attendees"),
128           TRANSACTION_SEG_NAME          init ("Transactions"),
129           PROCEEDINGS_SEG_NAME          init ("Proceedings."))   /* numeric suffix is added */
130                                         char (32) static options (constant);
131 
132 declare   (ATTENDEE_VERSION_1,
133           TRANSACTION_VERSION_1)        fixed bin static options (constant) init (-42);
134 
135 declare   EXPUNGED                      bit (18) static options (constant) init ("111111111111111111"b);
136 
137 declare   (RWC_XACL                     init ("111"b),
138           RW_XACL                       init ("110"b),
139           R_XACL                        init ("100"b))
140                                         bit (3) static options (constant);
141 
142 /* END INCLUDE FILE:  forum_structures.incl.pl1 */