COMPILATION LISTING OF SEGMENT v1_forum_seg_mgr_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/09/85 1334.9 mst Tue Options: optimize map 1 /* *************************************************************** 2* * * 3* * Copyright (c) 1982 by Massachusetts Institute of Technology * 4* * * 5* *************************************************************** */ 6 7 v1_forum_seg_mgr_$create_forum: 8 procedure (P_dir_name, P_forum_name, P_code); 9 10 /* 11/14/82 Jay Pattin split off from v1_forum_trans_mgr_, changed (add delete)_name to chname */ 11 /* 8/12/83 Jay Pattin added get_uid_file */ 12 13 declare (P_access_name char (*), 14 P_acl_ptr ptr, 15 P_acl_count fixed bin, 16 P_code fixed bin (35), 17 P_dir_name char (*), 18 P_forum_idx fixed bin, 19 P_forum_name char (*), 20 P_new_name char (*), 21 P_old_name char (*), 22 P_output_area ptr, 23 P_real_dir char (*), 24 P_real_name char (*), 25 P_uid bit (36) aligned, 26 P_userp bit (1) aligned, 27 P_setp bit (1) aligned, 28 P_writep bit (1) aligned) 29 parameter; 30 31 declare access_name char (32), 32 acl_count fixed bin, 33 acl_ptr ptr, 34 anon_sw bit (1) aligned, 35 attendee_idx fixed bin, 36 code fixed bin (35), 37 created bit (1) aligned, 38 dir_name char (168), 39 dirname_len fixed bin, 40 directory char (dirname_len) based (addr (dir_name)), 41 egress label variable, 42 forum_name char (32), 43 forum_name_len fixed bin, 44 idx fixed bin, 45 inner_ring fixed bin (3), 46 new_name char (32), 47 old_name char (32), 48 old_name_len fixed bin, 49 person_id char (22), 50 privileged bit (1) aligned, 51 proc_name char (32), 52 project_id char (9), 53 real_dir char (168), 54 real_name char (32), 55 user_ring fixed bin (3); 56 57 declare 1 acl_term aligned based, 58 2 access_name char (32), 59 2 modes bit (36), 60 2 xmodes bit (36), 61 2 status_code fixed bin (35); 62 63 declare 1 one_acl like acl_term; 64 declare 1 two_acls (2) aligned like acl_term; 65 66 declare check_star_name_$entry entry (char (*), fixed bin (35)), 67 v1_forum_mgr_$get_ptrs entry (fixed bin, ptr, ptr, fixed bin, bit (1) aligned, fixed bin (35)), 68 v1_forum_mgr_$initiate entry (char (*), char (*), bit (1) aligned, ptr, ptr, fixed bin (35)), 69 v1_forum_mgr_$terminate entry (ptr, ptr), 70 v1_forum_mgr_$unlock entry (ptr), 71 get_group_id_ entry returns (char (32)), 72 get_ring_ entry returns (fixed bin (3)), 73 hcs_$add_acl_entries entry (char (*), char (*), ptr, fixed bin, fixed bin (35)), 74 hcs_$append_branch entry (char (*), char (*), fixed bin (5), fixed bin (35)), 75 hcs_$chname_seg entry (ptr, char (*), char (*), fixed bin (35)), 76 hcs_$delentry_file entry (char (*), char (*), fixed bin (35)), 77 hcs_$delentry_seg entry (ptr, fixed bin (35)), 78 hcs_$delete_acl_entries entry (char(*), char(*), ptr, fixed bin, fixed bin(35)), 79 hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)), 80 hcs_$get_link_target entry (char (*), char (*), char (*), char (*), fixed bin (35)), 81 hcs_$get_uid_seg entry (ptr, bit (36) aligned, fixed bin (35)), 82 hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)), 83 hcs_$level_get entry returns (fixed bin (3)), 84 hcs_$level_set entry (fixed bin (3)), 85 hcs_$list_acl entry (char(*), char(*), ptr, ptr, ptr, fixed bin, fixed bin(35)), 86 hcs_$replace_acl entry (char (*), char (*), ptr, fixed bin, bit (1), fixed bin (35)), 87 hcs_$status_minf entry (char (*), char (*), fixed bin (1), fixed bin (2), fixed bin (24), fixed bin (35)), 88 hcs_$terminate_noname entry (ptr, fixed bin (35)), 89 set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)), 90 set_lock_$unlock entry (bit (36) aligned, fixed bin (35)), 91 user_info_$login_data entry (char (*), char (*), char (*), fixed bin, fixed bin, fixed bin, 92 fixed bin (71), char (*)); 93 94 declare (error_table_$badstar, 95 error_table_$namedup, 96 error_table_$noentry, 97 forum_error_table_$anon_chairman, 98 forum_error_table_$blank_forum_name, 99 forum_error_table_$chairman_only, 100 forum_error_table_$long_forum_name, 101 forum_error_table_$no_control_suffix, 102 forum_error_table_$not_a_forum, 103 forum_error_table_$unexpected_fault, 104 forum_error_table_$you_twit) 105 fixed bin (35) external static; 106 107 declare (addr, clock, length, null, rtrim, string, substr, unspec) 108 builtin; 109 declare (any_other, cleanup) condition; 110 1 1 /* START OF: forum_structures.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 1 2 1 3 declare forum_control_ptr ptr, 1 4 proceedings_ptr ptr; 1 5 1 6 declare 1 forum_control aligned based (forum_control_ptr), 1 7 2 forum_lock bit (36), /* Proceedings lock. */ 1 8 2 next_trans_loc fixed bin (35), /* Characters in proceedings. */ 1 9 2 flags unaligned, 1 10 3 mbz0 bit (3) unaligned, /* Already wasted on acl stuff at MIT */ 1 11 3 msg_init bit (1) unaligned, /* On if message info is valid */ 1 12 3 am_init bit (1) unaligned, /* next value is valid */ 1 13 3 am_print_acl_msg bit (1) unaligned, /* what administrator says */ 1 14 3 cm_init bit (1) unaligned, /* next value is valid */ 1 15 3 cm_print_acl_msg bit (1) unaligned, /* what chairman says */ 1 16 3 adjourned bit (1) unaligned, /* temporarily out of service, per chairman request */ 1 17 3 mbz1 bit (9) unaligned, /* Future expansion */ 1 18 2 no_transactions fixed bin unaligned,/* Transaction sequence number. */ 1 19 2 message_loc fixed bin unaligned,/* location of chairman message in proceedings seg */ 1 20 2 no_attendees fixed bin unaligned,/* Number of participants. */ 1 21 2 mbz2 bit (18) unaligned, 1 22 2 no_deleted fixed bin unaligned, 1 23 2 chairman unaligned, 1 24 3 person_id char (22), 1 25 3 project_id char (9), 1 26 2 attendee (500), /* Attendee data. */ 1 27 3 person_id char (22) unaligned, 1 28 3 project_id char (11) unaligned, 1 29 3 attending bit (1) unaligned, 1 30 3 deleted bit (1) unaligned, 1 31 3 interesting bit (1) unaligned, /* tentative, not used yet */ 1 32 3 notify bit (1) unaligned, 1 33 3 removed bit (1) unaligned, /* on if set_participate_off used */ 1 34 3 write_allowed bit (1) unaligned, 1 35 3 acl_change_pending bit (1) unaligned, 1 36 3 message_changed bit (1) unaligned, 1 37 3 unused_flags bit (1) unaligned, /* Spare flag. */ 1 38 3 last_time_attended fixed bin (71), /* date/time last attended */ 1 39 3 lock_id bit (36) aligned, /* Used to check validity of attending. */ 1 40 3 highest_trans_seen fixed bin, 1 41 3 process_id bit (36), 1 42 3 public_wakeup_chan fixed bin (71), /* Transaction channel. */ 1 43 2 transactions (0 refer (forum_control.no_transactions)) aligned like one_transaction; 1 44 1 45 declare 1 one_transaction aligned based, 1 46 2 person_id char (22) unaligned, 1 47 2 project_id char (11) unaligned, 1 48 2 deleted bit (1) unaligned, /* logically removed */ 1 49 2 gone bit (1) unaligned, /* physically removed via compaction */ 1 50 2 unfilled bit (1) unaligned, /* on if trans entered unfilled */ 1 51 2 deleted_by_author bit (1) unaligned, /* as opposed to deleted by chairman */ 1 52 2 unused bit (23) unaligned, 1 53 2 prior_ref_index fixed bin, /* index to trans I refer to */ 1 54 2 next_ref_index fixed bin, /* index to trans referring to me */ 1 55 2 subject char (72) unaligned, 1 56 2 time fixed bin (71), /* date-time of entry */ 1 57 2 offset fixed bin (35), /* Where text of transaction begins */ 1 58 2 length fixed bin (21); /* in bytes */ 1 59 1 60 declare ipc_message fixed bin (71) based (msg_ptr), /* message for inter-process calls */ 1 61 msg_ptr ptr static; 1 62 1 63 declare 1 forum_message aligned, /* what we're trying to tell other process(es) */ 1 64 2 forum_uid bit (36) aligned, /* what forum */ 1 65 2 index fixed bin; /* who did it? */ 1 66 1 67 /* END OF: forum_structures.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 111 112 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 */ 113 114 115 call initialize (CREATE_FORUM_EXIT); 116 117 forum_name = P_forum_name; /* copy into inner ring */ 118 dir_name = P_dir_name; 119 created = "0"b; 120 on cleanup call hcs_$level_set (user_ring); 121 call hcs_$level_set (inner_ring); 122 123 call validate_name (forum_name); 124 proc_name = substr (forum_name, 1, forum_name_len) || ".proceedings"; 125 126 call check_star_name_$entry (forum_name, code); 127 if code ^= 0 then call error (error_table_$badstar); 128 129 if anon_sw then call error (forum_error_table_$anon_chairman); 130 131 call hcs_$status_minf (dir_name, forum_name, 0, (0), (0), code); 132 if code = 0 then call error (error_table_$namedup); 133 else if code ^= error_table_$noentry then call error (code); 134 135 call hcs_$status_minf (dir_name, proc_name, 0, (0), (0), code); 136 if code = 0 then call error (error_table_$namedup); 137 else if code ^= error_table_$noentry then call error (code); 138 139 created = "1"b; 140 call hcs_$append_branch (dir_name, forum_name, RW_ACCESS_BIN, code); 141 if code ^= 0 then call error (code); 142 call hcs_$append_branch (dir_name, proc_name, RW_ACCESS_BIN, code); 143 if code ^= 0 then call error (code); 144 145 two_acls (1).access_name = person_id || ".*.*"; 146 two_acls (1).modes = RW_ACCESS; 147 two_acls (1).xmodes = "0"b; 148 two_acls (2).access_name = "*.*.*"; /* Give the world r Access to the forum_control segment */ 149 two_acls (2).modes = R_ACCESS; 150 two_acls (2).xmodes = "0"b; 151 call hcs_$replace_acl (dir_name, forum_name, addr (two_acls), 2, "0"b, code); 152 if code ^= 0 then call error (code); 153 154 two_acls (2).access_name = "*.*.*"; /* Give the world null Access to the proceedings segment */ 155 two_acls (2).modes = N_ACCESS; 156 two_acls (2).xmodes = "0"b; 157 call hcs_$replace_acl (dir_name, proc_name, addr (two_acls), 2, "0"b, code); 158 if code ^= 0 then call error (code); 159 160 call hcs_$initiate (dir_name, forum_name, "", 0, 0, forum_control_ptr, code); 161 if code ^= 0 then call error (code); 162 call set_lock_$lock (forum_control.forum_lock, 3, code); 163 if code ^= 0 then call error (code); 164 165 forum_control.next_trans_loc = 0; /* initialize some stuff */ 166 string (forum_control.flags) = ""b; 167 forum_control.no_transactions = 0; 168 forum_control.no_attendees = 1; 169 forum_control.no_deleted = 0; 170 forum_control.chairman.person_id = person_id; /* we are the chairman */ 171 forum_control.chairman.project_id = project_id; 172 unspec (forum_control.attendee (1)) = ""b; 173 forum_control.attendee (1).person_id = person_id; 174 forum_control.attendee (1).project_id = project_id; 175 forum_control.attendee (1).last_time_attended = clock (); 176 177 call set_lock_$unlock (forum_control.forum_lock, (0)); 178 call hcs_$terminate_noname (forum_control_ptr, code); 179 if code ^= 0 then call error (code); 180 181 call hcs_$level_set (user_ring); 182 P_code = 0; 183 return; 184 185 CREATE_FORUM_EXIT: 186 if created then do; 187 call hcs_$delentry_file (dir_name, forum_name, (0)); 188 call hcs_$delentry_file (dir_name, proc_name, (0)); 189 end; 190 191 P_code = code; 192 call hcs_$level_set (user_ring); 193 return; 194 195 v1_forum_seg_mgr_$chname_forum: 196 entry (P_dir_name, P_forum_name, P_old_name, P_new_name, P_code); 197 198 call initialize (CHNAME_EXIT); 199 on cleanup begin; 200 call v1_forum_mgr_$terminate (forum_control_ptr, proceedings_ptr); 201 call hcs_$level_set (user_ring); 202 end; 203 on any_other call error (forum_error_table_$unexpected_fault); 204 205 call hcs_$level_set (inner_ring); 206 call v1_forum_mgr_$initiate (P_dir_name, P_forum_name, "0"b, forum_control_ptr, proceedings_ptr, code); 207 if code ^= 0 then call error (code); 208 209 call chname (); 210 211 CHNAME_EXIT: 212 call v1_forum_mgr_$terminate (forum_control_ptr, proceedings_ptr); 213 call hcs_$level_set (user_ring); 214 P_code = code; 215 return; 216 217 v1_forum_seg_mgr_$chname_forum_idx: 218 entry (P_forum_idx, P_old_name, P_new_name, P_code); 219 220 call initialize (CHNAME_IDX_EXIT); 221 on cleanup begin; 222 call v1_forum_mgr_$unlock (forum_control_ptr); 223 call hcs_$level_set (user_ring); 224 end; 225 on any_other call error (forum_error_table_$unexpected_fault); 226 227 call hcs_$level_set (inner_ring); 228 call v1_forum_mgr_$get_ptrs (P_forum_idx, forum_control_ptr, proceedings_ptr, attendee_idx, ("0"b), code); 229 if code ^= 0 then call error (code); 230 231 call chname (); 232 233 CHNAME_IDX_EXIT: 234 call v1_forum_mgr_$unlock (forum_control_ptr); 235 call hcs_$level_set (user_ring); 236 P_code = code; 237 return; 238 239 chname: 240 proc (); 241 242 if anon_sw | forum_control.chairman.person_id ^= person_id then 243 call error (forum_error_table_$chairman_only); 244 245 old_name = P_old_name; 246 if old_name ^= "" then do; 247 call validate_name (old_name); 248 old_name_len = forum_name_len; 249 end; 250 251 new_name = P_new_name; 252 if new_name ^= "" then do; 253 call validate_name (new_name); 254 call check_star_name_$entry (new_name, code); 255 if code ^= 0 then call error (error_table_$badstar); 256 end; 257 258 call hcs_$chname_seg (forum_control_ptr, old_name, new_name, code); 259 if code ^= 0 then call error (code); 260 261 if old_name ^= "" then 262 old_name = substr (old_name, 1, old_name_len) || ".proceedings"; 263 if new_name ^= "" then 264 new_name = substr (new_name, 1, forum_name_len) || ".proceedings"; 265 266 call hcs_$chname_seg (proceedings_ptr, old_name, new_name, code); 267 if code ^= 0 then call error (code); 268 269 return; 270 end chname; 271 272 v1_forum_seg_mgr_$priv_delete_forum: 273 entry (P_dir_name, P_forum_name, P_code); 274 275 privileged = "1"b; 276 goto DELETE_COMMON; 277 278 v1_forum_seg_mgr_$delete_forum: 279 entry (P_dir_name, P_forum_name, P_code); 280 281 privileged = "0"b; 282 283 DELETE_COMMON: 284 call initialize (DELETE_FORUM_EXIT); 285 286 on any_other call error (forum_error_table_$unexpected_fault); 287 on cleanup call hcs_$level_set (user_ring); 288 289 call hcs_$level_set (inner_ring); 290 call force_acl (); /* This will fail if no 'm' permission on dir */ 291 292 call v1_forum_mgr_$initiate (P_dir_name, P_forum_name, "1"b, forum_control_ptr, proceedings_ptr, code); 293 if code ^= 0 then call error (code); /* Get pointers to forums */ 294 295 unspec (forum_control.chairman) = ""b; 296 297 /* From here on this is no longer a valid forum... if we blow out from here down, a 298* System maintainer will have to flush the thing */ 299 300 call hcs_$delentry_seg (forum_control_ptr, code); 301 call hcs_$delentry_seg (proceedings_ptr, code); 302 303 DELETE_FORUM_EXIT: 304 call hcs_$level_set (user_ring); 305 P_code = code; 306 return; 307 308 v1_forum_seg_mgr_$priv_set_forum_acl: 309 entry (P_dir_name, P_forum_name, P_access_name, P_userp, P_setp, P_writep, P_code); 310 311 privileged = "1"b; 312 call initialize (SET_FORUM_ACL_EXIT); 313 314 on any_other call error (forum_error_table_$unexpected_fault); 315 call force_acl (); 316 317 on cleanup begin; 318 call v1_forum_mgr_$terminate (forum_control_ptr, proceedings_ptr); 319 call hcs_$level_set (user_ring); 320 end; 321 322 call hcs_$level_set (inner_ring); 323 call v1_forum_mgr_$initiate (P_dir_name, P_forum_name, "1"b, forum_control_ptr, proceedings_ptr, code); 324 if code ^= 0 then call error (code); 325 326 access_name = P_access_name; /* So he can remove own acl */ 327 if P_userp & access_name = person_id then call v1_forum_mgr_$unlock (forum_control_ptr); 328 329 goto SET_ACL_COMMON; 330 331 332 333 v1_forum_seg_mgr_$set_forum_acl: 334 entry (P_forum_idx, P_access_name, P_userp, P_setp, P_writep, P_code); 335 336 privileged = "0"b; 337 call initialize (SET_FORUM_ACL_EXIT); 338 339 on cleanup begin; 340 call v1_forum_mgr_$unlock (forum_control_ptr); 341 call hcs_$level_set (user_ring); 342 end; 343 on any_other call error (forum_error_table_$unexpected_fault); 344 345 call hcs_$level_set (inner_ring); 346 call v1_forum_mgr_$get_ptrs (P_forum_idx, forum_control_ptr, proceedings_ptr, attendee_idx, ("0"b), code); 347 if code ^= 0 then call error (code); 348 if anon_sw | forum_control.chairman.person_id ^= person_id then call error (forum_error_table_$chairman_only); 349 access_name = P_access_name; 350 if ((^P_setp & P_userp) | (P_setp & ^P_writep)) & access_name = person_id 351 then call error (forum_error_table_$you_twit); 352 353 SET_ACL_COMMON: 354 if P_userp then one_acl.access_name = rtrim (access_name) || ".*.*"; 355 else one_acl.access_name = "*." || rtrim (access_name) || ".*"; 356 if P_setp then one_acl.modes = RW_ACCESS; 357 else one_acl.modes = R_ACCESS; 358 one_acl.xmodes = "0"b; 359 call hcs_$fs_get_path_name (forum_control_ptr, dir_name, (0), forum_name, code); 360 if code ^= 0 then call error (code); 361 forum_name_len = length (rtrim (forum_name)) - length (".control"); 362 363 call hcs_$add_acl_entries (dir_name, forum_name, addr (one_acl), 1, code); 364 if code ^= 0 then call error (code); 365 366 if P_setp & ^P_writep then one_acl.modes = R_ACCESS; 367 else if ^P_setp then one_acl.modes = N_ACCESS; /* When removing people, leave them r access to forum_control segment 368* but null access to proceedings segment */ 369 370 call hcs_$add_acl_entries (dir_name, substr (forum_name, 1, forum_name_len) || ".proceedings", 371 addr (one_acl), 1, code); 372 if code ^= 0 then call error (code); 373 374 do idx = 1 to forum_control.no_attendees; 375 forum_control.attendee (idx).acl_change_pending = "1"b; 376 end; 377 if ^privileged then forum_control.attendee (attendee_idx).acl_change_pending = "0"b; 378 379 SET_FORUM_ACL_EXIT: 380 381 if privileged then do; 382 call delete_forced_acl (); 383 call v1_forum_mgr_$terminate (forum_control_ptr, proceedings_ptr); 384 end; 385 else call v1_forum_mgr_$unlock (forum_control_ptr); 386 387 call hcs_$level_set (user_ring); 388 P_code = code; 389 return; 390 391 validate_name: 392 proc (name); 393 394 declare name char (32); 395 396 if name = "" then call error (forum_error_table_$blank_forum_name); 397 forum_name_len = length (rtrim (name)) - length (".control"); 398 if forum_name_len < 1 then 399 call error (forum_error_table_$no_control_suffix); 400 else if forum_name_len > 20 then call error (forum_error_table_$long_forum_name); 401 if substr (name, forum_name_len + 1) ^= ".control" then 402 call error (forum_error_table_$no_control_suffix); 403 404 return; 405 end validate_name; 406 407 408 force_acl: 409 procedure (); 410 411 one_acl.access_name = get_group_id_ (); 412 one_acl.modes = RW_ACCESS; 413 one_acl.xmodes = ""b; 414 415 call hcs_$add_acl_entries (P_dir_name, P_forum_name, addr (one_acl), 1, code); 416 if code ^= 0 then 417 if code = error_table_$noentry then call error (forum_error_table_$not_a_forum); 418 else call error (code); 419 420 forum_name_len = length (rtrim (P_forum_name)) - length (".control"); 421 call hcs_$add_acl_entries (P_dir_name, substr (P_forum_name, 1, forum_name_len) || ".proceedings", 422 addr (one_acl), 1, code); 423 if code ^= 0 then 424 if code = error_table_$noentry then call error (forum_error_table_$not_a_forum); 425 else call error (code); 426 427 return; 428 end force_acl; 429 430 delete_forced_acl: 431 procedure (); 432 433 declare 1 delete_acls aligned, 434 2 access_name char (32), 435 2 status fixed bin (35); 436 437 delete_acls.access_name = get_group_id_ (); 438 call hcs_$delete_acl_entries (P_dir_name, P_forum_name, addr (delete_acls), 1, (0)); 439 440 forum_name_len = length (rtrim (P_forum_name)) - length (".control"); 441 call hcs_$delete_acl_entries (P_dir_name, substr (P_forum_name, 1, forum_name_len) || ".proceedings", 442 addr (delete_acls), 1, (0)); 443 444 return; 445 end delete_forced_acl; 446 447 v1_forum_seg_mgr_$list_forum_acl: 448 entry (P_dir_name, P_forum_name, P_output_area, P_acl_ptr, P_acl_count, P_code); 449 450 call initialize (LIST_ACL_EXIT); 451 452 dir_name = P_dir_name; 453 forum_name = P_forum_name; 454 call validate_name (forum_name); 455 456 forum_name = substr (forum_name, 1, forum_name_len) || ".proceedings"; 457 on cleanup call hcs_$level_set (user_ring); 458 call hcs_$level_set (inner_ring); 459 460 call hcs_$list_acl (dir_name, forum_name, P_output_area, acl_ptr, null (), acl_count, code); 461 if code ^= 0 then call error (code); 462 call hcs_$level_set (user_ring); 463 464 P_acl_ptr = acl_ptr; 465 P_acl_count = acl_count; 466 P_code = 0; 467 return; 468 469 LIST_ACL_EXIT: 470 call hcs_$level_set (user_ring); 471 P_acl_ptr = null (); 472 P_acl_count = 0; 473 P_code = code; 474 return; 475 476 v1_forum_seg_mgr_$get_forum_path: 477 entry (P_dir_name, P_forum_name, P_real_dir, P_real_name, P_code); 478 479 call initialize (GET_MEETING_PATH_EXIT); 480 dir_name = P_dir_name; 481 forum_name = P_forum_name; 482 call validate_name (forum_name); 483 484 on cleanup call hcs_$level_set (user_ring); 485 call hcs_$level_set (inner_ring); 486 487 call hcs_$get_link_target (dir_name, forum_name, real_dir, real_name, code); 488 if code ^= 0 then call error (code); 489 call validate_name (real_name); /* make sure target is validly named */ 490 491 call hcs_$level_set (user_ring); 492 P_real_dir = real_dir; 493 P_real_name = real_name; 494 P_code = 0; 495 return; 496 497 GET_MEETING_PATH_EXIT: 498 call hcs_$level_set (user_ring); 499 P_real_dir = ""; 500 P_real_name = ""; 501 P_code = code; 502 return; 503 504 v1_forum_seg_mgr_$get_forum_path_idx: 505 entry (P_forum_idx, P_real_dir, P_real_name, P_code); 506 507 call initialize (GET_MEETING_PATH_EXIT); 508 509 on cleanup call v1_forum_mgr_$unlock (forum_control_ptr); 510 511 call v1_forum_mgr_$get_ptrs (P_forum_idx, forum_control_ptr, proceedings_ptr, (0), ("0"b), code); 512 if code ^= 0 then call error (code); 513 514 call hcs_$fs_get_path_name (forum_control_ptr, dir_name, dirname_len, real_name, code); 515 if code ^= 0 then call error (code); 516 517 call v1_forum_mgr_$unlock (forum_control_ptr); 518 P_real_dir = directory; 519 P_real_name = real_name; 520 P_code = 0; 521 return; 522 523 v1_forum_seg_mgr_$get_uid_file: 524 entry (P_dir_name, P_forum_name, P_uid, P_code); 525 526 call initialize (UID_EXIT); 527 on cleanup begin; 528 call v1_forum_mgr_$terminate (forum_control_ptr, proceedings_ptr); 529 call hcs_$level_set (user_ring); 530 end; 531 on any_other call error (forum_error_table_$unexpected_fault); 532 533 call hcs_$level_set (inner_ring); 534 call v1_forum_mgr_$initiate (P_dir_name, P_forum_name, "0"b, forum_control_ptr, proceedings_ptr, code); 535 if code ^= 0 then call error (code); 536 537 call hcs_$get_uid_seg (forum_control_ptr, P_uid, code); 538 if code ^= 0 then call error (code); 539 540 UID_EXIT: call v1_forum_mgr_$terminate (forum_control_ptr, proceedings_ptr); 541 call hcs_$level_set (user_ring); 542 P_code = code; 543 return; 544 545 initialize: 546 procedure (P_egress); 547 548 declare P_egress label variable, 549 anon fixed bin; 550 551 egress = P_egress; 552 inner_ring = get_ring_ (); 553 user_ring = hcs_$level_get (); 554 call user_info_$login_data (person_id, project_id, (""), anon, 0, 0, 0, ("")); 555 anon_sw = (anon = 1); 556 557 forum_control_ptr, proceedings_ptr = null (); /* no forum initialized yet, this call */ 558 code = 0; /* no errors yet either */ 559 560 return; 561 end initialize; 562 563 error: 564 procedure (error_code); 565 566 declare error_code fixed bin (35); 567 568 code = error_code; 569 goto egress; /* lets PUNT */ 570 571 end error; 572 573 end v1_forum_seg_mgr_$create_forum; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/08/85 1131.7 v1_forum_seg_mgr_.pl1 >special_ldd>online>41-15-04/10/85>v1_forum_seg_mgr_.pl1 111 1 10/31/84 1115.4 v1_forum_structures.incl.pl1 >ldd>include>v1_forum_structures.incl.pl1 113 2 04/09/85 1109.7 access_mode_values.incl.pl1 >special_ldd>online>41-15-04/10/85>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 367 P_access_name parameter char unaligned dcl 13 ref 308 326 333 349 P_acl_count parameter fixed bin(17,0) dcl 13 set ref 447 465* 472* P_acl_ptr parameter pointer dcl 13 set ref 447 464* 471* P_code parameter fixed bin(35,0) dcl 13 set ref 7 182* 191* 195 214* 217 236* 272 278 305* 308 333 388* 447 466* 473* 476 494* 501* 504 520* 523 542* P_dir_name parameter char unaligned dcl 13 set ref 7 118 195 206* 272 278 292* 308 323* 415* 421* 438* 441* 447 452 476 480 523 534* P_egress parameter label variable dcl 548 ref 545 551 P_forum_idx parameter fixed bin(17,0) dcl 13 set ref 217 228* 333 346* 504 511* P_forum_name parameter char unaligned dcl 13 set ref 7 117 195 206* 272 278 292* 308 323* 415* 420 421 438* 440 441 447 453 476 481 523 534* P_new_name parameter char unaligned dcl 13 ref 195 217 251 P_old_name parameter char unaligned dcl 13 ref 195 217 245 P_output_area parameter pointer dcl 13 set ref 447 460* P_real_dir parameter char unaligned dcl 13 set ref 476 492* 499* 504 518* P_real_name parameter char unaligned dcl 13 set ref 476 493* 500* 504 519* P_setp parameter bit(1) dcl 13 ref 308 333 350 350 356 366 367 P_uid parameter bit(36) dcl 13 set ref 523 537* P_userp parameter bit(1) dcl 13 ref 308 327 333 350 353 P_writep parameter bit(1) dcl 13 ref 308 333 350 366 RW_ACCESS constant bit(3) initial unaligned dcl 2-11 ref 146 356 412 RW_ACCESS_BIN 000000 constant fixed bin(5,0) initial dcl 2-36 set ref 140* 142* R_ACCESS constant bit(3) initial unaligned dcl 2-11 ref 149 357 366 access_name 000354 automatic char(32) array level 2 in structure "two_acls" dcl 64 in procedure "v1_forum_seg_mgr_$create_forum" set ref 145* 148* 154* access_name 000100 automatic char(32) unaligned dcl 31 in procedure "v1_forum_seg_mgr_$create_forum" set ref 326* 327 349* 350 353 355 access_name 000341 automatic char(32) level 2 in structure "one_acl" packed unaligned dcl 63 in procedure "v1_forum_seg_mgr_$create_forum" set ref 353* 355* 411* access_name 000530 automatic char(32) level 2 in structure "delete_acls" dcl 433 in procedure "delete_forced_acl" set ref 437* acl_change_pending 26(15) based bit(1) array level 3 packed unaligned dcl 1-6 set ref 375* 377* acl_count 000110 automatic fixed bin(17,0) dcl 31 set ref 460* 465 acl_ptr 000112 automatic pointer dcl 31 set ref 460* 464 acl_term based structure level 1 dcl 57 addr builtin function dcl 107 ref 151 151 157 157 363 363 370 370 415 415 421 421 438 438 441 441 518 anon 000550 automatic fixed bin(17,0) dcl 548 set ref 554* 555 anon_sw 000114 automatic bit(1) dcl 31 set ref 129 242 348 555* any_other 000402 stack reference condition dcl 109 ref 203 225 286 314 343 531 attendee 16 based structure array level 2 dcl 1-6 set ref 172* attendee_idx 000115 automatic fixed bin(17,0) dcl 31 set ref 228* 346* 377 chairman 5 based structure level 2 packed unaligned dcl 1-6 set ref 295* check_star_name_$entry 000010 constant entry external dcl 66 ref 126 254 cleanup 000410 stack reference condition dcl 109 ref 120 199 221 287 317 339 457 484 509 527 clock builtin function dcl 107 ref 175 code 000116 automatic fixed bin(35,0) dcl 31 set ref 126* 127 131* 132 133 133* 135* 136 137 137* 140* 141 141* 142* 143 143* 151* 152 152* 157* 158 158* 160* 161 161* 162* 163 163* 178* 179 179* 191 206* 207 207* 214 228* 229 229* 236 254* 255 258* 259 259* 266* 267 267* 292* 293 293* 300* 301* 305 323* 324 324* 346* 347 347* 359* 360 360* 363* 364 364* 370* 372 372* 388 415* 416 416 418* 421* 423 423 425* 460* 461 461* 473 487* 488 488* 501 511* 512 512* 514* 515 515* 534* 535 535* 537* 538 538* 542 558* 568* created 000117 automatic bit(1) dcl 31 set ref 119* 139* 185 delete_acls 000530 automatic structure level 1 dcl 433 set ref 438 438 441 441 dir_name 000120 automatic char(168) unaligned dcl 31 set ref 118* 131* 135* 140* 142* 151* 157* 160* 187* 188* 359* 363* 370* 452* 460* 480* 487* 514* 518 directory based char unaligned dcl 31 ref 518 dirname_len 000172 automatic fixed bin(17,0) dcl 31 set ref 514* 518 egress 000174 automatic label variable dcl 31 set ref 551* 569 error_code parameter fixed bin(35,0) dcl 566 ref 563 568 error_table_$badstar 000074 external static fixed bin(35,0) dcl 94 set ref 127* 255* error_table_$namedup 000076 external static fixed bin(35,0) dcl 94 set ref 132* 136* error_table_$noentry 000100 external static fixed bin(35,0) dcl 94 ref 133 137 416 423 flags 2 based structure level 2 packed unaligned dcl 1-6 set ref 166* forum_control based structure level 1 dcl 1-6 forum_control_ptr 000416 automatic pointer dcl 1-3 set ref 160* 162 165 166 167 168 169 170 171 172 173 174 175 177 178* 200* 206* 211* 222* 228* 233* 242 258* 292* 295 300* 318* 323* 327* 340* 346* 348 359* 374 375 377 383* 385* 509* 511* 514* 517* 528* 534* 537* 540* 557* forum_error_table_$anon_chairman 000102 external static fixed bin(35,0) dcl 94 set ref 129* forum_error_table_$blank_forum_name 000104 external static fixed bin(35,0) dcl 94 set ref 396* forum_error_table_$chairman_only 000106 external static fixed bin(35,0) dcl 94 set ref 242* 348* forum_error_table_$long_forum_name 000110 external static fixed bin(35,0) dcl 94 set ref 400* forum_error_table_$no_control_suffix 000112 external static fixed bin(35,0) dcl 94 set ref 398* 401* forum_error_table_$not_a_forum 000114 external static fixed bin(35,0) dcl 94 set ref 416* 423* forum_error_table_$unexpected_fault 000116 external static fixed bin(35,0) dcl 94 set ref 203* 225* 286* 314* 343* 531* forum_error_table_$you_twit 000120 external static fixed bin(35,0) dcl 94 set ref 350* forum_lock based bit(36) level 2 dcl 1-6 set ref 162* 177* forum_name 000200 automatic char(32) unaligned dcl 31 set ref 117* 123* 124 126* 131* 140* 151* 160* 187* 359* 361 363* 370 453* 454* 456* 456 460* 481* 482* 487* forum_name_len 000210 automatic fixed bin(17,0) dcl 31 set ref 124 248 263 361* 370 397* 398 400 401 420* 421 440* 441 456 get_group_id_ 000022 constant entry external dcl 66 ref 411 437 get_ring_ 000024 constant entry external dcl 66 ref 552 hcs_$add_acl_entries 000026 constant entry external dcl 66 ref 363 370 415 421 hcs_$append_branch 000030 constant entry external dcl 66 ref 140 142 hcs_$chname_seg 000032 constant entry external dcl 66 ref 258 266 hcs_$delentry_file 000034 constant entry external dcl 66 ref 187 188 hcs_$delentry_seg 000036 constant entry external dcl 66 ref 300 301 hcs_$delete_acl_entries 000040 constant entry external dcl 66 ref 438 441 hcs_$fs_get_path_name 000042 constant entry external dcl 66 ref 359 514 hcs_$get_link_target 000044 constant entry external dcl 66 ref 487 hcs_$get_uid_seg 000046 constant entry external dcl 66 ref 537 hcs_$initiate 000050 constant entry external dcl 66 ref 160 hcs_$level_get 000052 constant entry external dcl 66 ref 553 hcs_$level_set 000054 constant entry external dcl 66 ref 120 121 181 192 201 205 213 223 227 235 287 289 303 319 322 341 345 387 457 458 462 469 484 485 491 497 529 533 541 hcs_$list_acl 000056 constant entry external dcl 66 ref 460 hcs_$replace_acl 000060 constant entry external dcl 66 ref 151 157 hcs_$status_minf 000062 constant entry external dcl 66 ref 131 135 hcs_$terminate_noname 000064 constant entry external dcl 66 ref 178 idx 000211 automatic fixed bin(17,0) dcl 31 set ref 374* 375* inner_ring 000212 automatic fixed bin(3,0) dcl 31 set ref 121* 205* 227* 289* 322* 345* 458* 485* 533* 552* last_time_attended 30 based fixed bin(71,0) array level 3 dcl 1-6 set ref 175* length builtin function dcl 107 ref 361 361 397 397 420 420 440 440 modes 10 000341 automatic bit(36) level 2 in structure "one_acl" packed unaligned dcl 63 in procedure "v1_forum_seg_mgr_$create_forum" set ref 356* 357* 366* 367* 412* modes 10 000354 automatic bit(36) array level 2 in structure "two_acls" dcl 64 in procedure "v1_forum_seg_mgr_$create_forum" set ref 146* 149* 155* name parameter char(32) unaligned dcl 394 ref 391 396 397 401 new_name 000213 automatic char(32) unaligned dcl 31 set ref 251* 252 253* 254* 258* 263 263* 263 266* next_trans_loc 1 based fixed bin(35,0) level 2 dcl 1-6 set ref 165* no_attendees 3(18) based fixed bin(17,0) level 2 packed unaligned dcl 1-6 set ref 168* 374 no_deleted 4(18) based fixed bin(17,0) level 2 packed unaligned dcl 1-6 set ref 169* no_transactions 2(18) based fixed bin(17,0) level 2 packed unaligned dcl 1-6 set ref 167* null builtin function dcl 107 ref 460 460 471 557 old_name 000223 automatic char(32) unaligned dcl 31 set ref 245* 246 247* 258* 261 261* 261 266* old_name_len 000233 automatic fixed bin(17,0) dcl 31 set ref 248* 261 one_acl 000341 automatic structure level 1 unaligned dcl 63 set ref 363 363 370 370 415 415 421 421 one_transaction based structure level 1 dcl 1-45 person_id 000234 automatic char(22) unaligned dcl 31 in procedure "v1_forum_seg_mgr_$create_forum" set ref 145 170 173 242 327 348 350 554* person_id 16 based char(22) array level 3 in structure "forum_control" packed unaligned dcl 1-6 in procedure "v1_forum_seg_mgr_$create_forum" set ref 173* person_id 5 based char(22) level 3 in structure "forum_control" packed unaligned dcl 1-6 in procedure "v1_forum_seg_mgr_$create_forum" set ref 170* 242 348 privileged 000242 automatic bit(1) dcl 31 set ref 275* 281* 311* 336* 377 379 proc_name 000243 automatic char(32) unaligned dcl 31 set ref 124* 135* 142* 157* 188* proceedings_ptr 000420 automatic pointer dcl 1-3 set ref 200* 206* 211* 228* 266* 292* 301* 318* 323* 346* 383* 511* 528* 534* 540* 557* project_id 23(18) based char(11) array level 3 in structure "forum_control" packed unaligned dcl 1-6 in procedure "v1_forum_seg_mgr_$create_forum" set ref 174* project_id 12(18) based char(9) level 3 in structure "forum_control" packed unaligned dcl 1-6 in procedure "v1_forum_seg_mgr_$create_forum" set ref 171* project_id 000253 automatic char(9) unaligned dcl 31 in procedure "v1_forum_seg_mgr_$create_forum" set ref 171 174 554* real_dir 000256 automatic char(168) unaligned dcl 31 set ref 487* 492 real_name 000330 automatic char(32) unaligned dcl 31 set ref 487* 489* 493 514* 519 rtrim builtin function dcl 107 ref 353 355 361 397 420 440 set_lock_$lock 000066 constant entry external dcl 66 ref 162 set_lock_$unlock 000070 constant entry external dcl 66 ref 177 string builtin function dcl 107 set ref 166* substr builtin function dcl 107 ref 124 261 263 370 401 421 441 456 two_acls 000354 automatic structure array level 1 dcl 64 set ref 151 151 157 157 unspec builtin function dcl 107 set ref 172* 295* user_info_$login_data 000072 constant entry external dcl 66 ref 554 user_ring 000340 automatic fixed bin(3,0) dcl 31 set ref 120* 181* 192* 201* 213* 223* 235* 287* 303* 319* 341* 387* 457* 462* 469* 484* 491* 497* 529* 541* 553* v1_forum_mgr_$get_ptrs 000012 constant entry external dcl 66 ref 228 346 511 v1_forum_mgr_$initiate 000014 constant entry external dcl 66 ref 206 292 323 534 v1_forum_mgr_$terminate 000016 constant entry external dcl 66 ref 200 211 318 383 528 540 v1_forum_mgr_$unlock 000020 constant entry external dcl 66 ref 222 233 327 340 385 509 517 xmodes 11 000354 automatic bit(36) array level 2 in structure "two_acls" dcl 64 in procedure "v1_forum_seg_mgr_$create_forum" set ref 147* 150* 156* xmodes 11 000341 automatic bit(36) level 2 in structure "one_acl" packed unaligned dcl 63 in procedure "v1_forum_seg_mgr_$create_forum" set ref 358* 413* 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 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 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_message automatic structure level 1 dcl 1-63 ipc_message based fixed bin(71,0) dcl 1-60 msg_ptr internal static pointer dcl 1-60 NAMES DECLARED BY EXPLICIT CONTEXT. CHNAME_EXIT 001337 constant label dcl 211 ref 198 198 CHNAME_IDX_EXIT 001541 constant label dcl 233 ref 220 220 CREATE_FORUM_EXIT 001050 constant label dcl 185 ref 115 115 DELETE_COMMON 001640 constant label dcl 283 ref 276 DELETE_FORUM_EXIT 002023 constant label dcl 303 ref 283 283 GET_MEETING_PATH_EXIT 003610 constant label dcl 497 ref 479 479 507 507 LIST_ACL_EXIT 003366 constant label dcl 469 ref 450 450 SET_ACL_COMMON 002537 constant label dcl 353 ref 329 SET_FORUM_ACL_EXIT 003114 constant label dcl 379 ref 312 312 337 337 UID_EXIT 004270 constant label dcl 540 ref 526 526 chname 004313 constant entry internal dcl 239 ref 209 231 delete_forced_acl 005062 constant entry internal dcl 430 ref 382 error 005336 constant entry internal dcl 563 ref 127 129 132 133 136 137 141 143 152 158 161 163 179 203 207 225 229 242 255 259 267 286 293 314 324 343 347 348 350 360 364 372 396 398 400 401 416 418 423 425 461 488 512 515 531 535 538 force_acl 004652 constant entry internal dcl 408 ref 290 315 initialize 005230 constant entry internal dcl 545 ref 115 198 220 283 312 337 450 479 507 526 v1_forum_seg_mgr_$chname_forum 001135 constant entry external dcl 195 v1_forum_seg_mgr_$chname_forum_idx 001367 constant entry external dcl 217 v1_forum_seg_mgr_$create_forum 000050 constant entry external dcl 7 v1_forum_seg_mgr_$delete_forum 001614 constant entry external dcl 278 v1_forum_seg_mgr_$get_forum_path 003406 constant entry external dcl 476 v1_forum_seg_mgr_$get_forum_path_idx 003644 constant entry external dcl 504 v1_forum_seg_mgr_$get_uid_file 004053 constant entry external dcl 523 v1_forum_seg_mgr_$list_forum_acl 003160 constant entry external dcl 447 v1_forum_seg_mgr_$priv_delete_forum 001564 constant entry external dcl 272 v1_forum_seg_mgr_$priv_set_forum_acl 002043 constant entry external dcl 308 v1_forum_seg_mgr_$set_forum_acl 002306 constant entry external dcl 333 validate_name 004553 constant entry internal dcl 391 ref 123 247 253 454 482 489 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 6520 6642 5402 6530 Length 7304 5402 122 426 1115 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME v1_forum_seg_mgr_$create_forum 600 external procedure is an external procedure. on unit on line 120 68 on unit on unit on line 199 70 on unit on unit on line 203 70 on unit on unit on line 221 68 on unit on unit on line 225 70 on unit chname internal procedure shares stack frame of external procedure v1_forum_seg_mgr_$create_foru on unit on line 286 70 on unit on unit on line 287 68 on unit on unit on line 314 70 on unit on unit on line 317 70 on unit on unit on line 339 68 on unit on unit on line 343 70 on unit validate_name internal procedure shares stack frame of external procedure v1_forum_seg_mgr_$create_foru force_acl internal procedure shares stack frame of external procedure v1_forum_seg_mgr_$create_foru delete_forced_acl internal procedure shares stack frame of external procedure v1_forum_seg_mgr_$create_foru on unit on line 457 68 on unit on unit on line 484 68 on unit on unit on line 509 68 on unit on unit on line 527 70 on unit on unit on line 531 70 on unit initialize internal procedure shares stack frame of external procedure v1_forum_seg_mgr_$create_foru error 64 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME v1_forum_seg_mgr_$create_forum 000100 access_name v1_forum_seg_mgr_$create_forum 000110 acl_count v1_forum_seg_mgr_$create_forum 000112 acl_ptr v1_forum_seg_mgr_$create_forum 000114 anon_sw v1_forum_seg_mgr_$create_forum 000115 attendee_idx v1_forum_seg_mgr_$create_forum 000116 code v1_forum_seg_mgr_$create_forum 000117 created v1_forum_seg_mgr_$create_forum 000120 dir_name v1_forum_seg_mgr_$create_forum 000172 dirname_len v1_forum_seg_mgr_$create_forum 000174 egress v1_forum_seg_mgr_$create_forum 000200 forum_name v1_forum_seg_mgr_$create_forum 000210 forum_name_len v1_forum_seg_mgr_$create_forum 000211 idx v1_forum_seg_mgr_$create_forum 000212 inner_ring v1_forum_seg_mgr_$create_forum 000213 new_name v1_forum_seg_mgr_$create_forum 000223 old_name v1_forum_seg_mgr_$create_forum 000233 old_name_len v1_forum_seg_mgr_$create_forum 000234 person_id v1_forum_seg_mgr_$create_forum 000242 privileged v1_forum_seg_mgr_$create_forum 000243 proc_name v1_forum_seg_mgr_$create_forum 000253 project_id v1_forum_seg_mgr_$create_forum 000256 real_dir v1_forum_seg_mgr_$create_forum 000330 real_name v1_forum_seg_mgr_$create_forum 000340 user_ring v1_forum_seg_mgr_$create_forum 000341 one_acl v1_forum_seg_mgr_$create_forum 000354 two_acls v1_forum_seg_mgr_$create_forum 000416 forum_control_ptr v1_forum_seg_mgr_$create_forum 000420 proceedings_ptr v1_forum_seg_mgr_$create_forum 000530 delete_acls delete_forced_acl 000550 anon initialize THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return tra_label_var enable shorten_stack ext_entry_desc int_entry clock THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. check_star_name_$entry get_group_id_ get_ring_ hcs_$add_acl_entries hcs_$append_branch hcs_$chname_seg hcs_$delentry_file hcs_$delentry_seg hcs_$delete_acl_entries hcs_$fs_get_path_name hcs_$get_link_target hcs_$get_uid_seg hcs_$initiate hcs_$level_get hcs_$level_set hcs_$list_acl hcs_$replace_acl hcs_$status_minf hcs_$terminate_noname set_lock_$lock set_lock_$unlock user_info_$login_data v1_forum_mgr_$get_ptrs v1_forum_mgr_$initiate v1_forum_mgr_$terminate v1_forum_mgr_$unlock THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$badstar error_table_$namedup error_table_$noentry forum_error_table_$anon_chairman forum_error_table_$blank_forum_name forum_error_table_$chairman_only forum_error_table_$long_forum_name forum_error_table_$no_control_suffix forum_error_table_$not_a_forum forum_error_table_$unexpected_fault forum_error_table_$you_twit LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 7 000044 115 000073 117 000100 118 000106 119 000113 120 000114 121 000140 123 000147 124 000151 126 000166 127 000204 129 000215 131 000226 132 000266 133 000300 135 000311 136 000351 137 000363 139 000374 140 000376 141 000423 142 000433 143 000460 145 000470 146 000503 147 000506 148 000507 149 000512 150 000514 151 000515 152 000560 154 000570 155 000573 156 000574 157 000575 158 000640 160 000650 161 000713 162 000723 163 000740 165 000750 166 000752 167 000754 168 000756 169 000760 170 000762 171 000765 172 000770 173 000773 174 000776 175 001001 177 001004 178 001016 179 001027 181 001037 182 001046 183 001047 185 001050 187 001052 188 001074 191 001116 192 001120 193 001127 195 001130 198 001170 199 001175 200 001211 201 001222 202 001232 203 001233 205 001257 206 001266 207 001326 209 001336 211 001337 213 001350 214 001357 215 001361 217 001362 220 001410 221 001415 222 001431 223 001440 224 001450 225 001451 227 001475 228 001504 229 001530 231 001540 233 001541 235 001550 236 001557 237 001561 272 001562 275 001607 276 001611 278 001612 281 001637 283 001640 286 001645 287 001671 289 001715 290 001724 292 001725 293 001765 295 001775 300 002001 301 002012 303 002023 305 002032 306 002034 308 002035 311 002100 312 002102 314 002107 315 002133 317 002134 318 002150 319 002161 320 002171 322 002172 323 002201 324 002241 326 002251 327 002261 329 002277 333 002300 336 002331 337 002332 339 002337 340 002353 341 002362 342 002372 343 002373 345 002417 346 002426 347 002452 348 002462 349 002500 350 002510 353 002537 355 002571 356 002631 357 002640 358 002642 359 002643 360 002675 361 002705 363 002720 364 002755 366 002765 367 002777 370 003002 372 003054 374 003065 375 003077 376 003103 377 003105 379 003114 382 003116 383 003117 384 003130 385 003131 387 003140 388 003147 389 003151 447 003152 450 003203 452 003210 453 003216 454 003223 456 003225 457 003242 458 003267 460 003276 461 003340 462 003350 464 003357 465 003362 466 003364 467 003365 469 003366 471 003375 472 003400 473 003401 474 003403 476 003404 479 003441 480 003446 481 003454 482 003461 484 003463 485 003507 487 003516 488 003545 489 003555 491 003557 492 003566 493 003576 494 003606 495 003607 497 003610 499 003617 500 003627 501 003637 502 003641 504 003642 507 003665 509 003672 511 003716 512 003743 514 003753 515 004004 517 004014 518 004023 519 004034 520 004044 521 004045 523 004046 526 004076 527 004103 528 004117 529 004130 530 004140 531 004141 533 004165 534 004174 535 004234 537 004244 538 004260 540 004270 541 004301 542 004310 543 004312 239 004313 242 004314 245 004332 246 004342 247 004346 248 004350 251 004352 252 004362 253 004366 254 004370 255 004405 258 004416 259 004442 261 004452 263 004473 266 004515 267 004542 269 004552 391 004553 396 004555 397 004571 398 004606 400 004620 401 004631 404 004651 408 004652 411 004653 412 004662 413 004664 415 004665 416 004724 418 004740 420 004746 421 004764 423 005036 425 005053 427 005061 430 005062 437 005063 438 005075 440 005135 441 005153 444 005226 545 005230 551 005232 552 005240 553 005247 554 005256 555 005324 557 005330 558 005333 560 005334 563 005335 568 005343 569 005347 ----------------------------------------------------------- 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