COMPILATION LISTING OF SEGMENT forum_admin Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 08/16/86 1402.2 mst Sat Options: optimize map 1 /****^ *************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1986 * 4* * * 5* * Copyright (c) 1982 by Massachusetts Institute of Technology * 6* * * 7* *************************************************************** */ 8 9 10 11 /****^ HISTORY COMMENTS: 12* 1) change(86-07-29,Pattin), approve(86-07-29,MCR7354), 13* audit(86-08-07,Margolin), install(86-08-16,MR12.0-1128): 14* CHanged to use check_gate_access_, handle versions better. 15* END HISTORY COMMENTS */ 16 17 18 forum_admin: 19 procedure (); 20 21 /* Jay Pattin 03/29/82 Privileged forum interface - don't have to be chairman 22* Use of this command requires access to the forum_admin_ gate 23* 24* added eligiblility message stuff 5/20/82 Jay Pattin */ 25 26 declare arg_count fixed bin, 27 arg_len fixed bin (21), 28 arg_ptr ptr, 29 arg char (arg_len) based (arg_ptr), 30 1 fi aligned like forum_info, 31 forum_dir char (168), 32 forum_name char (32), 33 status fixed bin (35), 34 whoami char (16) static options (constant) init ("forum_admin"); 35 36 declare (addr, codeptr, index) builtin; 37 38 declare (error_table_$entlong, forum_et_$not_eligible, forum_et_$no_such_forum) 39 fixed bin (35) external; 40 41 declare check_gate_access_ entry (char (*), ptr, fixed bin (35)), 42 cu_$arg_count entry (fixed bin, fixed bin (35)), 43 cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)), 44 (com_err_, com_err_$suppress_name) 45 entry options (variable), 46 expand_pathname_$add_suffix entry (char(*), char(*), char(*), char(*), fixed bin (35)), 47 forum_$get_forum_path entry (char (*), char (*), char (*), char (*), fixed bin (35)), 48 forum_admin_$change_chairman entry (char (*), char (*), char (*), fixed bin (35)), 49 forum_admin_$v1_change_chairman entry (char (*), char (*), char (*), fixed bin (35)), 50 forum_admin_$convert entry (char (*), char (*), fixed bin (35)), 51 forum_admin_$init_notifications 52 entry (fixed bin (35)), 53 forum_admin_$set_forum_acl entry (char (*), char (*), char (*), bit (1) aligned, bit (1) aligned, 54 bit (1) aligned, fixed bin (35)), 55 forum_admin_$set_switch entry (char (*), char (*), char (*), char (*), bit (1) aligned, fixed bin (35)), 56 forum_admin_$set_global_switch 57 entry (char (*), bit (1) aligned, fixed bin (35)), 58 forum_$forum_info entry (char (*), char (*), char (*), fixed bin (71), ptr, fixed bin (35)), 59 ioa_ entry options (variable), 60 pathname_ entry (char (*), char (*)) returns (char (168)); 61 1 1 /* START OF: forum_info.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* Changed to version 2, speed up call by not calculating remove count. 1 9* END HISTORY COMMENTS */ 1 10 1 11 1 12 declare forum_info_ptr ptr; 1 13 1 14 declare 1 forum_info aligned based (forum_info_ptr), 1 15 2 version fixed bin, /* Must be 1 or 2 */ 1 16 2 forum_uid bit (36), 1 17 2 chairman unaligned, 1 18 3 username char (20), 1 19 3 project char (9), 1 20 3 pad char (3), 1 21 2 attendee_count fixed bin, 1 22 2 removal_count fixed bin, /* always 0 in version 2 */ 1 23 2 transaction_count fixed bin, 1 24 2 deletion_count fixed bin, 1 25 2 last_seen_trans_idx fixed bin, 1 26 2 last_time_changed fixed bin (71), 1 27 2 last_time_attended fixed bin (71), 1 28 2 changes_count fixed bin, 1 29 2 flags unaligned, 1 30 3 eligible bit (1), 1 31 3 mbz1 bit (1), 1 32 3 removed bit (1), 1 33 3 notify bit (1), 1 34 3 attending bit (1), 1 35 3 mbz2 bit (2), 1 36 3 read_only bit (1), 1 37 3 adjourned bit (1), 1 38 3 mbz3 bit (27); 1 39 1 40 declare forum_info_version_1 fixed bin static options (constant) initial (1), 1 41 forum_info_version_2 fixed bin static options (constant) initial (2); 1 42 1 43 /* END OF: forum_info.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 62 63 64 call cu_$arg_count (arg_count, status); 65 if status ^= 0 then do; 66 call com_err_ (status, whoami); 67 return; 68 end; 69 70 if arg_count = 0 then do; 71 call com_err_$suppress_name (0, "", "Usage: forum_admin key {arguments}"); 72 return; 73 end; 74 75 call check_gate_access_ ("forum_admin_", codeptr (forum_admin), status); 76 if status ^= 0 then do; 77 call com_err_ (status, whoami, "This command requires access to the forum_admin_ gate"); 78 return; 79 end; 80 81 call get_arg (1); 82 83 if arg = "init_notifications" then do; 84 if arg_count ^= 1 then do; 85 WRONG_ARGS: call com_err_ (0, whoami, "Wrong number of arguments for this keyword."); 86 return; 87 end; 88 call forum_admin_$init_notifications (status); 89 if status ^= 0 then call com_err_ (status, whoami); 90 end; 91 92 else if arg = "convert" then do; 93 if arg_count ^= 2 then goto WRONG_ARGS; 94 call get_path (2, "1"b); 95 call forum_admin_$convert (forum_dir, forum_name, status); 96 if status ^= 0 then call com_err_ (status, whoami, "Converting meeting."); 97 end; 98 99 else if arg = "change_chairman" then do; 100 if arg_count ^= 3 then goto WRONG_ARGS; 101 call get_path (2, "0"b); 102 call get_arg (3); 103 fi.version = forum_info_version_1; 104 call forum_$forum_info (forum_dir, forum_name, "", (0), addr (fi), status); 105 if status = 0 | status = forum_et_$not_eligible then do; 106 call ioa_ ("Changing chairman from ^a.^a to ^a.", fi.chairman.username, fi.chairman.project, arg); 107 call forum_admin_$change_chairman (forum_dir, forum_name, arg, status); 108 if status ^= 0 then call com_err_ (status, whoami, "Changing chairman."); 109 end; 110 else call com_err_ (status, whoami, "Getting forum info."); 111 end; 112 else if arg = "switch_on" | arg = "swn" then call set_switch ("1"b); 113 else if arg = "switch_off" | arg = "swf" then call set_switch ("0"b); 114 else call com_err_ (0, whoami, "Unrecognized key. ""^a""", arg); 115 116 PUNT: return; 117 118 get_arg: 119 procedure (arg_num); 120 121 declare arg_num fixed bin; 122 123 call cu_$arg_ptr (arg_num, arg_ptr, arg_len, status); 124 if status ^= 0 then do; 125 call com_err_ (status, whoami, "Argument #^d.", arg_num); 126 goto PUNT; 127 end; 128 129 return; 130 end get_arg; 131 132 133 get_path: 134 procedure (path_arg, must_be_v1); 135 136 declare path_arg fixed bin, 137 must_be_v1 bit (1) aligned; 138 139 call get_arg (path_arg); 140 if must_be_v1 then goto VERSION1; 141 call expand_pathname_$add_suffix (arg, "forum", forum_dir, forum_name, status); 142 if status ^= 0 then do; 143 if status = error_table_$entlong then goto VERSION1; 144 EXPANDERR: 145 call com_err_ (status, whoami, "Expanding ""^a"".", arg); 146 goto PUNT; 147 end; 148 149 call forum_$get_forum_path (forum_dir, forum_name, forum_dir, forum_name, status); 150 if status = 0 then return; 151 152 VERSION1: call expand_pathname_$add_suffix (arg, "control", forum_dir, forum_name, status); 153 if status ^= 0 then goto EXPANDERR; 154 155 return; 156 end get_path; 157 158 set_switch: 159 procedure (value); 160 161 declare value bit (1) aligned, 162 switch_name char (32); 163 164 if arg_count < 2 then goto WRONG_ARGS; 165 call get_arg (2); 166 switch_name = arg; 167 168 if switch_name = "meeting_eligibility_messages" | switch_name = "mtg_emsg" | 169 switch_name = "adjourned" | switch_name = "adj" then do; 170 if arg_count ^= 3 then goto WRONG_ARGS; 171 call get_path (3, "0"b); 172 call forum_admin_$set_switch (forum_dir, forum_name, "", switch_name, value, status); 173 if status ^= 0 then 174 call com_err_ (status, whoami, "^[S^;Res^]etting ""^a"" switch for the ^a meeting", 175 value, switch_name, pathname_ (forum_dir, forum_name)); 176 end; 177 else do; 178 if arg_count ^= 2 then goto WRONG_ARGS; 179 call forum_admin_$set_global_switch (arg, value, status); 180 if status ^= 0 then call com_err_ (status, whoami, "^[S^;Res^]etting ""^a"" switch.", value, arg); 181 end; 182 183 end set_switch; 184 185 end forum_admin; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/16/86 1354.5 forum_admin.pl1 >spec>install>1128>forum_admin.pl1 62 1 08/16/86 1354.4 forum_info.incl.pl1 >spec>install>1128>forum_info.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. addr builtin function dcl 36 ref 104 104 arg based char unaligned dcl 26 set ref 83 92 99 106* 107* 112 112 113 113 114* 141* 144* 152* 166 179* 180* arg_count 000100 automatic fixed bin(17,0) dcl 26 set ref 64* 70 84 93 100 164 170 178 arg_len 000101 automatic fixed bin(21,0) dcl 26 set ref 83 92 99 106 106 107 107 112 112 113 113 114 114 123* 141 141 144 144 152 152 166 179 179 180 180 arg_num parameter fixed bin(17,0) dcl 121 set ref 118 123* 125* arg_ptr 000102 automatic pointer dcl 26 set ref 83 92 99 106 107 112 112 113 113 114 123* 141 144 152 166 179 180 chairman 2 000104 automatic structure level 2 packed unaligned dcl 26 check_gate_access_ 000014 constant entry external dcl 41 ref 75 codeptr builtin function dcl 36 ref 75 75 com_err_ 000022 constant entry external dcl 41 ref 66 77 85 89 96 108 110 114 125 144 173 180 com_err_$suppress_name 000024 constant entry external dcl 41 ref 71 cu_$arg_count 000016 constant entry external dcl 41 ref 64 cu_$arg_ptr 000020 constant entry external dcl 41 ref 123 error_table_$entlong 000010 external static fixed bin(35,0) dcl 38 ref 143 expand_pathname_$add_suffix 000026 constant entry external dcl 41 ref 141 152 fi 000104 automatic structure level 1 dcl 26 set ref 104 104 forum_$forum_info 000044 constant entry external dcl 41 ref 104 forum_$get_forum_path 000030 constant entry external dcl 41 ref 149 forum_admin_$change_chairman 000032 constant entry external dcl 41 ref 107 forum_admin_$convert 000034 constant entry external dcl 41 ref 95 forum_admin_$init_notifications 000036 constant entry external dcl 41 ref 88 forum_admin_$set_global_switch 000042 constant entry external dcl 41 ref 179 forum_admin_$set_switch 000040 constant entry external dcl 41 ref 172 forum_dir 000132 automatic char(168) unaligned dcl 26 set ref 95* 104* 107* 141* 149* 149* 152* 172* 173* 173* forum_et_$not_eligible 000012 external static fixed bin(35,0) dcl 38 ref 105 forum_info based structure level 1 dcl 1-14 forum_info_version_1 constant fixed bin(17,0) initial dcl 1-40 ref 103 forum_name 000204 automatic char(32) unaligned dcl 26 set ref 95* 104* 107* 141* 149* 149* 152* 172* 173* 173* ioa_ 000046 constant entry external dcl 41 ref 106 must_be_v1 parameter bit(1) dcl 136 ref 133 140 path_arg parameter fixed bin(17,0) dcl 136 set ref 133 139* pathname_ 000050 constant entry external dcl 41 ref 173 173 project 7 000104 automatic char(9) level 3 packed unaligned dcl 26 set ref 106* status 000214 automatic fixed bin(35,0) dcl 26 set ref 64* 65 66* 75* 76 77* 88* 89 89* 95* 96 96* 104* 105 105 107* 108 108* 110* 123* 124 125* 141* 142 143 144* 149* 150 152* 153 172* 173 173* 179* 180 180* switch_name 000240 automatic char(32) unaligned dcl 161 set ref 166* 168 168 168 168 172* 173* username 2 000104 automatic char(20) level 3 packed unaligned dcl 26 set ref 106* value parameter bit(1) dcl 161 set ref 158 172* 173* 179* 180* version 000104 automatic fixed bin(17,0) level 2 dcl 26 set ref 103* whoami 000000 constant char(16) initial unaligned dcl 26 set ref 66* 77* 85* 89* 96* 108* 110* 114* 125* 144* 173* 180* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. forum_admin_$set_forum_acl 000000 constant entry external dcl 41 forum_admin_$v1_change_chairman 000000 constant entry external dcl 41 forum_et_$no_such_forum external static fixed bin(35,0) dcl 38 forum_info_ptr automatic pointer dcl 1-12 forum_info_version_2 internal static fixed bin(17,0) initial dcl 1-40 index builtin function dcl 36 NAMES DECLARED BY EXPLICIT CONTEXT. EXPANDERR 001253 constant label dcl 144 ref 153 PUNT 001116 constant label dcl 116 ref 126 146 VERSION1 001342 constant label dcl 152 ref 140 143 WRONG_ARGS 000426 constant label dcl 85 ref 93 100 164 170 178 forum_admin 000245 constant entry external dcl 18 ref 75 75 get_arg 001117 constant entry internal dcl 118 ref 81 102 139 165 get_path 001174 constant entry internal dcl 133 ref 94 101 171 set_switch 001403 constant entry internal dcl 158 ref 112 113 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2144 2216 1720 2154 Length 2436 1720 52 203 223 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME forum_admin 414 external procedure is an external procedure. get_arg internal procedure shares stack frame of external procedure forum_admin. get_path internal procedure shares stack frame of external procedure forum_admin. set_switch internal procedure shares stack frame of external procedure forum_admin. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME forum_admin 000100 arg_count forum_admin 000101 arg_len forum_admin 000102 arg_ptr forum_admin 000104 fi forum_admin 000132 forum_dir forum_admin 000204 forum_name forum_admin 000214 status forum_admin 000240 switch_name set_switch THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_gate_access_ com_err_ com_err_$suppress_name cu_$arg_count cu_$arg_ptr expand_pathname_$add_suffix forum_$forum_info forum_$get_forum_path forum_admin_$change_chairman forum_admin_$convert forum_admin_$init_notifications forum_admin_$set_global_switch forum_admin_$set_switch ioa_ pathname_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$entlong forum_et_$not_eligible LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 18 000244 64 000252 65 000262 66 000264 67 000301 70 000302 71 000304 72 000331 75 000332 76 000362 77 000364 78 000410 81 000411 83 000415 84 000423 85 000426 86 000453 88 000454 89 000463 90 000502 92 000503 93 000507 94 000512 95 000520 96 000541 97 000572 99 000573 100 000577 101 000602 102 000610 103 000614 104 000616 105 000657 106 000664 107 000717 108 000747 109 000775 110 000776 111 001024 112 001025 113 001042 114 001057 116 001116 118 001117 123 001121 124 001136 125 001140 126 001172 129 001173 133 001174 139 001176 140 001204 141 001210 142 001246 143 001250 144 001253 146 001307 149 001310 150 001337 152 001342 153 001400 155 001402 158 001403 164 001405 165 001410 166 001414 168 001421 170 001441 171 001444 172 001452 173 001507 176 001572 178 001573 179 001576 180 001623 183 001665 ----------------------------------------------------------- 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