COMPILATION LISTING OF SEGMENT forum_trans_util_ Compiled by: Multics PL/I Compiler, Release 33e, of October 6, 1992 Compiled at: ACTC Technologies Inc. Compiled on: 10/19/92 1454.1 mdt Mon Options: optimize map 1 /****^ *************************************************************** 2* * * 3* * Copyright, (C) BULL HN Information Systems Inc., 1992 * 4* * * 5* * Copyright, (C) Massachusetts Institute of Technology, 1986 * 6* * * 7* * Copyright (c) 1982 by Massachusetts Institute of Technology * 8* * * 9* *************************************************************** */ 10 11 12 13 /****^ HISTORY COMMENTS: 14* 1) change(86-07-29,Pattin), approve(86-07-29,MCR7354), 15* audit(86-08-07,Margolin), install(86-08-16,MR12.0-1128): 16* Made read_trans handle user area full. 17* 2) change(92-05-20,Vu), approve(92-05-20,MCR8255), audit(92-10-08,Zimmerman), 18* install(92-10-19,MR12.5-1027): 19* forum raises 'area condition' in large meetings 20* END HISTORY COMMENTS */ 21 22 23 /* split off from forum_trans_specs_, added sort_by_chain 11/19/82 Jay Pattin */ 24 25 forum_trans_util_$read_trans: 26 proc (P_passport_info_ptr, P_forum_idx, P_trans_idx, P_forum_user_trans_ptr, P_code); 27 28 declare (P_passport_info_ptr ptr, 29 P_code fixed bin (35), 30 P_forum_trans_list_ptr ptr, 31 P_forum_idx fixed bin, 32 P_trans_idx fixed bin, 33 P_type fixed bin, 34 P_forum_user_trans_ptr ptr) parameter; 35 36 declare based_fb fixed bin based, 37 cache bit (1) aligned, 38 code fixed bin (35), 39 forum_idx fixed bin, 40 idx fixed bin, 41 (low, low_in_chain) fixed bin, 42 new_trans_list_ptr ptr, 43 nref fixed bin, 44 retry bit (1) aligned, 45 ssu_ptr ptr, 46 trans_idx fixed bin, 47 type fixed bin, 48 v_ptr ptr; 49 50 declare 1 new_trans_list aligned like forum_trans_list based (new_trans_list_ptr), 51 1 v aligned based (v_ptr), 52 2 n fixed bin, 53 2 vector (alloc_trans_list_size refer (v.n)) ptr unaligned; 54 55 declare (error_table_$noalloc, 56 forum_et_$no_forum, 57 forum_et_$no_unprocessed, 58 forum_et_$trans_reaped, 59 forum_et_$trans_deleted) 60 fixed bin (35) external static; 61 62 declare forum_$read_trans entry (fixed bin, fixed bin, ptr, ptr, fixed bin (35)), 63 forum_$trans_ref_info entry (fixed bin, fixed bin, fixed bin, fixed bin, fixed bin, bit (1) aligned, 64 fixed bin (35)), 65 sort_items_$fixed_bin entry (ptr), 66 ssu_$abort_line entry options (variable); 67 68 declare (area, cleanup) condition, 69 (addr, null) builtin; 70 1 1 /* START OF: forum_passport.incl.pl1 * * * * * * * * * * * * * * * * */ 1 2 1 3 1 4 1 5 /****^ HISTORY COMMENTS: 1 6* 1) change(86-07-30,Pattin), approve(86-07-30,MCR7354), 1 7* audit(86-08-03,Margolin), install(86-08-16,MR12.0-1128): 1 8* Added trailer_format. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 declare passport_info_ptr ptr; 1 13 1 14 declare 1 passport aligned based (passport_info_ptr), 1 15 2 version fixed bin, /* 2 */ 1 16 2 forum_idx fixed bin, /* current forum */ 1 17 2 forum_dir char (168) unal, /* where forum lives */ 1 18 2 forum_name char (32) unal, /* Current forum I'm at */ 1 19 2 forum_name_len fixed bin, /* length of forum_name without suffix */ 1 20 2 flags unal, 1 21 3 brief_sw bit (1) unal, /* specified at invocation */ 1 22 3 talk_fill bit (1) unal, /* God knows */ 1 23 3 print_fill bit (1) unal, /* God doesn't know */ 1 24 3 read_only bit (1) unal, 1 25 3 print_message bit (1) unal, /* Print chairman message on talk/reply */ 1 26 3 auto_write bit (1) unal, 1 27 3 mbz bit (30) unal, /* Future expansion */ 1 28 2 current_trans fixed bin, /* current transaction number */ 1 29 2 input_fill_width fixed bin, /* line length used for input filling */ 1 30 2 output_fill_width fixed bin, /* line length used for output filling */ 1 31 2 public_channel fixed bin (71), /* My transaction wakeup channel. */ 1 32 2 area_ptr ptr, /* used for random temporary storage */ 1 33 2 first_trans_ptr ptr, /* ptrs to linked list of transactions copied to */ 1 34 2 last_trans_ptr ptr, /* user ring */ 1 35 2 unprocessed_trans_ptr ptr, /* If this isn't null, we got one pending. */ 1 36 2 unprocessed_reply_trans fixed bin, /* If nonzero, unprocessed trans is a reply. */ 1 37 2 unprocessed_forum_dir char (168), /* Directory containing meeting unproc is for. */ 1 38 2 unprocessed_forum_name char (32), /* Name of meeting unproc is for */ 1 39 2 unprocessed_name_len fixed bin, /* length (w/o suffix) of Name of meeting unproc is for */ 1 40 2 ssu_ptr ptr, /* Department of Redundancy Department. */ 1 41 2 next_passport_ptr ptr, /* list of all invocations */ 1 42 2 trailer_format fixed bin; 1 43 1 44 declare passport_version_2 fixed bin static options (constant) initial (2); 1 45 1 46 declare forum_area area based (passport.area_ptr), 1 47 no_suffix_name char (passport.forum_name_len) based (addr (passport.forum_name)); 1 48 1 49 declare forum_data_$version_string character (8) external, 1 50 forum_data_$central_directory 1 51 character (168) unaligned external, 1 52 forum_data_$info_directory character (168) unaligned external; 1 53 1 54 declare (TFMT_none init (0), 1 55 TFMT_number init (1), 1 56 TFMT_more init (2), 1 57 TFMT_reference init (3)) 1 58 fixed bin static options (constant); 1 59 1 60 /* END OF: forum_passport.incl.pl1 * * * * * * * * * * * * * * * * */ 71 72 2 1 /* ... BEGIN INCLUDE FILE forum_trans_list.incl.pl1 ... */ 2 2 2 3 2 4 2 5 /****^ HISTORY COMMENTS: 2 6* 1) change(86-07-30,Pattin), approve(86-07-30,MCR7354), 2 7* audit(86-08-07,Margolin), install(86-08-16,MR12.0-1128): 2 8* Added deleted switch. 2 9* 2) change(91-09-05,Huen), approve(91-09-05,MCR8249), 2 10* audit(92-01-08,Zimmerman), install(92-04-27,MR12.5-1014): 2 11* phx20579: Added parse_flags.default_to_unproc & CREATE_UNPROC 2 12* END HISTORY COMMENTS */ 2 13 2 14 2 15 dcl forum_trans_list_ptr ptr; 2 16 dcl alloc_trans_list_size fixed bin; 2 17 2 18 dcl 1 forum_trans_list aligned based (forum_trans_list_ptr), 2 19 2 max_size fixed bin, 2 20 2 size fixed bin, 2 21 2 max_personid_len fixed bin, 2 22 2 list (alloc_trans_list_size refer (forum_trans_list.max_size)), 2 23 3 trans_num fixed bin (17), /* must be aligned */ 2 24 3 nref fixed bin (17) unaligned, 2 25 3 pref fixed bin (17) unaligned, 2 26 3 flags unaligned, 2 27 4 deleted bit (1) unaligned, 2 28 4 pad bit (35) unaligned; 2 29 2 30 dcl parse_flags_word bit (36) aligned; 2 31 2 32 dcl 1 parse_flags aligned based (addr (parse_flags_word)), 2 33 2 non_null bit (1) unal, /* on if trans_spec cannot be empty */ 2 34 2 only_one bit (1) unal, /* on if only one transaction may be specified */ 2 35 2 allow_deleted bit (1) unal, /* on if deleted transactions may be specified */ 2 36 2 must_be_deleted bit (1) unal, /* on if must be deleted */ 2 37 2 disallow_unproc bit (1) unal, /* on if unprocessed transaction not valid */ 2 38 2 disallow_meeting bit (1) unal, /* on if -meeting not allowed */ 2 39 2 disallow_reverse bit (1) unal, /* on if -reverse not allowed */ 2 40 2 disallow_idl bit (1) unal, /* on if -include_deleted not allowed */ 2 41 2 dont_read bit (1) unal, /* on if regexps, -sj, -text, userids, time not allowed */ 2 42 2 disallow_initial bit (1) unal, /* on if -initial not allowed */ 2 43 2 default_to_all bit (1) unal, /* on if defaults to all rather than current */ 2 44 2 default_to_unproc bit (1) unal, /* on if defaults to unproc, not current */ 2 45 2 disallow_cmsg bit (1) unal, /* no chairman_message */ 2 46 2 disallow_by_chain bit (1) unal, /* no -by_chain */ 2 47 2 allow_inhibit_error bit (1) unal, /* don't complain if none selected and -ihe given */ 2 48 2 call_on_non_ctl_arg bit (1) unal, /* call request on bad arguments even if not ctl args */ 2 49 2 default_to_none bit (1) unal, /* allow no transactions to be selected */ 2 50 2 create_unproc bit (1) unal, /* allow unproc even if there isn't one */ 2 51 2 padding bit (18) unal; 2 52 2 53 dcl ANY bit (36) aligned init (""b); 2 54 dcl (NON_NULL init ("100000000000000000"b), 2 55 ONLY_ONE init ("010000000000000000"b), 2 56 ALLOW_DELETED init ("001000000000000000"b), 2 57 MUST_BE_DELETED init ("001100000000000000"b), 2 58 DISALLOW_UNPROC init ("000010000000000000"b), 2 59 DISALLOW_MTG init ("000001000000000000"b), 2 60 DISALLOW_REV init ("000000100000000000"b), 2 61 DISALLOW_IDL init ("000000010000000000"b), 2 62 DONT_READ init ("000000001000000000"b), 2 63 DISALLOW_INITIAL init ("000000000100000000"b), 2 64 DEFAULT_TO_ALL init ("000000000010000000"b), 2 65 DEFAULT_TO_UNPROC init ("000000000001000000"b), 2 66 DISALLOW_CMSG init ("000000000000100000"b), 2 67 DISALLOW_BYCHAIN init ("000000000000010000"b), 2 68 ALLOW_IHE init ("000000000000001000"b), 2 69 CALL_ON_BAD_ARGS init ("000000000000000100"b), 2 70 DEFAULT_TO_NONE init ("000000000000000010"b), 2 71 CREATE_UNPROC init ("000000000000000001"b) 2 72 ) bit (18) aligned internal static options (constant); 2 73 2 74 /* ... END INCLUDE FILE forum_trans_list.incl.pl1 ... */ 73 74 3 1 /* BEGIN INCLUDE FILE: forum_user_trans.incl.pl1 */ 3 2 3 3 dcl alloc_text_length fixed bin (21); /* length of text area to allocate */ 3 4 dcl alloc_subject_length fixed bin (21); /* length of subject area to allocate */ 3 5 dcl forum_user_trans_ptr ptr; /* pointer to below structure */ 3 6 3 7 dcl 1 forum_user_trans based (forum_user_trans_ptr) aligned, 3 8 2 type fixed bin, /* type of transaction */ 3 9 2 person_id char (22), /* person_id of author of this transaction */ 3 10 2 project_id char (9), /* project_id of author of this transaction */ 3 11 2 time fixed bin (71), /* time transaction was entered */ 3 12 2 trans_no fixed bin, /* number of this transaction */ 3 13 2 next_trans_ptr ptr, /* pointer (in user ring) of next transaction */ 3 14 2 prev_trans_ptr ptr, /* pointer (in user ring) of previous transaction */ 3 15 2 subject_length fixed bin (21), /* length of subject field of transaction */ 3 16 2 text_length fixed bin (21), /* length of text field of transaction */ 3 17 2 unfilled bit (1) aligned, /* set if transaction is NOT stored filled */ 3 18 2 subject char (alloc_subject_length refer (forum_user_trans.subject_length)) unaligned, /* subject of transaction */ 3 19 2 text char (alloc_text_length refer (forum_user_trans.text_length)) unaligned; /* text of transaction */ 3 20 3 21 declare user_trans_type fixed bin static options (constant) initial (1); 3 22 declare message_type fixed bin static options (constant) initial (2); 3 23 3 24 declare (ONLY_UNDELETED init (0), 3 25 INCLUDE_DELETED init (1), 3 26 ONLY_DELETED init (2)) 3 27 fixed bin static options (constant); 3 28 3 29 /* END INCLUDE FILE: forum_user_trans.incl.pl1 */ 75 76 77 passport_info_ptr = P_passport_info_ptr; 78 ssu_ptr = passport.ssu_ptr; 79 trans_idx = P_trans_idx; 80 cache = "1"b; 81 82 if P_forum_idx = 0 then do; /* use current forum */ 83 forum_idx = passport.forum_idx; 84 if forum_idx = 0 & P_trans_idx ^= 0 then call ssu_$abort_line (ssu_ptr, forum_et_$no_forum); 85 end; 86 else do; /* use forum given */ 87 forum_idx = P_forum_idx; 88 if forum_idx ^= passport.forum_idx then cache = "0"b; /* don't use cache */ 89 end; 90 91 if trans_idx = 0 then do; /* unprocessed trans */ 92 if passport.unprocessed_trans_ptr = null then 93 call ssu_$abort_line (ssu_ptr, forum_et_$no_unprocessed); 94 P_forum_user_trans_ptr = passport.unprocessed_trans_ptr; 95 P_code = 0; 96 return; 97 end; 98 99 if cache & passport.first_trans_ptr ^= null () then do; /* Look for message in user ring cache */ 100 do forum_user_trans_ptr = passport.last_trans_ptr repeat forum_user_trans.prev_trans_ptr 101 while (forum_user_trans_ptr ^= null ()); 102 if forum_user_trans.trans_no = trans_idx then do; 103 P_forum_user_trans_ptr = forum_user_trans_ptr; 104 P_code = 0; 105 return; 106 end; 107 end; 108 end; 109 110 retry = "0"b; 111 TRY_AGAIN: 112 call forum_$read_trans (forum_idx, trans_idx, passport.area_ptr, forum_user_trans_ptr, code); 113 if forum_user_trans_ptr ^= null () then /* Thread it in cache */ 114 if cache then do; 115 forum_user_trans.prev_trans_ptr = passport.last_trans_ptr; 116 forum_user_trans.next_trans_ptr = null (); 117 if passport.first_trans_ptr = null () then 118 passport.first_trans_ptr = forum_user_trans_ptr; 119 else passport.last_trans_ptr -> forum_user_trans.next_trans_ptr = forum_user_trans_ptr; 120 passport.last_trans_ptr = forum_user_trans_ptr; 121 end; 122 else; 123 else if code = forum_et_$trans_reaped | code = forum_et_$trans_deleted then; 124 else if code = error_table_$noalloc & ^retry then do; 125 retry = "1"b; 126 call forum_trans_util_$clear_cache (passport_info_ptr); 127 goto TRY_AGAIN; 128 end; 129 else call ssu_$abort_line (ssu_ptr, code, "Reading transaction ^d.", trans_idx); 130 131 P_forum_user_trans_ptr = forum_user_trans_ptr; 132 P_code = code; 133 return; 134 135 /* This routine is called to free user-ring cache storage when the current forum is closed */ 136 137 forum_trans_util_$clear_cache: 138 entry (P_passport_info_ptr); 139 140 declare p pointer; 141 142 passport_info_ptr = P_passport_info_ptr; 143 if passport_info_ptr = null () then return; 144 145 on cleanup begin; 146 passport.first_trans_ptr, passport.last_trans_ptr = null (); 147 end; 148 149 do forum_user_trans_ptr = passport.first_trans_ptr repeat p while (forum_user_trans_ptr ^= null ()); 150 p = forum_user_trans.next_trans_ptr; 151 free forum_user_trans; 152 end; 153 passport.first_trans_ptr, passport.last_trans_ptr = null (); 154 return; 155 156 forum_trans_util_$reverse: 157 entry (P_passport_info_ptr, P_forum_trans_list_ptr); 158 159 passport_info_ptr = P_passport_info_ptr; 160 forum_trans_list_ptr = P_forum_trans_list_ptr; 161 162 new_trans_list_ptr = null (); 163 on cleanup begin; 164 if new_trans_list_ptr ^= null () then free new_trans_list; 165 end; 166 167 alloc_trans_list_size = forum_trans_list.size; 168 169 RETRY: 170 on area begin; 171 call forum_trans_util_$clear_cache (passport_info_ptr); 172 goto RETRY; 173 end; 174 175 allocate new_trans_list in (forum_area); 176 revert area; 177 new_trans_list.size = alloc_trans_list_size; 178 new_trans_list.max_personid_len = forum_trans_list.max_personid_len; 179 do trans_idx = 1 to new_trans_list.size; 180 new_trans_list.trans_num (trans_idx) = forum_trans_list.trans_num (new_trans_list.size - trans_idx + 1); 181 end; 182 183 free forum_trans_list; 184 P_forum_trans_list_ptr = new_trans_list_ptr; 185 return; 186 187 forum_trans_util_$sort_by_chain: 188 entry (P_passport_info_ptr, P_forum_idx, P_forum_trans_list_ptr, P_type); 189 190 passport_info_ptr = P_passport_info_ptr; 191 forum_idx = P_forum_idx; 192 forum_trans_list_ptr = P_forum_trans_list_ptr; 193 type = P_type; 194 195 new_trans_list_ptr, v_ptr = null (); 196 on cleanup begin; 197 if new_trans_list_ptr ^= null () then free new_trans_list; 198 if v_ptr ^= null () then free v; 199 end; 200 201 alloc_trans_list_size = forum_trans_list.size; 202 allocate v in (forum_area); 203 do idx = 1 to forum_trans_list.size; 204 v.vector (idx) = addr (forum_trans_list.trans_num (idx)); 205 end; 206 call sort_items_$fixed_bin (v_ptr); 207 208 allocate new_trans_list in (forum_area); 209 new_trans_list.max_personid_len = forum_trans_list.max_personid_len; 210 new_trans_list.size = 0; 211 212 trans_idx = v.vector (1) -> based_fb; 213 v.vector (1) = null (); 214 low = 2; 215 216 do while ("1"b); 217 ADD: new_trans_list.size = new_trans_list.size + 1; 218 new_trans_list.trans_num (new_trans_list.size) = trans_idx; 219 220 if new_trans_list.size = forum_trans_list.size then do; /* Done */ 221 free v; 222 free forum_trans_list; 223 P_forum_trans_list_ptr = new_trans_list_ptr; 224 return; 225 end; 226 227 low_in_chain = low; 228 call forum_$trans_ref_info (forum_idx, trans_idx, type, (0), nref, ("0"b), (0)); 229 do while (nref ^= 0); 230 do idx = low_in_chain to v.n; 231 if v.vector (idx) ^= null () then do; 232 trans_idx = v.vector (idx) -> based_fb; 233 if trans_idx = nref then do; 234 v.vector (idx) = null (); 235 low_in_chain = idx + 1; 236 goto ADD; 237 end; 238 if trans_idx > nref then goto NOT_THIS_ONE; 239 end; 240 end; 241 NOT_THIS_ONE: trans_idx = nref; 242 call forum_$trans_ref_info (forum_idx, trans_idx, type, (0), nref, ("0"b), (0)); 243 low_in_chain = idx; 244 end; 245 246 do idx = low to v.n while (v.vector (idx) = null ()); /* No more in chain, find next head */ 247 end; 248 trans_idx = v.vector (idx) -> based_fb; 249 v.vector (idx) = null (); 250 low = idx + 1; 251 end; 252 253 end forum_trans_util_$read_trans; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 10/19/92 1454.1 forum_trans_util_.pl1 >spec>install>1027>forum_trans_util_.pl1 71 1 08/16/86 1638.0 forum_passport.incl.pl1 >ldd>include>forum_passport.incl.pl1 73 2 04/27/92 1104.7 forum_trans_list.incl.pl1 >ldd>include>forum_trans_list.incl.pl1 75 3 10/31/84 1215.4 forum_user_trans.incl.pl1 >ldd>include>forum_user_trans.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. ANY 000141 automatic bit(36) initial dcl 2-53 set ref 2-53* P_code parameter fixed bin(35,0) dcl 28 set ref 25 95* 104* 132* P_forum_idx parameter fixed bin(17,0) dcl 28 ref 25 82 87 187 191 P_forum_trans_list_ptr parameter pointer dcl 28 set ref 156 160 184* 187 192 223* P_forum_user_trans_ptr parameter pointer dcl 28 set ref 25 94* 103* 131* P_passport_info_ptr parameter pointer dcl 28 ref 25 77 137 142 156 159 187 190 P_trans_idx parameter fixed bin(17,0) dcl 28 ref 25 79 84 P_type parameter fixed bin(17,0) dcl 28 ref 187 193 addr builtin function dcl 68 ref 204 alloc_trans_list_size 000140 automatic fixed bin(17,0) dcl 2-16 set ref 167* 175 175 177 201* 202 202 208 208 area 000120 stack reference condition dcl 68 ref 169 176 area_ptr 74 based pointer level 2 dcl 1-14 set ref 111* 175 202 208 based_fb based fixed bin(17,0) dcl 36 ref 212 232 248 cache 000100 automatic bit(1) dcl 36 set ref 80* 88* 99 113 cleanup 000126 stack reference condition dcl 68 ref 145 163 196 code 000101 automatic fixed bin(35,0) dcl 36 set ref 111* 123 123 124 129* 132 error_table_$noalloc 000010 external static fixed bin(35,0) dcl 55 ref 124 first_trans_ptr 76 based pointer level 2 dcl 1-14 set ref 99 117 117* 146* 149 153* forum_$read_trans 000022 constant entry external dcl 62 ref 111 forum_$trans_ref_info 000024 constant entry external dcl 62 ref 228 242 forum_area based area(1024) dcl 1-46 ref 175 202 208 forum_et_$no_forum 000012 external static fixed bin(35,0) dcl 55 set ref 84* forum_et_$no_unprocessed 000014 external static fixed bin(35,0) dcl 55 set ref 92* forum_et_$trans_deleted 000020 external static fixed bin(35,0) dcl 55 ref 123 forum_et_$trans_reaped 000016 external static fixed bin(35,0) dcl 55 ref 123 forum_idx 1 based fixed bin(17,0) level 2 in structure "passport" dcl 1-14 in procedure "forum_trans_util_$read_trans" ref 83 88 forum_idx 000102 automatic fixed bin(17,0) dcl 36 in procedure "forum_trans_util_$read_trans" set ref 83* 84 87* 88 111* 191* 228* 242* forum_trans_list based structure level 1 dcl 2-18 set ref 183 222 forum_trans_list_ptr 000136 automatic pointer dcl 2-15 set ref 160* 167 178 180 183 192* 201 203 204 209 220 222 forum_user_trans based structure level 1 dcl 3-7 set ref 151 forum_user_trans_ptr 000142 automatic pointer dcl 3-5 set ref 100* 100* 102 103* 107 111* 113 115 116 117 119 120 131 149* 149* 150 151* idx 000103 automatic fixed bin(17,0) dcl 36 set ref 203* 204 204* 230* 231 232 234 235* 243 246* 246* 248 249 250 last_trans_ptr 100 based pointer level 2 dcl 1-14 set ref 100 115 119 120* 146* 153* list 3 based structure array level 2 in structure "new_trans_list" dcl 50 in procedure "forum_trans_util_$read_trans" list 3 based structure array level 2 in structure "forum_trans_list" dcl 2-18 in procedure "forum_trans_util_$read_trans" low 000104 automatic fixed bin(17,0) dcl 36 set ref 214* 227 246 250* low_in_chain 000105 automatic fixed bin(17,0) dcl 36 set ref 227* 230 235* 243* max_personid_len 2 based fixed bin(17,0) level 2 in structure "new_trans_list" dcl 50 in procedure "forum_trans_util_$read_trans" set ref 178* 209* max_personid_len 2 based fixed bin(17,0) level 2 in structure "forum_trans_list" dcl 2-18 in procedure "forum_trans_util_$read_trans" ref 178 209 max_size based fixed bin(17,0) level 2 dcl 2-18 set ref 164 175* 183 197 208* 222 n based fixed bin(17,0) level 2 dcl 50 set ref 198 202* 221 230 246 new_trans_list based structure level 1 dcl 50 set ref 164 175 197 208 new_trans_list_ptr 000106 automatic pointer dcl 36 set ref 162* 164 164 175* 177 178 179 180 180 184 195* 197 197 208* 209 210 217 217 218 218 220 223 next_trans_ptr 16 based pointer level 2 dcl 3-7 set ref 116* 119* 150 nref 000110 automatic fixed bin(17,0) dcl 36 set ref 228* 229 233 238 241 242* null builtin function dcl 68 ref 92 99 100 113 116 117 143 146 149 153 162 164 195 197 198 213 231 234 246 249 p 000144 automatic pointer dcl 140 set ref 150* 152 passport based structure level 1 dcl 1-14 passport_info_ptr 000134 automatic pointer dcl 1-12 set ref 77* 78 83 88 92 94 99 100 111 115 117 117 119 120 126* 142* 143 146 146 149 153 153 159* 171* 175 190* 202 208 prev_trans_ptr 20 based pointer level 2 dcl 3-7 set ref 107 115* retry 000111 automatic bit(1) dcl 36 set ref 110* 124 125* size 1 based fixed bin(17,0) level 2 in structure "new_trans_list" dcl 50 in procedure "forum_trans_util_$read_trans" set ref 177* 179 180 210* 217* 217 218 220 size 1 based fixed bin(17,0) level 2 in structure "forum_trans_list" dcl 2-18 in procedure "forum_trans_util_$read_trans" ref 167 201 203 220 sort_items_$fixed_bin 000026 constant entry external dcl 62 ref 206 ssu_$abort_line 000030 constant entry external dcl 62 ref 84 92 129 ssu_ptr 000112 automatic pointer dcl 36 in procedure "forum_trans_util_$read_trans" set ref 78* 84* 92* 129* ssu_ptr 170 based pointer level 2 in structure "passport" dcl 1-14 in procedure "forum_trans_util_$read_trans" ref 78 subject_length 22 based fixed bin(21,0) level 2 dcl 3-7 ref 151 text_length 23 based fixed bin(21,0) level 2 dcl 3-7 ref 151 trans_idx 000114 automatic fixed bin(17,0) dcl 36 set ref 79* 91 102 111* 129* 179* 180 180* 212* 218 228* 232* 233 238 241* 242* 248* trans_no 14 based fixed bin(17,0) level 2 dcl 3-7 ref 102 trans_num 3 based fixed bin(17,0) array level 3 in structure "new_trans_list" dcl 50 in procedure "forum_trans_util_$read_trans" set ref 180* 218* trans_num 3 based fixed bin(17,0) array level 3 in structure "forum_trans_list" dcl 2-18 in procedure "forum_trans_util_$read_trans" set ref 180 204 type 000115 automatic fixed bin(17,0) dcl 36 set ref 193* 228* 242* unprocessed_trans_ptr 102 based pointer level 2 dcl 1-14 ref 92 94 v based structure level 1 dcl 50 set ref 198 202 221 v_ptr 000116 automatic pointer dcl 36 set ref 195* 198 198 202* 204 206* 212 213 221 230 231 232 234 246 246 248 249 vector 1 based pointer array level 2 packed packed unaligned dcl 50 set ref 204* 212 213* 231 232 234* 246 248 249* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ALLOW_DELETED internal static bit(18) initial dcl 2-54 ALLOW_IHE internal static bit(18) initial dcl 2-54 CALL_ON_BAD_ARGS internal static bit(18) initial dcl 2-54 CREATE_UNPROC internal static bit(18) initial dcl 2-54 DEFAULT_TO_ALL internal static bit(18) initial dcl 2-54 DEFAULT_TO_NONE internal static bit(18) initial dcl 2-54 DEFAULT_TO_UNPROC internal static bit(18) initial dcl 2-54 DISALLOW_BYCHAIN internal static bit(18) initial dcl 2-54 DISALLOW_CMSG internal static bit(18) initial dcl 2-54 DISALLOW_IDL internal static bit(18) initial dcl 2-54 DISALLOW_INITIAL internal static bit(18) initial dcl 2-54 DISALLOW_MTG internal static bit(18) initial dcl 2-54 DISALLOW_REV internal static bit(18) initial dcl 2-54 DISALLOW_UNPROC internal static bit(18) initial dcl 2-54 DONT_READ internal static bit(18) initial dcl 2-54 INCLUDE_DELETED internal static fixed bin(17,0) initial dcl 3-24 MUST_BE_DELETED internal static bit(18) initial dcl 2-54 NON_NULL internal static bit(18) initial dcl 2-54 ONLY_DELETED internal static fixed bin(17,0) initial dcl 3-24 ONLY_ONE internal static bit(18) initial dcl 2-54 ONLY_UNDELETED internal static fixed bin(17,0) initial dcl 3-24 TFMT_more internal static fixed bin(17,0) initial dcl 1-54 TFMT_none internal static fixed bin(17,0) initial dcl 1-54 TFMT_number internal static fixed bin(17,0) initial dcl 1-54 TFMT_reference internal static fixed bin(17,0) initial dcl 1-54 alloc_subject_length automatic fixed bin(21,0) dcl 3-4 alloc_text_length automatic fixed bin(21,0) dcl 3-3 forum_data_$central_directory external static char(168) packed unaligned dcl 1-49 forum_data_$info_directory external static char(168) packed unaligned dcl 1-49 forum_data_$version_string external static char(8) packed unaligned dcl 1-49 message_type internal static fixed bin(17,0) initial dcl 3-22 no_suffix_name based char packed unaligned dcl 1-46 parse_flags based structure level 1 dcl 2-32 parse_flags_word automatic bit(36) dcl 2-30 passport_version_2 internal static fixed bin(17,0) initial dcl 1-44 user_trans_type internal static fixed bin(17,0) initial dcl 3-21 NAMES DECLARED BY EXPLICIT CONTEXT. ADD 000764 constant label dcl 217 ref 236 NOT_THIS_ONE 001077 constant label dcl 241 ref 238 RETRY 000477 constant label dcl 169 ref 172 TRY_AGAIN 000166 constant label dcl 111 ref 127 forum_trans_util_$clear_cache 000323 constant entry external dcl 137 ref 126 171 forum_trans_util_$read_trans 000031 constant entry external dcl 25 forum_trans_util_$reverse 000423 constant entry external dcl 156 forum_trans_util_$sort_by_chain 000603 constant entry external dcl 187 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1446 1500 1164 1456 Length 1756 1164 32 242 261 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME forum_trans_util_$read_trans 154 external procedure is an external procedure. on unit on line 145 66 on unit on unit on line 163 64 on unit on unit on line 169 68 on unit on unit on line 196 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME forum_trans_util_$read_trans 000100 cache forum_trans_util_$read_trans 000101 code forum_trans_util_$read_trans 000102 forum_idx forum_trans_util_$read_trans 000103 idx forum_trans_util_$read_trans 000104 low forum_trans_util_$read_trans 000105 low_in_chain forum_trans_util_$read_trans 000106 new_trans_list_ptr forum_trans_util_$read_trans 000110 nref forum_trans_util_$read_trans 000111 retry forum_trans_util_$read_trans 000112 ssu_ptr forum_trans_util_$read_trans 000114 trans_idx forum_trans_util_$read_trans 000115 type forum_trans_util_$read_trans 000116 v_ptr forum_trans_util_$read_trans 000134 passport_info_ptr forum_trans_util_$read_trans 000136 forum_trans_list_ptr forum_trans_util_$read_trans 000140 alloc_trans_list_size forum_trans_util_$read_trans 000141 ANY forum_trans_util_$read_trans 000142 forum_user_trans_ptr forum_trans_util_$read_trans 000144 p forum_trans_util_$read_trans THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_in call_ext_out_desc call_ext_out return_mac tra_ext_1 enable_op ext_entry int_entry op_alloc_ op_freen_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. forum_$read_trans forum_$trans_ref_info sort_items_$fixed_bin ssu_$abort_line THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$noalloc forum_et_$no_forum forum_et_$no_unprocessed forum_et_$trans_deleted forum_et_$trans_reaped LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 2 53 000021 25 000024 77 000037 78 000043 79 000045 80 000047 82 000051 83 000053 84 000055 85 000075 87 000076 88 000077 91 000102 92 000104 94 000126 95 000132 96 000133 99 000134 100 000143 102 000152 103 000156 104 000160 105 000161 107 000162 110 000165 111 000166 113 000206 115 000214 116 000220 117 000222 119 000230 120 000232 122 000233 123 000234 124 000243 125 000247 126 000251 127 000257 129 000260 131 000312 132 000315 133 000317 137 000320 142 000331 143 000335 145 000341 146 000355 147 000363 149 000364 150 000374 151 000377 152 000407 153 000412 154 000416 156 000417 159 000434 160 000440 162 000443 163 000445 164 000461 165 000473 167 000474 169 000477 171 000513 172 000522 175 000525 176 000537 177 000540 178 000541 179 000544 180 000553 181 000564 183 000566 184 000573 185 000575 187 000576 190 000614 191 000620 192 000622 193 000625 195 000627 196 000632 197 000646 198 000660 199 000671 201 000672 202 000675 203 000706 204 000717 205 000723 206 000725 208 000734 209 000746 210 000751 212 000752 213 000756 214 000761 216 000763 217 000764 218 000766 220 000773 221 000777 222 001003 223 001010 224 001012 227 001013 228 001015 229 001044 230 001046 231 001055 232 001060 233 001064 234 001066 235 001070 236 001073 238 001074 240 001075 241 001077 242 001101 243 001130 244 001132 246 001133 247 001146 248 001150 249 001154 250 001156 251 001161 253 001162 ----------------------------------------------------------- Historical Background This edition of the Multics software materials and documentation is provided and donated to Massachusetts Institute of Technology by Group BULL including BULL HN Information Systems Inc. as a contribution to computer science knowledge. This donation is made also to give evidence of the common contributions of Massachusetts Institute of Technology, Bell Laboratories, General Electric, Honeywell Information Systems Inc., Honeywell BULL Inc., Groupe BULL and BULL HN Information Systems Inc. to the development of this operating system. Multics development was initiated by Massachusetts Institute of Technology Project MAC (1963-1970), renamed the MIT Laboratory for Computer Science and Artificial Intelligence in the mid 1970s, under the leadership of Professor Fernando Jose Corbato. Users consider that Multics provided the best software architecture for managing computer hardware properly and for executing programs. Many subsequent operating systems incorporated Multics principles. Multics was distributed in 1975 to 2000 by Group Bull in Europe , and in the U.S. by Bull HN Information Systems Inc., as successor in interest by change in name only to Honeywell Bull Inc. and Honeywell Information Systems Inc. . ----------------------------------------------------------- Permission to use, copy, modify, and distribute these programs and their documentation for any purpose and without fee is hereby granted,provided that the below copyright notice and historical background appear in all copies and that both the copyright notice and historical background and this permission notice appear in supporting documentation, and that the names of MIT, HIS, BULL or BULL HN not be used in advertising or publicity pertaining to distribution of the programs without specific prior written permission. Copyright 1972 by Massachusetts Institute of Technology and Honeywell Information Systems Inc. Copyright 2006 by BULL HN Information Systems Inc. Copyright 2006 by Bull SAS All Rights Reserved