COMPILATION LISTING OF SEGMENT forum_add_participant Compiled by: Multics PL/I Compiler, Release 29, of July 28, 1986 Compiled at: Honeywell Multics Op. - System M Compiled on: 08/16/86 1405.9 mst Sat Options: optimize map 1 /* ************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1984 * 4* * * 5* ************************************************************** */ 6 7 forum_add_participant: 8 fapt: 9 proc; 10 11 /* v2 support for v1 access control commands/requests 12* removed from v1 forum_create 7/13/83 Jay Pattin 13* added v2 xobj hacking 4/15/84 Jay Pattin */ 14 15 declare ioa_ entry options (variable), 16 com_err_ entry options (variable), 17 com_err_$suppress_name entry options (variable), 18 active_fnc_err_ entry options (variable), 19 forum_requests_$find_forum entry (char (*), char (*), char (*), fixed bin, fixed bin (35)), 20 cu_$af_return_arg entry (fixed bin, ptr, fixed bin(21)) returns (fixed bin (35)), 21 cu_$arg_count entry (fixed bin), 22 cu_$arg_list_ptr entry returns (ptr), 23 cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)), 24 25 forum_$open_forum entry (char (*), char (*), fixed bin, fixed bin (35)), 26 forum_$close_forum entry (fixed bin, fixed bin (35)), 27 forum_$set_switch_idx entry (fixed bin, char (*), char (*), bit (1) aligned, fixed bin (35)), 28 forum_$delete_forum entry (char (*), char (*), fixed bin (35)), 29 forum_$set_forum_acl entry (char(*), char(*), ptr, fixed bin, fixed bin (35)), 30 forum_$set_v1_forum_acl entry (fixed bin, char (*), bit (1) aligned, bit (1) aligned, bit (1) aligned, 31 fixed bin (35)), 32 ssu_$abort_line entry options (variable), 33 ssu_$arg_count entry (ptr, fixed bin), 34 ssu_$arg_ptr entry (ptr, fixed bin, ptr, fixed bin(21)), 35 ssu_$return_arg entry (ptr, fixed bin, bit(1) aligned, ptr, fixed bin(21)), 36 ssu_$destroy_invocation entry (ptr), 37 ssu_$standalone_invocation entry (ptr, char(*), char(*), ptr, entry, fixed bin(35)); 38 39 declare (P_ssu_ptr, P_passport_info_ptr) 40 ptr parameter; 41 42 declare code fixed bin (35), 43 arg_idx fixed bin, 44 whoami char (32), 45 forum_name char (168), 46 full_forum_name char (32), 47 forum_no fixed bin, 48 ssu_ptr ptr, 49 subsystem_entry bit (1) aligned, 50 forum_directory char (168), 51 name_len fixed bin, 52 person_id char (22), 53 argp ptr, 54 argl fixed bin (21), 55 argument char (argl) based (argp), 56 nargs fixed bin, 57 chairman bit (1) aligned init (""b), 58 public_switch bit (1) aligned init (""b), 59 person_switch bit (1) aligned init (""b), 60 read_only bit (1) aligned init (""b), 61 add_switch bit (1) aligned, 62 v2 bit (1) aligned, 63 cleanup condition, 64 (index, null, substr) builtin; 65 66 declare 1 acl aligned, 67 2 access_name char (32), 68 2 modes bit (36) aligned, 69 2 xmodes bit (36) aligned, 70 2 code fixed bin (35); 71 72 declare (RWC_XACL init ("111"b), 73 RW_XACL init ("110"b), 74 R_XACL init ("100"b)) 75 bit (36) static aligned options (constant); 76 77 declare (forum_et_$no_forum, 78 forum_et_$no_such_user, 79 error_table_$not_act_fnc, 80 error_table_$inconsistent, 81 error_table_$badopt) external fixed binary (35); 82 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 * * * * * * * * * * * * * * * * */ 83 84 2 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 85 86 87 whoami = "forum_add_participant"; 88 call create_subsystem (); 89 if nargs < 2 then 90 call ssu_$abort_line (ssu_ptr, 0, "Usage: fapt meeting_name person_id {-control_arg}"); 91 person_switch, add_switch = "1"b; 92 goto common; 93 94 forum_add_participant$add_participant: 95 entry (P_ssu_ptr, P_passport_info_ptr); 96 97 whoami = "add_participant"; 98 call setup_request (); 99 if nargs < 1 then 100 call ssu_$abort_line (ssu_ptr, 0, "Usage: apt person_id {-control_arg}"); 101 person_switch, add_switch = "1"b; 102 103 common: 104 forum_no = 0; 105 chairman, read_only = ""b; 106 107 on cleanup begin; 108 if ^subsystem_entry then do; 109 call forum_$close_forum (forum_no, (0)); 110 call ssu_$destroy_invocation (ssu_ptr); 111 end; 112 end; 113 114 if ^subsystem_entry then do; 115 call ssu_$arg_ptr (ssu_ptr, 1, argp, argl); 116 117 call forum_requests_$find_forum (argument, forum_directory, full_forum_name, name_len, code); 118 if code ^= 0 then call ssu_$abort_line (ssu_ptr, code, "^a", argument); 119 forum_name = substr (full_forum_name, 1, name_len); 120 121 if public_switch then arg_idx = 2; 122 else arg_idx = 3; 123 end; 124 125 do arg_idx = arg_idx to nargs; 126 call ssu_$arg_ptr (ssu_ptr, arg_idx, argp, argl); 127 128 if add_switch & (argument = "-read_only" | argument = "-ro") then read_only = "1"b; 129 else if add_switch & (argument = "-chairman" | argument = "-cm") then chairman = "1"b; 130 else call ssu_$abort_line (ssu_ptr, error_table_$badopt, "^a", argument); 131 end; 132 133 if chairman & read_only then 134 call ssu_$abort_line (ssu_ptr, error_table_$inconsistent, """-chairman"" and ""-read_only"""); 135 136 if subsystem_entry then do; 137 forum_no = passport.forum_idx; 138 forum_directory = passport.forum_dir; 139 full_forum_name = passport.forum_name; 140 forum_name = no_suffix_name; 141 if forum_no = 0 then 142 call ssu_$abort_line (ssu_ptr, forum_et_$no_forum); 143 end; 144 else do; 145 call forum_$open_forum (forum_directory, full_forum_name, forum_no, code); 146 if code ^= 0 then 147 call ssu_$abort_line (ssu_ptr, code, "Unable to open the ^a meeting.", forum_name); 148 end; 149 150 v2 = (forum_no < 0); 151 if ^v2 & chairman then 152 call ssu_$abort_line (ssu_ptr, 0, "The -chairman control argument may not be used with version 1 meetings."); 153 154 acl.modes = RW_ACCESS; 155 if ^add_switch then acl.xmodes = N_ACCESS; 156 else if chairman then acl.xmodes = RWC_XACL; 157 else if read_only then acl.xmodes = R_XACL; 158 else acl.xmodes = RW_XACL; 159 acl.code = 0; 160 161 if public_switch then do; 162 if v2 then do; 163 acl.access_name = "*.*.*"; 164 call forum_$set_forum_acl (forum_directory, full_forum_name, addr (acl), 1, code); 165 end; 166 else call forum_$set_v1_forum_acl (forum_no, "*", "1"b, add_switch, ^read_only, code); 167 if code ^= 0 then 168 call ssu_$abort_line (ssu_ptr, code, "Unable to make ^a meeting ^[public^;private^].", forum_name, add_switch); 169 end; 170 171 else do; 172 if subsystem_entry then arg_idx = 1; 173 else arg_idx = 2; 174 call ssu_$arg_ptr (ssu_ptr, arg_idx, argp, argl); 175 176 if index (argument, "*") > 0 | index (argument, ".") > 0 then 177 call ssu_$abort_line (ssu_ptr, 0, "^[Person^;Project^]_ids may not contain ""."" or ""*"".", person_switch); 178 person_id = argument; 179 180 if v2 then do; 181 if person_switch then acl.access_name = argument || ".*.*"; 182 else acl.access_name = "*." || argument || ".*"; 183 call forum_$set_forum_acl (forum_directory, full_forum_name, addr (acl), 1, code); 184 end; 185 else call forum_$set_v1_forum_acl (forum_no, person_id, person_switch, add_switch, ^read_only, code); 186 187 if code ^= 0 then 188 call ssu_$abort_line (ssu_ptr, code, "Unable to ^[add ^a to^;remove ^a from^] ^a meeting.", add_switch, 189 person_id, forum_name); 190 191 if ^add_switch then do; 192 call forum_$set_switch_idx (forum_no, person_id, "participating", "0"b, code); 193 if code ^= 0 then 194 if code ^= forum_et_$no_such_user then 195 call ssu_$abort_line (ssu_ptr, code, "Unable to turn off participating switch for ^a.", person_id); 196 else code = 0; 197 end; 198 end; 199 if ^subsystem_entry then call forum_$close_forum (forum_no, (0)); 200 201 if public_switch then 202 call ioa_ ("The ^a meeting is ^[now^;no longer^] public^[ly readable^].", forum_name, (add_switch), (read_only)); 203 else call ioa_ ("^[^a^;The ^a project^] ^[may now read^s^;has been ^[added to^;removed from^]^] the ^a meeting.", 204 person_switch, person_id, (read_only), (add_switch), forum_name); 205 206 return; 207 208 PUNT: if ssu_ptr ^= null () & ^subsystem_entry then call ssu_$destroy_invocation (ssu_ptr); 209 210 if ^subsystem_entry & forum_no ^= 0 then call forum_$close_forum (forum_no, 0); 211 return; 212 213 forum_add_project: fapj: /* Entry to add project to existing forum */ 214 entry (); 215 216 whoami = "forum_add_project"; 217 call create_subsystem (); 218 if nargs < 2 then 219 call ssu_$abort_line (ssu_ptr, 0, "Usage: fapj meeting_name project_id {-control_arg}"); 220 221 person_switch = "0"b; 222 add_switch = "1"b; 223 goto common; 224 225 forum_add_participant$add_project: 226 entry (P_ssu_ptr, P_passport_info_ptr); 227 228 whoami = "add_project"; 229 call setup_request (); 230 if nargs < 1 then 231 call ssu_$abort_line (ssu_ptr, 0, "Usage: apj project_id {-control_arg}"); 232 person_switch = "0"b; 233 add_switch = "1"b; 234 goto common; 235 236 forum_remove_project: frpj: /* Entry to remove project to existing forum */ 237 entry (); 238 239 whoami = "forum_remove_project"; 240 call create_subsystem (); 241 if nargs ^= 2 then 242 call ssu_$abort_line (ssu_ptr, 0, "Usage: frpj meeting_name project_id."); 243 person_switch, add_switch = "0"b; 244 goto common; 245 246 forum_add_participant$remove_project: 247 entry (P_ssu_ptr, P_passport_info_ptr); 248 249 whoami = "remove_project"; 250 call setup_request (); 251 if nargs ^= 1 then 252 call ssu_$abort_line (ssu_ptr, 0, "Usage: rpj project_id"); 253 person_switch, add_switch = "0"b; 254 goto common; 255 256 forum_remove_participant: frpt: /* Entry to remove participant to existing forum */ 257 entry (); 258 259 whoami = "forum_remove_participant"; 260 call create_subsystem (); 261 if nargs ^= 2 then 262 call ssu_$abort_line (ssu_ptr, 0, "Usage: frpt meeting_name person_id"); 263 person_switch = "1"b; 264 add_switch = "0"b; 265 266 goto common; 267 268 forum_add_participant$remove_participant: 269 entry (P_ssu_ptr, P_passport_info_ptr); 270 271 whoami = "remove_participant"; 272 call setup_request (); 273 if nargs ^= 1 then 274 call ssu_$abort_line (ssu_ptr, 0, "Usage: rpt person_id"); 275 person_switch = "1"b; 276 add_switch = "0"b; 277 goto common; 278 279 forum_make_public: fmp: /* Entry to make public an existing forum */ 280 entry (); 281 282 whoami = "forum_make_public"; 283 call create_subsystem (); 284 if nargs < 1 then 285 call ssu_$abort_line (ssu_ptr, 0, "Usage: fmp meeting_name {-control_arg}"); 286 287 add_switch, public_switch = "1"b; 288 goto common; 289 290 forum_add_participant$make_public: 291 entry (P_ssu_ptr, P_passport_info_ptr); 292 293 whoami = "make_public"; 294 call setup_request (); 295 arg_idx = 1; 296 public_switch, add_switch = "1"b; 297 goto common; 298 299 forum_unmake_public: fump: /* Entry to unmake public an existing forum */ 300 entry (); 301 302 whoami = "forum_unmake_public"; 303 call create_subsystem (); 304 if nargs ^= 1 then 305 call ssu_$abort_line (ssu_ptr, 0, "Usage: fump meeting_name"); 306 307 add_switch = "0"b; 308 public_switch = "1"b; 309 goto common; 310 311 forum_add_participant$unmake_public: 312 entry (P_ssu_ptr, P_passport_info_ptr); 313 314 whoami = "unmake_public"; 315 call setup_request (); 316 if nargs ^= 0 then 317 call ssu_$abort_line (ssu_ptr, 0, "Usage: ump"); 318 public_switch = "1"b; 319 add_switch = "0"b; 320 goto common; 321 322 forum_delete: fdl: 323 entry (); 324 325 whoami = "forum_delete"; 326 call cu_$arg_count (nargs); 327 if nargs ^= 1 then do; 328 call com_err_$suppress_name (0, whoami, "Usage: fdl meeting_name."); 329 return; 330 end; 331 332 call cu_$arg_ptr (1, argp, argl, (0)); 333 334 call forum_requests_$find_forum (argument, forum_directory, forum_name, name_len, code); 335 if code ^= 0 then do; 336 call com_err_ (code, whoami, "^a", argument); 337 return; 338 end; 339 340 call forum_$delete_forum (forum_directory, forum_name, code); 341 if code ^= 0 then do; 342 call com_err_ (code, whoami, "Unable to delete the ^a meeting.", substr (forum_name, 1, name_len)); 343 return; 344 end; 345 return; 346 347 setup_request: 348 procedure (); 349 350 subsystem_entry = "1"b; 351 passport_info_ptr = P_passport_info_ptr; 352 ssu_ptr = P_ssu_ptr; 353 354 forum_name = no_suffix_name; 355 call ssu_$arg_count (ssu_ptr, nargs); 356 arg_idx = 2; 357 358 return; 359 end setup_request; 360 361 362 create_subsystem: 363 procedure (); 364 365 declare active_function bit (1) aligned; 366 367 call ssu_$standalone_invocation (ssu_ptr, whoami, "1", cu_$arg_list_ptr (), punt, code); 368 if code ^= 0 then do; /* UGH */ 369 if cu_$af_return_arg ((0), null (), (0)) = 0 then 370 call active_fnc_err_ (code, whoami, "Unable to create subsystem invocation."); 371 else call com_err_ (code, whoami, "Unable to create subsystem invocation."); 372 goto PUNT; 373 end; 374 375 subsystem_entry = "0"b; 376 call ssu_$return_arg (ssu_ptr, nargs, active_function, null (), (0)); 377 if active_function then 378 call ssu_$abort_line (ssu_ptr, error_table_$not_act_fnc); 379 380 return; 381 end create_subsystem; 382 383 punt: proc (); 384 385 go to PUNT; 386 387 end punt; 388 389 end forum_add_participant; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 08/16/86 1354.6 forum_add_participant.pl1 >spec>install>1128>forum_add_participant.pl1 83 1 08/16/86 1354.4 forum_passport.incl.pl1 >spec>install>1128>forum_passport.incl.pl1 85 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>access_mode_values.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. N_ACCESS constant bit(3) initial unaligned dcl 2-11 ref 155 P_passport_info_ptr parameter pointer dcl 39 ref 94 225 246 268 290 311 351 P_ssu_ptr parameter pointer dcl 39 ref 94 225 246 268 290 311 352 RWC_XACL constant bit(36) initial dcl 72 ref 156 RW_ACCESS constant bit(3) initial unaligned dcl 2-11 ref 154 RW_XACL constant bit(36) initial dcl 72 ref 158 R_XACL constant bit(36) initial dcl 72 ref 157 access_name 000302 automatic char(32) level 2 dcl 66 set ref 163* 181* 182* acl 000302 automatic structure level 1 dcl 66 set ref 164 164 183 183 active_fnc_err_ 000016 constant entry external dcl 15 ref 369 active_function 000336 automatic bit(1) dcl 365 set ref 376* 377 add_switch 000272 automatic bit(1) dcl 42 set ref 91* 101* 128 129 155 166* 167* 185* 187* 191 201 203 222* 233* 243* 253* 264* 276* 287* 296* 307* 319* arg_idx 000101 automatic fixed bin(17,0) dcl 42 set ref 121* 122* 125* 125* 126* 172* 173* 174* 295* 356* argl 000264 automatic fixed bin(21,0) dcl 42 set ref 115* 117 117 118 118 126* 128 128 129 129 130 130 174* 176 176 178 181 182 332* 334 334 336 336 argp 000262 automatic pointer dcl 42 set ref 115* 117 118 126* 128 128 129 129 130 174* 176 176 178 181 182 332* 334 336 argument based char unaligned dcl 42 set ref 117* 118* 128 128 129 129 130* 176 176 178 181 182 334* 336* chairman 000266 automatic bit(1) initial dcl 42 set ref 42* 105* 129* 133 151 156 cleanup 000274 stack reference condition dcl 42 ref 107 code 000100 automatic fixed bin(35,0) dcl 42 in procedure "fapt" set ref 117* 118 118* 145* 146 146* 164* 166* 167 167* 183* 185* 187 187* 192* 193 193 193* 196* 334* 335 336* 340* 341 342* 367* 368 369* 371* code 12 000302 automatic fixed bin(35,0) level 2 in structure "acl" dcl 66 in procedure "fapt" set ref 159* com_err_ 000012 constant entry external dcl 15 ref 336 342 371 com_err_$suppress_name 000014 constant entry external dcl 15 ref 328 cu_$af_return_arg 000022 constant entry external dcl 15 ref 369 cu_$arg_count 000024 constant entry external dcl 15 ref 326 cu_$arg_list_ptr 000026 constant entry external dcl 15 ref 367 367 cu_$arg_ptr 000030 constant entry external dcl 15 ref 332 error_table_$badopt 000072 external static fixed bin(35,0) dcl 77 set ref 130* error_table_$inconsistent 000070 external static fixed bin(35,0) dcl 77 set ref 133* error_table_$not_act_fnc 000066 external static fixed bin(35,0) dcl 77 set ref 377* forum_$close_forum 000034 constant entry external dcl 15 ref 109 199 210 forum_$delete_forum 000040 constant entry external dcl 15 ref 340 forum_$open_forum 000032 constant entry external dcl 15 ref 145 forum_$set_forum_acl 000042 constant entry external dcl 15 ref 164 183 forum_$set_switch_idx 000036 constant entry external dcl 15 ref 192 forum_$set_v1_forum_acl 000044 constant entry external dcl 15 ref 166 185 forum_dir 2 based char(168) level 2 packed unaligned dcl 1-14 ref 138 forum_directory 000201 automatic char(168) unaligned dcl 42 set ref 117* 138* 145* 164* 183* 334* 340* forum_et_$no_forum 000062 external static fixed bin(35,0) dcl 77 set ref 141* forum_et_$no_such_user 000064 external static fixed bin(35,0) dcl 77 ref 193 forum_idx 1 based fixed bin(17,0) level 2 dcl 1-14 ref 137 forum_name 000112 automatic char(168) unaligned dcl 42 in procedure "fapt" set ref 119* 140* 146* 167* 187* 201* 203* 334* 340* 342 342 354* forum_name 54 based char(32) level 2 in structure "passport" packed unaligned dcl 1-14 in procedure "fapt" set ref 139 140 354 forum_name_len 64 based fixed bin(17,0) level 2 dcl 1-14 ref 140 354 forum_no 000174 automatic fixed bin(17,0) dcl 42 set ref 103* 109* 137* 141 145* 150 166* 185* 192* 199* 210 210* forum_requests_$find_forum 000020 constant entry external dcl 15 ref 117 334 full_forum_name 000164 automatic char(32) unaligned dcl 42 set ref 117* 119 139* 145* 164* 183* index builtin function dcl 42 ref 176 176 ioa_ 000010 constant entry external dcl 15 ref 201 203 modes 10 000302 automatic bit(36) level 2 dcl 66 set ref 154* name_len 000253 automatic fixed bin(17,0) dcl 42 set ref 117* 119 334* 342 342 nargs 000265 automatic fixed bin(17,0) dcl 42 set ref 89 99 125 218 230 241 251 261 273 284 304 316 326* 327 355* 376* no_suffix_name based char unaligned dcl 1-46 ref 140 354 null builtin function dcl 42 ref 208 369 369 376 376 passport based structure level 1 dcl 1-14 passport_info_ptr 000316 automatic pointer dcl 1-12 set ref 137 138 139 140 140 351* 354 354 person_id 000254 automatic char(22) unaligned dcl 42 set ref 178* 185* 187* 192* 193* 203* person_switch 000270 automatic bit(1) initial dcl 42 set ref 42* 91* 101* 176* 181 185* 203* 221* 232* 243* 253* 263* 275* public_switch 000267 automatic bit(1) initial dcl 42 set ref 42* 121 161 201 287* 296* 308* 318* read_only 000271 automatic bit(1) initial dcl 42 set ref 42* 105* 128* 133 157 166 185 201 203 ssu_$abort_line 000046 constant entry external dcl 15 ref 89 99 118 130 133 141 146 151 167 176 187 193 218 230 241 251 261 273 284 304 316 377 ssu_$arg_count 000050 constant entry external dcl 15 ref 355 ssu_$arg_ptr 000052 constant entry external dcl 15 ref 115 126 174 ssu_$destroy_invocation 000056 constant entry external dcl 15 ref 110 208 ssu_$return_arg 000054 constant entry external dcl 15 ref 376 ssu_$standalone_invocation 000060 constant entry external dcl 15 ref 367 ssu_ptr 000176 automatic pointer dcl 42 set ref 89* 99* 110* 115* 118* 126* 130* 133* 141* 146* 151* 167* 174* 176* 187* 193* 208 208* 218* 230* 241* 251* 261* 273* 284* 304* 316* 352* 355* 367* 376* 377* substr builtin function dcl 42 ref 119 342 342 subsystem_entry 000200 automatic bit(1) dcl 42 set ref 108 114 136 172 199 208 210 350* 375* v2 000273 automatic bit(1) dcl 42 set ref 150* 151 162 180 whoami 000102 automatic char(32) unaligned dcl 42 set ref 87* 97* 216* 228* 239* 249* 259* 271* 282* 293* 302* 314* 325* 328* 336* 342* 367* 369* 371* xmodes 11 000302 automatic bit(36) level 2 dcl 66 set ref 155* 156* 157* 158* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 2-33 E_ACCESS internal static bit(3) initial unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 M_ACCESS internal static bit(3) initial unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 REW_ACCESS internal static bit(3) initial unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS internal static bit(3) initial unaligned dcl 2-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 2-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 S_ACCESS internal static bit(3) initial unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 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 W_ACCESS internal static bit(3) initial unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 forum_area based area(1024) dcl 1-46 forum_data_$central_directory external static char(168) unaligned dcl 1-49 forum_data_$info_directory external static char(168) unaligned dcl 1-49 forum_data_$version_string external static char(8) unaligned dcl 1-49 passport_version_2 internal static fixed bin(17,0) initial dcl 1-44 NAMES DECLARED BY EXPLICIT CONTEXT. PUNT 002334 constant label dcl 208 ref 372 385 common 000673 constant label dcl 103 ref 92 223 234 244 254 266 277 288 297 309 320 create_subsystem 003550 constant entry internal dcl 362 ref 88 217 240 260 283 303 fapj 002371 constant entry external dcl 213 fapt 000544 constant entry external dcl 7 fdl 003236 constant entry external dcl 322 fmp 003002 constant entry external dcl 279 forum_add_participant 000554 constant entry external dcl 7 forum_add_participant$add_participant 000626 constant entry external dcl 94 forum_add_participant$add_project 002451 constant entry external dcl 225 forum_add_participant$make_public 003062 constant entry external dcl 290 forum_add_participant$remove_participant 002730 constant entry external dcl 268 forum_add_participant$remove_project 002577 constant entry external dcl 246 forum_add_participant$unmake_public 003166 constant entry external dcl 311 forum_add_project 002401 constant entry external dcl 213 forum_delete 003246 constant entry external dcl 322 forum_make_public 003012 constant entry external dcl 279 forum_remove_participant 002660 constant entry external dcl 256 forum_remove_project 002530 constant entry external dcl 236 forum_unmake_public 003113 constant entry external dcl 299 frpj 002520 constant entry external dcl 236 frpt 002650 constant entry external dcl 256 fump 003103 constant entry external dcl 299 punt 003765 constant entry internal dcl 383 ref 367 367 setup_request 003516 constant entry internal dcl 347 ref 98 229 250 272 294 315 NAME DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 140 164 164 183 183 354 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4634 4730 3777 4644 Length 5272 3777 74 326 635 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fapt 386 external procedure is an external procedure. on unit on line 107 72 on unit setup_request internal procedure shares stack frame of external procedure fapt. create_subsystem internal procedure shares stack frame of external procedure fapt. punt 64 internal procedure is assigned to an entry variable. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fapt 000100 code fapt 000101 arg_idx fapt 000102 whoami fapt 000112 forum_name fapt 000164 full_forum_name fapt 000174 forum_no fapt 000176 ssu_ptr fapt 000200 subsystem_entry fapt 000201 forum_directory fapt 000253 name_len fapt 000254 person_id fapt 000262 argp fapt 000264 argl fapt 000265 nargs fapt 000266 chairman fapt 000267 public_switch fapt 000270 person_switch fapt 000271 read_only fapt 000272 add_switch fapt 000273 v2 fapt 000302 acl fapt 000316 passport_info_ptr fapt 000336 active_function create_subsystem THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_l_a alloc_char_temp cat_realloc_chars call_ext_out_desc call_ext_out return_mac tra_ext_1 enable_op shorten_stack ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ com_err_$suppress_name cu_$af_return_arg cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr forum_$close_forum forum_$delete_forum forum_$open_forum forum_$set_forum_acl forum_$set_switch_idx forum_$set_v1_forum_acl forum_requests_$find_forum ioa_ ssu_$abort_line ssu_$arg_count ssu_$arg_ptr ssu_$destroy_invocation ssu_$return_arg ssu_$standalone_invocation THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badopt error_table_$inconsistent error_table_$not_act_fnc forum_et_$no_forum forum_et_$no_such_user LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 42 000535 7 000543 87 000562 88 000565 89 000566 91 000616 92 000621 94 000622 97 000634 98 000637 99 000640 101 000670 103 000673 105 000674 107 000676 108 000712 109 000715 110 000726 112 000736 114 000737 115 000741 117 000760 118 001014 119 001050 121 001054 122 001061 125 001063 126 001073 128 001110 129 001130 130 001147 131 001201 133 001203 136 001233 137 001235 138 001240 139 001243 140 001246 141 001252 143 001271 145 001272 146 001317 150 001351 151 001354 154 001404 155 001406 156 001413 157 001420 158 001425 159 001427 161 001430 162 001432 163 001434 164 001437 165 001474 166 001475 167 001537 169 001575 172 001576 173 001603 174 001605 176 001622 178 001677 180 001704 181 001706 182 001727 183 001756 184 002014 185 002015 187 002053 191 002115 192 002120 193 002157 196 002214 199 002215 201 002231 203 002270 206 002333 208 002334 210 002351 211 002367 213 002370 216 002407 217 002412 218 002413 221 002443 222 002444 223 002446 225 002447 228 002457 229 002462 230 002463 232 002513 233 002514 234 002516 236 002517 239 002536 240 002541 241 002542 243 002572 244 002574 246 002575 249 002605 250 002610 251 002611 253 002644 254 002646 256 002647 259 002666 260 002671 261 002672 263 002722 264 002724 266 002725 268 002726 271 002736 272 002741 273 002742 275 002775 276 002777 277 003000 279 003001 282 003020 283 003023 284 003024 287 003054 288 003057 290 003060 293 003070 294 003073 295 003074 296 003076 297 003101 299 003102 302 003121 303 003124 304 003125 307 003160 308 003161 309 003163 311 003164 314 003174 315 003177 316 003200 318 003231 319 003233 320 003234 322 003235 325 003254 326 003257 327 003266 328 003271 329 003321 332 003322 334 003342 335 003375 336 003377 337 003431 340 003432 341 003452 342 003454 343 003513 345 003515 347 003516 350 003517 351 003521 352 003525 354 003530 355 003534 356 003545 358 003547 362 003550 367 003551 368 003621 369 003623 371 003673 372 003717 375 003720 376 003721 377 003743 380 003763 383 003764 385 003772 ----------------------------------------------------------- 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