COMPILATION LISTING OF SEGMENT forum_conversion_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/09/85 1149.8 mst Tue Options: optimize map 1 /* ************************************************************** 2* * * 3* * Copyright, (C) Massachusetts Institute of Technology, 1984 * 4* * * 5* ************************************************************** */ 6 forum_conversion_$convert: 7 proc (P_directory, P_name, P_status); 8 9 /* Version 2 Forum - 10* convert version 1 meetings to version 2 meetings. 11* Jay Pattin 1/8/83 12* Audit changes, J. Spencer Love 10/05/84 13* Emergency fix to handle no_write_permission on control segment 1/30/85 Jay Pattin */ 14 15 declare (P_directory char (*), 16 P_name char (*), 17 P_status fixed bin (35)) 18 parameter; 19 20 declare acl_count fixed bin, 21 acl_ptr ptr, 22 cleaning_up bit (1) aligned, 23 directory char (168), 24 dirname_buffer char (168), 25 dirname_len fixed bin, 26 forum_control_entry char (32), 27 forum_idx fixed bin, 28 forum_name_len fixed bin, 29 (idx, jdx) fixed bin, 30 (inner_ring, user_ring) fixed bin (3), 31 locked bit (1) aligned, 32 me char (24) static options (constant) init ("forum_conversion_"), 33 message char (256) based, 34 (name, real_name) char (32), 35 person_id char (22), 36 privileged bit (1) aligned, 37 proceedings_name char (32), 38 project_id char (9), 39 status fixed bin (35), 40 status_area area based (status_area_ptr); 41 42 declare 1 sb aligned like status_branch, 43 1 od aligned like open_data, 44 1 acl (acl_count) aligned based (acl_ptr), 45 2 access_name char (32), 46 2 modes bit (36) aligned, 47 2 xmodes bit (36) aligned, 48 2 code fixed bin (35); 49 50 declare 1 v aligned, 51 2 n fixed bin, 52 2 vector (500) ptr unaligned; 53 54 declare 1 idxs aligned, 55 2 n fixed bin, 56 2 vector (500) fixed bin (18); 57 58 declare (addr, addrel, hbound, length, null, pointer, ptr, rel, rtrim, size, substr, unspec) 59 builtin, 60 (any_other, cleanup, no_read_permission, seg_fault_error) 61 condition; 62 63 declare (error_table_$invalid_lock_reset, 64 error_table_$lock_wait_time_exceeded, 65 error_table_$moderr, 66 error_table_$noentry, 67 error_table_$seg_busted, 68 error_table_$segnamedup, 69 forum_et_$chairman_only, 70 forum_et_$invalid_trans_idx, 71 forum_et_$not_a_forum, 72 forum_et_$unexpected_fault) fixed bin (35) external; 73 74 declare forum_data_$forum_ring fixed bin (3) external; 75 76 declare forum_logger_ entry options (variable), 77 forum_logger_$any_other entry options (variable), 78 forum_seg_mgr_$just_create entry (char (*), char (*), ptr, ptr, fixed bin (35)), 79 forum_seg_mgr_$lock entry (ptr), 80 forum_seg_mgr_$terminate_all entry (ptr), 81 forum_space_mgr_$allocate_bit_map 82 entry (ptr, ptr, fixed bin, ptr, fixed bin (35)), 83 forum_space_mgr_$get_attendee_slot 84 entry (ptr, char (*), ptr, fixed bin (35)), 85 forum_trans_mgr_$load_trans entry (ptr, char (*), fixed bin, char (*), bit (1) aligned, fixed bin, 86 fixed bin (35)), 87 get_ring_ entry returns (fixed bin (3)), 88 get_system_free_area_ entry returns (ptr), 89 hcs_$add_acl_entries entry (char (*), char (*), ptr, fixed bin, fixed bin (35)), 90 hcs_$chname_file entry (char (*), char (*), char (*), char (*), fixed bin (35)), 91 hcs_$del_dir_tree entry (char (*), char (*), fixed bin (35)), 92 hcs_$delentry_file entry (char (*), char (*), fixed bin (35)), 93 hcs_$delentry_seg entry (ptr, fixed bin (35)), 94 hcs_$fs_get_brackets entry (ptr, fixed bin (5), (3) fixed bin (3), fixed bin (35)), 95 hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)), 96 hcs_$initiate entry (char (*), char (*), char (*), fixed bin (1), fixed bin (2), ptr, fixed bin (35)), 97 hcs_$level_get entry (fixed bin (3)), 98 hcs_$level_set entry (fixed bin (3)), 99 hcs_$list_acl entry (char (*), char (*), ptr, ptr, ptr, fixed bin, fixed bin (35)), 100 hcs_$replace_acl entry (char (*), char (*), ptr, fixed bin, bit (1), fixed bin (35)), 101 hcs_$status_ entry (char (*), char (*), fixed bin (1), ptr, ptr, fixed bin (35)), 102 hcs_$terminate_noname entry (ptr, fixed bin (35)), 103 set_lock_$lock entry (bit (36) aligned, fixed bin, fixed bin (35)), 104 set_lock_$unlock entry (bit (36) aligned, fixed bin (35)), 105 sort_items_indirect_$char entry (ptr, ptr, fixed bin (24)), 106 user_info_$whoami entry (char (*), char (*), char (*)); 107 1 1 /* BEGIN INCLUDE FILE: forum_structures.incl.pl1 */ 1 2 1 3 /* This include file contains the declarations for all of the structures 1 4* used in a version 2 Forum meeting. 1 5* 1 6* Jay Pattin 12/28/82 */ 1 7 1 8 declare attendee_seg_ptr ptr, 1 9 transaction_seg_ptr ptr, 1 10 attendee_ptr ptr, 1 11 transaction_ptr ptr, 1 12 transaction_block_ptr ptr, 1 13 bit_map_ptr ptr; 1 14 1 15 /* This structure is for the segment "Attendees", it contains the participant 1 16* records and the bit-maps of transactions that have been seen. */ 1 17 1 18 declare 1 attendee_seg aligned based (attendee_seg_ptr), 1 19 2 header like attendee_seg_header, 1 20 2 attendee_area area; /* where attendee and bit map nodes go */ 1 21 1 22 declare 1 attendee_seg_header aligned based, 1 23 2 version char (8), 1 24 2 lock bit (36) aligned, 1 25 2 flags, 1 26 3 adjourned bit (1) unaligned, 1 27 3 am_init bit (1) unaligned, /* on if next value valid */ 1 28 3 am_print_acl_msg bit (1) unaligned, /* on if Sysadmin wants them printed */ 1 29 3 cm_init bit (1) unaligned, /* on if next vaue valid */ 1 30 3 cm_print_acl_msg bit (1) unaligned, /* on if chair wants messages printed */ 1 31 3 salvaging bit (1) unaligned, 1 32 3 mbz1 bit (30) unaligned, 1 33 2 attendee_count fixed bin, /* current number of attendees */ 1 34 2 chairman, 1 35 3 person_id char (22), 1 36 3 project_id char (9), 1 37 2 chairman_message char (256), 1 38 2 first_attendee_offset bit (18), 1 39 2 last_attendee_offset bit (18), 1 40 2 mbz2 (16) fixed bin (35); 1 41 1 42 declare 1 attendee aligned based (attendee_ptr), 1 43 2 version fixed bin, 1 44 2 attendee_uid fixed bin, /* Unique for this meeting only */ 1 45 2 person_id char (22), 1 46 2 project_id char (9), /* of project on when last opened */ 1 47 2 flags, 1 48 3 attending bit (1) unaligned, 1 49 3 participating bit (1) unaligned, 1 50 3 deleted bit (1) unaligned, /* by chairman - dlpt request */ 1 51 3 notify bit (1) unaligned, 1 52 3 acl_change_pending bit (1) unaligned, 1 53 3 message_change_pending bit (1) unaligned, 1 54 3 mbz1 bit (30) unaligned, 1 55 2 xacl bit (36) aligned, /* extended acl - see modes below */ 1 56 2 lock_id bit (36) aligned, 1 57 2 process_id bit (36) aligned, 1 58 2 event_channel fixed bin (71), /* For "A new transaction ..." messages */ 1 59 2 last_time_attended fixed bin (71), 1 60 2 bit_map_first_trans fixed bin, 1 61 2 bit_map_offset bit (18), 1 62 2 bit_map_length fixed bin, 1 63 2 left_son_offset bit (18), /* attendees are in a tree */ 1 64 2 right_son_offset bit (18), 1 65 2 next_offset bit (18); /* For sequential searching */ 1 66 1 67 declare 1 bit_map aligned based (bit_map_ptr), 1 68 2 attendee_uid fixed bin, /* For checking */ 1 69 2 length fixed bin, 1 70 2 map bit (alloc_bit_map_length refer (bit_map.length)); 1 71 1 72 declare alloc_bit_map_length fixed bin; 1 73 1 74 /* This structure is for the segment "Transactions" which contains all 1 75* information about transactions except the subject and text. */ 1 76 1 77 declare 1 transaction_seg aligned based (transaction_seg_ptr), 1 78 2 version char (8), 1 79 2 transaction_count fixed bin, 1 80 2 deleted_count fixed bin, 1 81 2 first_trans_offset bit (18), 1 82 2 last_trans_offset bit (18), 1 83 2 first_block_offset bit (18), 1 84 2 current_block_offset bit (18), /* location of block containing pointer to last trans */ 1 85 2 last_trans_in_block fixed bin, /* When we need to allocate new block */ 1 86 2 current_segno fixed bin, /* Where transactions are being allocated */ 1 87 2 next_trans_offset bit (18), /* offset within that seg */ 1 88 2 free_space_offset bit (18), /* first unused word in this seg */ 1 89 2 first_free_word fixed bin; /* only used to find initial value of previous */ 1 90 1 91 declare 1 transaction based (transaction_ptr), 1 92 2 version fixed bin, 1 93 2 trans_idx fixed bin, 1 94 2 author, 1 95 3 person_id char (22), 1 96 3 project_id char (9), 1 97 2 flags, 1 98 3 deleted bit (1) unaligned, 1 99 3 deleted_by_author bit (1) unaligned, /* As opposed to deleted by chairman */ 1 100 3 unfilled bit (1) unaligned, /* And it should stay that way */ 1 101 3 mbz1 bit (33) unaligned, 1 102 2 pref_offset bit (18), 1 103 2 nref_offset bit (18), 1 104 2 time fixed bin (71), 1 105 2 segno fixed bin, /* What proceeding segment this is in */ 1 106 2 subject_offset bit (18), 1 107 2 subject_length fixed bin (21), 1 108 2 text_offset bit (18), 1 109 2 text_length fixed bin (21), 1 110 2 next_offset bit (18), 1 111 2 prev_offset bit (18); 1 112 1 113 1 114 declare 1 transaction_block based (transaction_block_ptr), 1 115 2 first_trans_idx fixed bin, /* In this block */ 1 116 2 last_trans_idx fixed bin, 1 117 2 time fixed bin (71), /* of first trans in this block */ 1 118 2 prev_block_offset bit (18), 1 119 2 next_block_offset bit (18), 1 120 2 transactions (1014), 1 121 3 offset bit (18); /* -1 if expunged */ 1 122 1 123 declare (ATTENDEE_SEG_VERSION_1 init ("FMCTL_1"), 1 124 TRANS_SEG_VERSION_1 init ("FMTR_1")) 1 125 char (8) static options (constant); 1 126 1 127 declare (ATTENDEE_SEG_NAME init ("Attendees"), 1 128 TRANSACTION_SEG_NAME init ("Transactions"), 1 129 PROCEEDINGS_SEG_NAME init ("Proceedings.")) /* numeric suffix is added */ 1 130 char (32) static options (constant); 1 131 1 132 declare (ATTENDEE_VERSION_1, 1 133 TRANSACTION_VERSION_1) fixed bin static options (constant) init (-42); 1 134 1 135 declare EXPUNGED bit (18) static options (constant) init ("111111111111111111"b); 1 136 1 137 declare (RWC_XACL init ("111"b), 1 138 RW_XACL init ("110"b), 1 139 R_XACL init ("100"b)) 1 140 bit (3) static options (constant); 1 141 1 142 /* END INCLUDE FILE: forum_structures.incl.pl1 */ 108 109 2 1 /* START OF: forum_structures.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 2 2 2 3 declare forum_control_ptr ptr, 2 4 proceedings_ptr ptr; 2 5 2 6 declare 1 forum_control aligned based (forum_control_ptr), 2 7 2 forum_lock bit (36), /* Proceedings lock. */ 2 8 2 next_trans_loc fixed bin (35), /* Characters in proceedings. */ 2 9 2 flags unaligned, 2 10 3 mbz0 bit (3) unaligned, /* Already wasted on acl stuff at MIT */ 2 11 3 msg_init bit (1) unaligned, /* On if message info is valid */ 2 12 3 am_init bit (1) unaligned, /* next value is valid */ 2 13 3 am_print_acl_msg bit (1) unaligned, /* what administrator says */ 2 14 3 cm_init bit (1) unaligned, /* next value is valid */ 2 15 3 cm_print_acl_msg bit (1) unaligned, /* what chairman says */ 2 16 3 adjourned bit (1) unaligned, /* temporarily out of service, per chairman request */ 2 17 3 mbz1 bit (9) unaligned, /* Future expansion */ 2 18 2 no_transactions fixed bin unaligned,/* Transaction sequence number. */ 2 19 2 message_loc fixed bin unaligned,/* location of chairman message in proceedings seg */ 2 20 2 no_attendees fixed bin unaligned,/* Number of participants. */ 2 21 2 mbz2 bit (18) unaligned, 2 22 2 no_deleted fixed bin unaligned, 2 23 2 chairman unaligned, 2 24 3 person_id char (22), 2 25 3 project_id char (9), 2 26 2 attendee (500), /* Attendee data. */ 2 27 3 person_id char (22) unaligned, 2 28 3 project_id char (11) unaligned, 2 29 3 attending bit (1) unaligned, 2 30 3 deleted bit (1) unaligned, 2 31 3 interesting bit (1) unaligned, /* tentative, not used yet */ 2 32 3 notify bit (1) unaligned, 2 33 3 removed bit (1) unaligned, /* on if set_participate_off used */ 2 34 3 write_allowed bit (1) unaligned, 2 35 3 acl_change_pending bit (1) unaligned, 2 36 3 message_changed bit (1) unaligned, 2 37 3 unused_flags bit (1) unaligned, /* Spare flag. */ 2 38 3 last_time_attended fixed bin (71), /* date/time last attended */ 2 39 3 lock_id bit (36) aligned, /* Used to check validity of attending. */ 2 40 3 highest_trans_seen fixed bin, 2 41 3 process_id bit (36), 2 42 3 public_wakeup_chan fixed bin (71), /* Transaction channel. */ 2 43 2 transactions (0 refer (forum_control.no_transactions)) aligned like one_transaction; 2 44 2 45 declare 1 one_transaction aligned based, 2 46 2 person_id char (22) unaligned, 2 47 2 project_id char (11) unaligned, 2 48 2 deleted bit (1) unaligned, /* logically removed */ 2 49 2 gone bit (1) unaligned, /* physically removed via compaction */ 2 50 2 unfilled bit (1) unaligned, /* on if trans entered unfilled */ 2 51 2 deleted_by_author bit (1) unaligned, /* as opposed to deleted by chairman */ 2 52 2 unused bit (23) unaligned, 2 53 2 prior_ref_index fixed bin, /* index to trans I refer to */ 2 54 2 next_ref_index fixed bin, /* index to trans referring to me */ 2 55 2 subject char (72) unaligned, 2 56 2 time fixed bin (71), /* date-time of entry */ 2 57 2 offset fixed bin (35), /* Where text of transaction begins */ 2 58 2 length fixed bin (21); /* in bytes */ 2 59 2 60 declare ipc_message fixed bin (71) based (msg_ptr), /* message for inter-process calls */ 2 61 msg_ptr ptr static; 2 62 2 63 declare 1 forum_message aligned, /* what we're trying to tell other process(es) */ 2 64 2 forum_uid bit (36) aligned, /* what forum */ 2 65 2 index fixed bin; /* who did it? */ 2 66 2 67 /* END OF: forum_structures.incl.pl1 * * * * * * * * * * * * * * * * * * * */ 110 111 3 1 /* BEGIN INCLUDE FILE: forum_open_data.incl.pl1 */ 3 2 3 3 declare open_data_ptr ptr; 3 4 3 5 declare 1 open_data aligned based (open_data_ptr), 3 6 2 next_open_data_ptr ptr, 3 7 2 prev_open_data_ptr ptr, 3 8 2 forum_name char (168), 3 9 2 forum_idx fixed bin, 3 10 2 forum_uid bit (36), /* UID of attendee seg */ 3 11 2 attendee_seg_ptr ptr, 3 12 2 transaction_seg_ptr ptr, 3 13 2 proceedings_ptrs (16) ptr, 3 14 2 attendee_ptr ptr, /* -> attendee slot for this user */ 3 15 2 bit_map_ptr ptr, /* -> bit_map for this user */ 3 16 2 open_count fixed bin, 3 17 2 invalid bit (1) aligned; 3 18 3 19 /* END INCLUDE FILE: forum_open_data.incl.pl1 */ 112 113 4 1 /* --------------- BEGIN include file status_structures.incl.pl1 --------------- */ 4 2 4 3 /* Revised from existing include files 09/26/78 by C. D. Tavares */ 4 4 4 5 /* This include file contains branch and link structures returned by 4 6* hcs_$status_ and hcs_$status_long. */ 4 7 4 8 dcl 1 status_branch aligned based (status_ptr), 4 9 2 short aligned, 4 10 3 type fixed bin (2) unaligned unsigned, /* seg, dir, or link */ 4 11 3 nnames fixed bin (16) unaligned unsigned, /* number of names */ 4 12 3 names_relp bit (18) unaligned, /* see entry_names dcl */ 4 13 3 dtcm bit (36) unaligned, /* date/time contents last modified */ 4 14 3 dtu bit (36) unaligned, /* date/time last used */ 4 15 3 mode bit (5) unaligned, /* caller's effective access */ 4 16 3 raw_mode bit (5) unaligned, /* caller's raw "rew" modes */ 4 17 3 pad1 bit (8) unaligned, 4 18 3 records_used fixed bin (18) unaligned unsigned, /* number of NONZERO pages used */ 4 19 4 20 /* Limit of information returned by hcs_$status_ */ 4 21 4 22 2 long aligned, 4 23 3 dtd bit (36) unaligned, /* date/time last dumped */ 4 24 3 dtem bit (36) unaligned, /* date/time branch last modified */ 4 25 3 lvid bit (36) unaligned, /* logical volume ID */ 4 26 3 current_length fixed bin (12) unaligned unsigned, /* number of last page used */ 4 27 3 bit_count fixed bin (24) unaligned unsigned, /* reported length in bits */ 4 28 3 pad2 bit (8) unaligned, 4 29 3 copy_switch bit (1) unaligned, /* copy switch */ 4 30 3 tpd_switch bit (1) unaligned, /* transparent to paging device switch */ 4 31 3 mdir_switch bit (1) unaligned, /* is a master dir */ 4 32 3 damaged_switch bit (1) unaligned, /* salvager warned of possible damage */ 4 33 3 synchronized_switch bit (1) unaligned, /* DM synchronized file */ 4 34 3 pad3 bit (5) unaligned, 4 35 3 ring_brackets (0:2) fixed bin (6) unaligned unsigned, 4 36 3 uid bit (36) unaligned; /* unique ID */ 4 37 4 38 dcl 1 status_link aligned based (status_ptr), 4 39 2 type fixed bin (2) unaligned unsigned, /* as above */ 4 40 2 nnames fixed bin (16) unaligned unsigned, 4 41 2 names_relp bit (18) unaligned, 4 42 2 dtem bit (36) unaligned, 4 43 2 dtd bit (36) unaligned, 4 44 2 pathname_length fixed bin (17) unaligned, /* see pathname */ 4 45 2 pathname_relp bit (18) unaligned; /* see pathname */ 4 46 4 47 dcl status_entry_names (status_branch.nnames) character (32) aligned 4 48 based (pointer (status_area_ptr, status_branch.names_relp)), 4 49 /* array of names returned */ 4 50 status_pathname character (status_link.pathname_length) aligned 4 51 based (pointer (status_area_ptr, status_link.pathname_relp)), 4 52 /* link target path */ 4 53 status_area_ptr pointer, 4 54 status_ptr pointer; 4 55 4 56 dcl (Link initial (0), 4 57 Segment initial (1), 4 58 Directory initial (2)) fixed bin internal static options (constant); 4 59 /* values for type fields declared above */ 4 60 4 61 /* ---------------- END include file status_structures.incl.pl1 ---------------- */ 114 115 5 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 5 2* 5 3* Values for the "access mode" argument so often used in hardcore 5 4* James R. Davis 26 Jan 81 MCR 4844 5 5* Added constants for SM access 4/28/82 Jay Pattin 5 6* Added text strings 03/19/85 Chris Jones 5 7**/ 5 8 5 9 5 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 5 11 dcl ( 5 12 N_ACCESS init ("000"b), 5 13 R_ACCESS init ("100"b), 5 14 E_ACCESS init ("010"b), 5 15 W_ACCESS init ("001"b), 5 16 RE_ACCESS init ("110"b), 5 17 REW_ACCESS init ("111"b), 5 18 RW_ACCESS init ("101"b), 5 19 S_ACCESS init ("100"b), 5 20 M_ACCESS init ("010"b), 5 21 A_ACCESS init ("001"b), 5 22 SA_ACCESS init ("101"b), 5 23 SM_ACCESS init ("110"b), 5 24 SMA_ACCESS init ("111"b) 5 25 ) bit (3) internal static options (constant); 5 26 5 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 5 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 5 29 5 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 5 31 static options (constant); 5 32 5 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 5 34 static options (constant); 5 35 5 36 dcl ( 5 37 N_ACCESS_BIN init (00000b), 5 38 R_ACCESS_BIN init (01000b), 5 39 E_ACCESS_BIN init (00100b), 5 40 W_ACCESS_BIN init (00010b), 5 41 RW_ACCESS_BIN init (01010b), 5 42 RE_ACCESS_BIN init (01100b), 5 43 REW_ACCESS_BIN init (01110b), 5 44 S_ACCESS_BIN init (01000b), 5 45 M_ACCESS_BIN init (00010b), 5 46 A_ACCESS_BIN init (00001b), 5 47 SA_ACCESS_BIN init (01001b), 5 48 SM_ACCESS_BIN init (01010b), 5 49 SMA_ACCESS_BIN init (01011b) 5 50 ) fixed bin (5) internal static options (constant); 5 51 5 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 116 117 118 /* forum_conversion_$convert: 119* proc (P_directory, P_name, P_status); */ 120 121 privileged = "0"b; 122 goto COMMON; 123 124 forum_conversion_$priv_convert: 125 entry (P_directory, P_name, P_status); 126 127 privileged = "1"b; 128 129 COMMON: directory = P_directory; 130 name = P_name; 131 132 call hcs_$level_get (user_ring); 133 inner_ring = get_ring_ (); 134 135 acl_ptr, attendee_seg_ptr, transaction_seg_ptr, forum_control_ptr, proceedings_ptr = null (); 136 sb.nnames = 0; 137 cleaning_up, locked = "0"b; 138 139 on any_other begin; 140 on any_other system; 141 call forum_logger_$any_other (0, me, "Converting ^a>^a.", directory, name); 142 call error (forum_et_$unexpected_fault); 143 end; 144 145 on cleanup call cleanup_handler (); 146 147 call hcs_$level_set (inner_ring); 148 149 call user_info_$whoami (person_id, project_id, ""); 150 151 forum_name_len = length (rtrim (name)) - length (".control"); 152 if forum_name_len < 1 | forum_name_len > 20 then call error (forum_et_$not_a_forum); 153 forum_control_entry = name; 154 proceedings_name = substr (name, 1, forum_name_len) || ".proceedings"; 155 156 call initiate_old_meeting (); 157 158 if ^privileged & forum_control.chairman.person_id ^= person_id then call error (forum_et_$chairman_only); 159 160 name = substr (forum_control_entry, 1, forum_name_len) || ".forum"; 161 call forum_seg_mgr_$just_create (directory, name, attendee_seg_ptr, transaction_seg_ptr, status); 162 if status ^= 0 then call error (status); 163 164 unspec (od) = ""b; 165 od.attendee_seg_ptr = attendee_seg_ptr; 166 od.transaction_seg_ptr = transaction_seg_ptr; 167 od.proceedings_ptrs (*) = null (); 168 od.forum_name = rtrim (directory) || ">" || name; 169 170 attendee_seg.first_attendee_offset, attendee_seg.last_attendee_offset = ""b; 171 attendee_seg.attendee_count = 0; 172 attendee_seg.chairman.person_id = forum_control.chairman.person_id; 173 attendee_seg.chairman.project_id = forum_control.chairman.project_id; 174 175 attendee_seg.flags.adjourned = forum_control.flags.adjourned; 176 attendee_seg.flags.am_init = forum_control.flags.am_init; 177 attendee_seg.flags.am_print_acl_msg = forum_control.flags.am_print_acl_msg; 178 attendee_seg.flags.cm_init = forum_control.flags.cm_init; 179 attendee_seg.flags.cm_print_acl_msg = forum_control.flags.cm_print_acl_msg; 180 181 if forum_control.msg_init then 182 attendee_seg.chairman_message = ptr (proceedings_ptr, forum_control.message_loc) -> message; 183 else attendee_seg.chairman_message = ""; 184 185 status_area_ptr = get_system_free_area_ (); 186 call hcs_$list_acl (directory, proceedings_name, status_area_ptr, acl_ptr, null (), acl_count, status); 187 if status ^= 0 then call error (status); 188 189 jdx = 0; 190 do idx = 1 to acl_count; 191 if acl.access_name (idx) ^= "*.SysDaemon.*" then do; 192 jdx = jdx + 1; 193 if idx ^= jdx then acl.access_name (jdx) = acl.access_name (idx); 194 if acl.modes (idx) = N_ACCESS then acl.xmodes (jdx) = N_ACCESS; 195 else if acl.modes (idx) = R_ACCESS then acl.xmodes (jdx) = R_XACL; 196 else acl.xmodes (jdx) = RW_XACL; 197 acl.modes (jdx) = RW_ACCESS; 198 end; 199 end; 200 201 call hcs_$replace_acl ((od.forum_name), ATTENDEE_SEG_NAME, acl_ptr, jdx, "1"b, status); 202 if status ^= 0 then call error (status); 203 204 if acl.access_name (acl_count) ^= "*.*.*" then do; /* Must be *.* acl term */ 205 acl.access_name (1) = "*.*.*"; 206 acl.xmodes (1) = N_ACCESS; 207 call hcs_$add_acl_entries ((od.forum_name), ATTENDEE_SEG_NAME, acl_ptr, 1, status); 208 end; 209 210 acl.access_name (1) = rtrim (attendee_seg.chairman.person_id) || ".*.*"; /* make sure chairman has ACL */ 211 acl.xmodes (1) = RWC_XACL; 212 call hcs_$add_acl_entries ((od.forum_name), ATTENDEE_SEG_NAME, acl_ptr, 1, status); 213 free acl; 214 215 status_ptr = addr (sb); 216 call hcs_$status_ (directory, forum_control_entry, 1, status_ptr, status_area_ptr, status); 217 if status ^= 0 then call error (status); 218 219 do idx = 1 to status_branch.nnames; 220 real_name = status_entry_names (idx); 221 real_name = substr (real_name, 1, length (rtrim (real_name)) - length (".control")) || ".forum"; 222 call hcs_$chname_file (directory, name, "", real_name, status); 223 if status ^= 0 then 224 if status ^= error_table_$segnamedup then call error (status); 225 end; 226 free status_entry_names; 227 228 call copy_transactions (); 229 230 call sort_attendees (); 231 232 call copy_attendees (1, (forum_control.no_attendees)); 233 234 call forum_seg_mgr_$terminate_all (addr (od)); 235 236 if forum_control_ptr ^= null () 237 then call set_lock_$unlock (forum_control.forum_lock, (0)); 238 239 call hcs_$terminate_noname (forum_control_ptr, (0)); 240 call hcs_$terminate_noname (proceedings_ptr, (0)); 241 242 /* call hcs_$delentry_seg (forum_control_ptr, (0)); 243* call hcs_$delentry_seg (proceedings_ptr, (0)); */ 244 245 call hcs_$level_set (user_ring); 246 P_status = 0; 247 return; 248 249 PUNT: 250 if ^cleaning_up then call cleanup_handler (); 251 252 call forum_logger_ (status, me, "^a>^a", directory, name); 253 P_status = status; 254 return; 255 256 initiate_old_meeting: 257 procedure (); 258 259 declare lock_attempts fixed bin, 260 modes fixed bin (5), 261 rings (3) fixed bin (3); 262 263 on no_read_permission call error (error_table_$moderr); 264 on seg_fault_error call error (error_table_$seg_busted); 265 266 call hcs_$initiate (directory, forum_control_entry, "", 0, 0, forum_control_ptr, status); 267 if forum_control_ptr = null () then call error (status); 268 269 call hcs_$fs_get_brackets (forum_control_ptr, modes, rings, status); 270 if status ^= 0 then call error (status); 271 272 if modes = R_ACCESS_BIN then call error (error_table_$moderr); 273 else if modes ^= RW_ACCESS_BIN then call error (forum_et_$not_a_forum); 274 275 if rings (1) ^= forum_data_$forum_ring | rings (2) ^= rings (3) then call error (forum_et_$not_a_forum); 276 277 if forum_control.no_attendees < 0 | forum_control.no_attendees > hbound (forum_control.attendee, 1) then 278 call error (forum_et_$not_a_forum); 279 280 if unspec (forum_control.chairman) = ""b then call error (forum_et_$not_a_forum); 281 282 call hcs_$fs_get_path_name (forum_control_ptr, dirname_buffer, dirname_len, forum_control_entry, status); 283 if status ^= 0 then call error (status); 284 285 forum_name_len = length (rtrim (forum_control_entry)) - length (".control"); 286 if forum_name_len < 1 | forum_name_len > 20 then call error (forum_et_$not_a_forum); 287 288 if substr (forum_control_entry, forum_name_len + 1) ^= ".control" then call error (forum_et_$not_a_forum); 289 290 call hcs_$initiate (directory, proceedings_name, "", 0, 0, proceedings_ptr, status); 291 if proceedings_ptr = null () then 292 if status = error_table_$noentry | status = error_table_$moderr then call error (forum_et_$not_a_forum); 293 else call error (status); 294 295 call hcs_$fs_get_brackets (proceedings_ptr, modes, rings, status); 296 if status ^= 0 then call error (status); 297 298 if modes < R_ACCESS_BIN then call error (error_table_$moderr); 299 if rings (1) ^= forum_data_$forum_ring | rings (2) ^= rings (3) then call error (forum_et_$not_a_forum); 300 301 locked = "1"b; 302 do lock_attempts = 1 to 10; 303 call set_lock_$lock (forum_control.forum_lock, 2, status); 304 if status = 0 then return; 305 if status = error_table_$invalid_lock_reset then return; 306 if status ^= error_table_$lock_wait_time_exceeded then call error (status); 307 end; 308 call error (status); 309 310 end initiate_old_meeting; 311 312 copy_transactions: 313 proc (); 314 315 declare block_offset bit (18), 316 pref fixed bin, 317 trans_idx fixed bin, 318 trans_ptr ptr, 319 trans_len fixed bin, 320 trans_text char (trans_len) based (trans_ptr); 321 322 block_offset = ""b; 323 do trans_idx = 1 to forum_control.no_transactions; 324 if forum_control.transactions (trans_idx).gone then do; 325 transaction_seg.deleted_count = transaction_seg.deleted_count + 1; 326 transaction_block_ptr = ptr (transaction_seg_ptr, transaction_seg.current_block_offset); 327 if trans_idx > transaction_seg.last_trans_in_block then call get_new_block (); 328 329 idx = trans_idx - transaction_block.first_trans_idx + 1; 330 transaction_block.offset (idx) = EXPUNGED; 331 transaction_block.last_trans_idx = idx; 332 transaction_seg.transaction_count = transaction_seg.transaction_count + 1; 333 end; 334 else do; 335 trans_len = forum_control.transactions (trans_idx).length; 336 trans_ptr = ptr (proceedings_ptr, forum_control.transactions (trans_idx).offset); 337 pref = forum_control.transactions (trans_idx).prior_ref_index; 338 if forum_control.transactions (pref).gone then pref = 0; 339 340 call forum_trans_mgr_$load_trans (addr (od), trans_text, pref, 341 forum_control.transactions (trans_idx).subject, 342 (forum_control.transactions (trans_idx).unfilled), idx, status); 343 if status ^= 0 then call error (status); 344 if trans_idx ^= idx then call error (forum_et_$invalid_trans_idx); 345 346 transaction_ptr = ptr (transaction_seg_ptr, transaction_seg.last_trans_offset); 347 transaction.person_id = forum_control.transactions (trans_idx).person_id; 348 transaction.project_id = forum_control.transactions (trans_idx).project_id; 349 transaction.time = forum_control.transactions (trans_idx).time; 350 transaction.deleted = forum_control.transactions (trans_idx).deleted; 351 transaction.deleted_by_author = forum_control.transactions (trans_idx).deleted_by_author; 352 353 if transaction.deleted then transaction_seg.deleted_count = transaction_seg.deleted_count + 1; 354 355 if block_offset ^= transaction_seg.current_block_offset then do; 356 ptr (transaction_seg_ptr, transaction_seg.current_block_offset) -> 357 transaction_block.time = transaction.time; 358 block_offset = transaction_seg.current_block_offset; 359 end; 360 end; 361 end; 362 return; 363 364 get_new_block: 365 proc (); 366 367 declare old_block_offset bit (18); 368 369 old_block_offset = rel (transaction_block_ptr); 370 transaction_block.next_block_offset, transaction_seg.current_block_offset = transaction_seg.free_space_offset; 371 transaction_block_ptr = ptr (transaction_seg_ptr, transaction_seg.free_space_offset); 372 transaction_seg.free_space_offset = rel (addrel (transaction_block_ptr, size (transaction_block))); 373 transaction_seg.last_trans_in_block = transaction_seg.last_trans_in_block + hbound (transaction_block.transactions, 1); 374 transaction_block.first_trans_idx = trans_idx; 375 transaction_block.prev_block_offset = old_block_offset; 376 377 return; 378 end get_new_block; 379 380 end copy_transactions; 381 382 sort_attendees: 383 proc (); 384 385 do idx = 1 to forum_control.no_attendees; 386 v.vector (idx) = addr (forum_control.attendee.person_id (idx)); 387 idxs.vector (idx) = idx; 388 end; 389 390 v.n, idxs.n = forum_control.no_attendees; 391 call sort_items_indirect_$char (addr (v), addr (idxs), 22); 392 393 return; 394 end sort_attendees; 395 396 copy_attendees: 397 proc (low, high); 398 399 declare (low, high, middle) fixed bin; 400 401 middle = low + (high - low)/2; 402 call copy_one_attendee ((idxs.vector (middle))); 403 404 if middle < high then call copy_attendees (middle + 1, high); 405 if middle > low then call copy_attendees (low, middle - 1); 406 407 return; 408 end copy_attendees; 409 410 copy_one_attendee: 411 proc (idx); 412 413 declare (idx, jdx) fixed bin, 414 1 at aligned like attendee based (attendee_ptr); 415 416 call forum_space_mgr_$get_attendee_slot (attendee_seg_ptr, forum_control.attendee (idx).person_id, 417 attendee_ptr, status); 418 if status ^= 0 then call error (status); 419 420 at.project_id = forum_control.attendee (idx).project_id; 421 at.participating = ^forum_control.attendee (idx).removed; 422 at.deleted = forum_control.attendee (idx).deleted; 423 at.notify = forum_control.attendee (idx).notify; 424 at.acl_change_pending = forum_control.attendee (idx).acl_change_pending; 425 at.message_change_pending = forum_control.attendee (idx).message_changed; 426 at.last_time_attended = forum_control.attendee (idx).last_time_attended; 427 428 call forum_space_mgr_$allocate_bit_map (addr (od), attendee_ptr, 429 forum_control.attendee (idx).highest_trans_seen + 1, bit_map_ptr, status); 430 if status ^= 0 then call error (status); 431 432 end copy_one_attendee; 433 434 error: 435 proc (P_status); 436 437 declare P_status fixed bin (35); 438 439 status = P_status; 440 goto PUNT; 441 end error; 442 443 cleanup_handler: 444 proc (); 445 446 cleaning_up = "1"b; 447 if forum_control_ptr ^= null () & locked 448 then call set_lock_$unlock (forum_control.forum_lock, (0)); 449 450 call hcs_$terminate_noname (forum_control_ptr, (0)); 451 call hcs_$terminate_noname (proceedings_ptr, (0)); 452 453 if acl_ptr ^= null () then free acl; 454 if sb.nnames ^= 0 then free status_entry_names; 455 456 if attendee_seg_ptr ^= null () then do; 457 call hcs_$del_dir_tree (directory, name, (0)); 458 call hcs_$delentry_file (directory, name, (0)); 459 end; 460 461 call hcs_$level_set (user_ring); 462 463 end cleanup_handler; 464 465 end forum_conversion_$convert; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/08/85 1131.2 forum_conversion_.pl1 >spec>on>41-15>forum_conversion_.pl1 108 1 10/31/84 1115.3 forum_structures.incl.pl1 >ldd>include>forum_structures.incl.pl1 110 2 10/31/84 1115.4 v1_forum_structures.incl.pl1 >ldd>include>v1_forum_structures.incl.pl1 112 3 10/31/84 1115.3 forum_open_data.incl.pl1 >ldd>include>forum_open_data.incl.pl1 114 4 11/22/82 0955.7 status_structures.incl.pl1 >ldd>include>status_structures.incl.pl1 116 5 04/09/85 1109.7 access_mode_values.incl.pl1 >spec>on>41-15>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. ATTENDEE_SEG_NAME 000000 constant char(32) initial unaligned dcl 1-127 set ref 201* 207* 212* EXPUNGED constant bit(18) initial unaligned dcl 1-135 ref 330 N_ACCESS constant bit(3) initial unaligned dcl 5-11 ref 194 194 206 P_directory parameter char unaligned dcl 15 ref 6 124 129 P_name parameter char unaligned dcl 15 ref 6 124 130 P_status parameter fixed bin(35,0) dcl 15 in procedure "forum_conversion_$convert" set ref 6 124 246* 253* P_status parameter fixed bin(35,0) dcl 437 in procedure "error" ref 434 439 RWC_XACL constant bit(3) initial unaligned dcl 1-137 ref 211 RW_ACCESS constant bit(3) initial unaligned dcl 5-11 ref 197 RW_ACCESS_BIN constant fixed bin(5,0) initial dcl 5-36 ref 273 RW_XACL constant bit(3) initial unaligned dcl 1-137 ref 196 R_ACCESS constant bit(3) initial unaligned dcl 5-11 ref 195 R_ACCESS_BIN constant fixed bin(5,0) initial dcl 5-36 ref 272 298 R_XACL constant bit(3) initial unaligned dcl 1-137 ref 195 access_name based char(32) array level 2 dcl 42 set ref 191 193* 193 204 205* 210* acl based structure array level 1 dcl 42 set ref 213 453 acl_change_pending 26(15) based bit(1) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 424 acl_change_pending 13(04) based bit(1) level 3 in structure "at" packed unaligned dcl 413 in procedure "copy_one_attendee" set ref 424* acl_count 000100 automatic fixed bin(17,0) dcl 20 set ref 186* 190 204 213 453 acl_ptr 000102 automatic pointer dcl 20 set ref 135* 186* 191 193 193 194 194 195 195 196 197 201* 204 205 206 207* 210 211 212* 213 453 453 addr builtin function dcl 58 ref 215 234 234 340 340 386 391 391 391 391 428 428 addrel builtin function dcl 58 ref 372 adjourned 2(08) based bit(1) level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 175 adjourned 3 based bit(1) level 4 in structure "attendee_seg" packed unaligned dcl 1-18 in procedure "forum_conversion_$convert" set ref 175* am_init 3(01) based bit(1) level 4 in structure "attendee_seg" packed unaligned dcl 1-18 in procedure "forum_conversion_$convert" set ref 176* am_init 2(04) based bit(1) level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 176 am_print_acl_msg 3(02) based bit(1) level 4 in structure "attendee_seg" packed unaligned dcl 1-18 in procedure "forum_conversion_$convert" set ref 177* am_print_acl_msg 2(05) based bit(1) level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 177 any_other 002432 stack reference condition dcl 58 ref 139 140 at based structure level 1 dcl 413 attendee 16 based structure array level 2 in structure "forum_control" dcl 2-6 in procedure "forum_conversion_$convert" set ref 277 attendee based structure level 1 dcl 1-42 in procedure "forum_conversion_$convert" attendee_count 4 based fixed bin(17,0) level 3 dcl 1-18 set ref 171* attendee_ptr 002452 automatic pointer dcl 1-8 set ref 416* 420 421 422 423 424 425 426 428* attendee_seg based structure level 1 dcl 1-18 attendee_seg_header based structure level 1 dcl 1-22 attendee_seg_ptr 002446 automatic pointer dcl 1-8 in procedure "forum_conversion_$convert" set ref 135* 161* 165 170 170 171 172 173 175 176 177 178 179 181 183 210 416* 456 attendee_seg_ptr 60 000326 automatic pointer level 2 in structure "od" dcl 42 in procedure "forum_conversion_$convert" set ref 165* author 2 based structure level 2 packed unaligned dcl 1-91 bit_map_ptr 002460 automatic pointer dcl 1-8 set ref 428* block_offset 002522 automatic bit(18) unaligned dcl 315 set ref 322* 355 358* chairman 5 based structure level 2 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 280 chairman 5 based structure level 3 in structure "attendee_seg" dcl 1-18 in procedure "forum_conversion_$convert" chairman_message 16 based char(256) level 3 dcl 1-18 set ref 181* 183* cleaning_up 000104 automatic bit(1) dcl 20 set ref 137* 249 446* cleanup 002440 stack reference condition dcl 58 ref 145 cm_init 3(03) based bit(1) level 4 in structure "attendee_seg" packed unaligned dcl 1-18 in procedure "forum_conversion_$convert" set ref 178* cm_init 2(06) based bit(1) level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 178 cm_print_acl_msg 2(07) based bit(1) level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 179 cm_print_acl_msg 3(04) based bit(1) level 4 in structure "attendee_seg" packed unaligned dcl 1-18 in procedure "forum_conversion_$convert" set ref 179* current_block_offset 7 based bit(18) level 2 dcl 1-77 set ref 326 355 356 358 370* deleted 21476(09) based bit(1) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 350 deleted 11(27) based bit(1) level 3 in structure "transaction" packed unaligned dcl 1-91 in procedure "forum_conversion_$convert" set ref 350* 353 deleted 13(02) based bit(1) level 3 in structure "at" packed unaligned dcl 413 in procedure "copy_one_attendee" set ref 422* deleted 26(10) based bit(1) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 422 deleted_by_author 11(28) based bit(1) level 3 in structure "transaction" packed unaligned dcl 1-91 in procedure "forum_conversion_$convert" set ref 351* deleted_by_author 21476(12) based bit(1) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 351 deleted_count 3 based fixed bin(17,0) level 2 dcl 1-77 set ref 325* 325 353* 353 directory 000105 automatic char(168) unaligned dcl 20 set ref 129* 141* 161* 168 186* 216* 222* 252* 266* 290* 457* 458* dirname_buffer 000157 automatic char(168) unaligned dcl 20 set ref 282* dirname_len 000231 automatic fixed bin(17,0) dcl 20 set ref 282* error_table_$invalid_lock_reset 000010 external static fixed bin(35,0) dcl 63 ref 305 error_table_$lock_wait_time_exceeded 000012 external static fixed bin(35,0) dcl 63 ref 306 error_table_$moderr 000014 external static fixed bin(35,0) dcl 63 set ref 263* 272* 291 298* error_table_$noentry 000016 external static fixed bin(35,0) dcl 63 ref 291 error_table_$seg_busted 000020 external static fixed bin(35,0) dcl 63 set ref 264* error_table_$segnamedup 000022 external static fixed bin(35,0) dcl 63 ref 223 first_attendee_offset 116 based bit(18) level 3 dcl 1-18 set ref 170* first_trans_idx based fixed bin(17,0) level 2 dcl 1-114 set ref 329 374* flags 11(27) based structure level 2 in structure "transaction" packed unaligned dcl 1-91 in procedure "forum_conversion_$convert" flags 13 based structure level 2 in structure "at" dcl 413 in procedure "copy_one_attendee" flags 2 based structure level 2 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" flags 3 based structure level 3 in structure "attendee_seg" dcl 1-18 in procedure "forum_conversion_$convert" forum_control based structure level 1 dcl 2-6 forum_control_entry 000232 automatic char(32) unaligned dcl 20 set ref 153* 160 216* 266* 282* 285 288 forum_control_ptr 002462 automatic pointer dcl 2-3 set ref 135* 158 172 173 175 176 177 178 179 181 181 232 236 236 239* 266* 267 269* 277 277 277 280 282* 303 323 324 335 336 337 338 340 340 347 348 349 350 351 385 386 390 416 420 421 422 423 424 425 426 428 447 447 450* forum_data_$forum_ring 000034 external static fixed bin(3,0) dcl 74 ref 275 299 forum_et_$chairman_only 000024 external static fixed bin(35,0) dcl 63 set ref 158* forum_et_$invalid_trans_idx 000026 external static fixed bin(35,0) dcl 63 set ref 344* forum_et_$not_a_forum 000030 external static fixed bin(35,0) dcl 63 set ref 152* 273* 275* 277* 280* 286* 288* 291* 299* forum_et_$unexpected_fault 000032 external static fixed bin(35,0) dcl 63 set ref 142* forum_lock based bit(36) level 2 dcl 2-6 set ref 236* 303* 447* forum_logger_ 000036 constant entry external dcl 76 ref 252 forum_logger_$any_other 000040 constant entry external dcl 76 ref 141 forum_name 4 000326 automatic char(168) level 2 dcl 42 set ref 168* 201 207 212 forum_name_len 000242 automatic fixed bin(17,0) dcl 20 set ref 151* 152 152 154 160 285* 286 286 288 forum_seg_mgr_$just_create 000042 constant entry external dcl 76 ref 161 forum_seg_mgr_$terminate_all 000044 constant entry external dcl 76 ref 234 forum_space_mgr_$allocate_bit_map 000046 constant entry external dcl 76 ref 428 forum_space_mgr_$get_attendee_slot 000050 constant entry external dcl 76 ref 416 forum_trans_mgr_$load_trans 000052 constant entry external dcl 76 ref 340 free_space_offset 13 based bit(18) level 2 dcl 1-77 set ref 370 371 372* get_ring_ 000054 constant entry external dcl 76 ref 133 get_system_free_area_ 000056 constant entry external dcl 76 ref 185 gone 21476(10) based bit(1) array level 3 packed unaligned dcl 2-6 ref 324 338 hbound builtin function dcl 58 ref 277 373 hcs_$add_acl_entries 000060 constant entry external dcl 76 ref 207 212 hcs_$chname_file 000062 constant entry external dcl 76 ref 222 hcs_$del_dir_tree 000064 constant entry external dcl 76 ref 457 hcs_$delentry_file 000066 constant entry external dcl 76 ref 458 hcs_$fs_get_brackets 000070 constant entry external dcl 76 ref 269 295 hcs_$fs_get_path_name 000072 constant entry external dcl 76 ref 282 hcs_$initiate 000074 constant entry external dcl 76 ref 266 290 hcs_$level_get 000076 constant entry external dcl 76 ref 132 hcs_$level_set 000100 constant entry external dcl 76 ref 147 245 461 hcs_$list_acl 000102 constant entry external dcl 76 ref 186 hcs_$replace_acl 000104 constant entry external dcl 76 ref 201 hcs_$status_ 000106 constant entry external dcl 76 ref 216 hcs_$terminate_noname 000110 constant entry external dcl 76 ref 239 240 450 451 header based structure level 2 dcl 1-18 high parameter fixed bin(17,0) dcl 399 set ref 396 401 404 404* highest_trans_seen 33 based fixed bin(17,0) array level 3 dcl 2-6 ref 428 idx parameter fixed bin(17,0) dcl 413 in procedure "copy_one_attendee" ref 410 416 420 421 422 423 424 425 426 428 idx 000243 automatic fixed bin(17,0) dcl 20 in procedure "forum_conversion_$convert" set ref 190* 191 193 193 194 195* 219* 220* 329* 330 331 340* 344 385* 386 386 387 387* idxs 001445 automatic structure level 1 dcl 54 set ref 391 391 inner_ring 000245 automatic fixed bin(3,0) dcl 20 set ref 133* 147* jdx 000244 automatic fixed bin(17,0) dcl 20 set ref 189* 192* 192 193 193 194 195 196 197 201* last_attendee_offset 117 based bit(18) level 3 dcl 1-18 set ref 170* last_time_attended 30 based fixed bin(71,0) array level 3 in structure "forum_control" dcl 2-6 in procedure "forum_conversion_$convert" ref 426 last_time_attended 22 based fixed bin(71,0) level 2 in structure "at" dcl 413 in procedure "copy_one_attendee" set ref 426* last_trans_idx 1 based fixed bin(17,0) level 2 dcl 1-114 set ref 331* last_trans_in_block 10 based fixed bin(17,0) level 2 dcl 1-77 set ref 327 373* 373 last_trans_offset 5 based bit(18) level 2 dcl 1-77 ref 346 length builtin function dcl 58 in procedure "forum_conversion_$convert" ref 151 151 221 221 285 285 length 21527 based fixed bin(21,0) array level 3 in structure "forum_control" dcl 2-6 in procedure "forum_conversion_$convert" ref 335 lock_attempts 000100 automatic fixed bin(17,0) dcl 259 set ref 302* locked 000247 automatic bit(1) dcl 20 set ref 137* 301* 447 low parameter fixed bin(17,0) dcl 399 set ref 396 401 401 405 405* me 000010 constant char(24) initial unaligned dcl 20 set ref 141* 252* message based char(256) unaligned dcl 20 ref 181 message_change_pending 13(05) based bit(1) level 3 packed unaligned dcl 413 set ref 425* message_changed 26(16) based bit(1) array level 3 packed unaligned dcl 2-6 ref 425 message_loc 3 based fixed bin(17,0) level 2 packed unaligned dcl 2-6 ref 181 middle 000100 automatic fixed bin(17,0) dcl 399 set ref 401* 402 404 404 405 405 modes 10 based bit(36) array level 2 in structure "acl" dcl 42 in procedure "forum_conversion_$convert" set ref 194 195 197* modes 000101 automatic fixed bin(5,0) dcl 259 in procedure "initiate_old_meeting" set ref 269* 272 273 295* 298 msg_init 2(03) based bit(1) level 3 packed unaligned dcl 2-6 ref 181 n 000460 automatic fixed bin(17,0) level 2 in structure "v" dcl 50 in procedure "forum_conversion_$convert" set ref 390* n 001445 automatic fixed bin(17,0) level 2 in structure "idxs" dcl 54 in procedure "forum_conversion_$convert" set ref 390* name 000250 automatic char(32) unaligned dcl 20 set ref 130* 141* 151 153 154 160* 161* 168 222* 252* 457* 458* names_relp 0(18) based bit(18) level 3 packed unaligned dcl 4-8 ref 220 226 454 next_block_offset 4(18) based bit(18) level 2 packed unaligned dcl 1-114 set ref 370* nnames 0(02) based fixed bin(16,0) level 3 in structure "status_branch" packed unsigned unaligned dcl 4-8 in procedure "forum_conversion_$convert" ref 219 226 454 nnames 0(02) 000313 automatic fixed bin(16,0) level 3 in structure "sb" packed unsigned unaligned dcl 42 in procedure "forum_conversion_$convert" set ref 136* 454 no_attendees 3(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-6 ref 232 277 277 385 390 no_read_permission 000000 stack reference condition dcl 58 ref 263 no_transactions 2(18) based fixed bin(17,0) level 2 packed unaligned dcl 2-6 ref 323 notify 26(12) based bit(1) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 423 notify 13(03) based bit(1) level 3 in structure "at" packed unaligned dcl 413 in procedure "copy_one_attendee" set ref 423* null builtin function dcl 58 ref 135 167 186 186 236 267 291 447 453 456 od 000326 automatic structure level 1 dcl 42 set ref 164* 234 234 340 340 428 428 offset 21526 based fixed bin(35,0) array level 3 in structure "forum_control" dcl 2-6 in procedure "forum_conversion_$convert" ref 336 offset 5 based bit(18) array level 3 in structure "transaction_block" packed unaligned dcl 1-114 in procedure "forum_conversion_$convert" set ref 330* old_block_offset 002562 automatic bit(18) unaligned dcl 367 set ref 369* 375 one_transaction based structure level 1 dcl 2-45 open_data based structure level 1 dcl 3-5 participating 13(01) based bit(1) level 3 packed unaligned dcl 413 set ref 421* person_id 16 based char(22) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" set ref 386 416* person_id 000270 automatic char(22) unaligned dcl 20 in procedure "forum_conversion_$convert" set ref 149* 158 person_id 5 based char(22) level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 158 172 person_id 2 based char(22) level 3 in structure "transaction" packed unaligned dcl 1-91 in procedure "forum_conversion_$convert" set ref 347* person_id 5 based char(22) level 4 in structure "attendee_seg" dcl 1-18 in procedure "forum_conversion_$convert" set ref 172* 210 person_id 21466 based char(22) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 347 pointer builtin function dcl 58 ref 220 226 454 pref 002523 automatic fixed bin(17,0) dcl 315 set ref 337* 338 338* 340* prev_block_offset 4 based bit(18) level 2 packed unaligned dcl 1-114 set ref 375* prior_ref_index 21477 based fixed bin(17,0) array level 3 dcl 2-6 ref 337 privileged 000276 automatic bit(1) dcl 20 set ref 121* 127* 158 proceedings_name 000277 automatic char(32) unaligned dcl 20 set ref 154* 186* 290* proceedings_ptr 002464 automatic pointer dcl 2-3 set ref 135* 181 240* 290* 291 295* 336 451* proceedings_ptrs 64 000326 automatic pointer array level 2 dcl 42 set ref 167* project_id 13 based char(9) level 4 in structure "attendee_seg" dcl 1-18 in procedure "forum_conversion_$convert" set ref 173* project_id 12(18) based char(9) level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 173 project_id 000307 automatic char(9) unaligned dcl 20 in procedure "forum_conversion_$convert" set ref 149* project_id 21473(18) based char(11) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 348 project_id 7(18) based char(9) level 3 in structure "transaction" packed unaligned dcl 1-91 in procedure "forum_conversion_$convert" set ref 348* project_id 23(18) based char(11) array level 3 in structure "forum_control" packed unaligned dcl 2-6 in procedure "forum_conversion_$convert" ref 420 project_id 10 based char(9) level 2 in structure "at" dcl 413 in procedure "copy_one_attendee" set ref 420* ptr builtin function dcl 58 ref 181 326 336 346 356 371 real_name 000260 automatic char(32) unaligned dcl 20 set ref 220* 221* 221 221 222* rel builtin function dcl 58 ref 369 372 removed 26(13) based bit(1) array level 3 packed unaligned dcl 2-6 ref 421 rings 000102 automatic fixed bin(3,0) array dcl 259 set ref 269* 275 275 275 295* 299 299 299 rtrim builtin function dcl 58 ref 151 168 210 221 285 sb 000313 automatic structure level 1 dcl 42 set ref 215 seg_fault_error 000000 stack reference condition dcl 58 ref 264 set_lock_$lock 000112 constant entry external dcl 76 ref 303 set_lock_$unlock 000114 constant entry external dcl 76 ref 236 447 short based structure level 2 in structure "status_branch" dcl 4-8 in procedure "forum_conversion_$convert" short 000313 automatic structure level 2 in structure "sb" dcl 42 in procedure "forum_conversion_$convert" size builtin function dcl 58 ref 372 sort_items_indirect_$char 000116 constant entry external dcl 76 ref 391 status 000312 automatic fixed bin(35,0) dcl 20 set ref 161* 162 162* 186* 187 187* 201* 202 202* 207* 212* 216* 217 217* 222* 223 223 223* 252* 253 266* 267* 269* 270 270* 282* 283 283* 290* 291 291 293* 295* 296 296* 303* 304 305 306 306* 308* 340* 343 343* 416* 418 418* 428* 430 430* 439* status_area_ptr 002466 automatic pointer dcl 4-47 set ref 185* 186* 216* 220 226 454 status_branch based structure level 1 dcl 4-8 status_entry_names based char(32) array dcl 4-47 ref 220 226 454 status_ptr 002470 automatic pointer dcl 4-47 set ref 215* 216* 219 220 226 226 454 454 subject 21501 based char(72) array level 3 packed unaligned dcl 2-6 set ref 340* substr builtin function dcl 58 ref 154 160 221 288 time 2 based fixed bin(71,0) level 2 in structure "transaction_block" dcl 1-114 in procedure "forum_conversion_$convert" set ref 356* time 21524 based fixed bin(71,0) array level 3 in structure "forum_control" dcl 2-6 in procedure "forum_conversion_$convert" ref 349 time 14 based fixed bin(71,0) level 2 in structure "transaction" dcl 1-91 in procedure "forum_conversion_$convert" set ref 349* 356 trans_idx 002524 automatic fixed bin(17,0) dcl 315 set ref 323* 324 327 329 335 336 337 340 340 344 347 348 349 350 351* 374 trans_len 002530 automatic fixed bin(17,0) dcl 315 set ref 335* 340 340 trans_ptr 002526 automatic pointer dcl 315 set ref 336* 340 trans_text based char unaligned dcl 315 set ref 340* transaction based structure level 1 unaligned dcl 1-91 transaction_block based structure level 1 unaligned dcl 1-114 set ref 372 transaction_block_ptr 002456 automatic pointer dcl 1-8 set ref 326* 329 330 331 369 370 371* 372 372 373 374 375 transaction_count 2 based fixed bin(17,0) level 2 dcl 1-77 set ref 332* 332 transaction_ptr 002454 automatic pointer dcl 1-8 set ref 346* 347 348 349 350 351 353 356 transaction_seg based structure level 1 dcl 1-77 transaction_seg_ptr 62 000326 automatic pointer level 2 in structure "od" dcl 42 in procedure "forum_conversion_$convert" set ref 166* transaction_seg_ptr 002450 automatic pointer dcl 1-8 in procedure "forum_conversion_$convert" set ref 135* 161* 166 325 325 326 326 327 332 332 346 346 353 353 355 356 356 358 370 370 371 371 372 373 373 transactions 5 based structure array level 2 in structure "transaction_block" packed unaligned dcl 1-114 in procedure "forum_conversion_$convert" set ref 373 transactions 21466 based structure array level 2 in structure "forum_control" dcl 2-6 in procedure "forum_conversion_$convert" unfilled 21476(11) based bit(1) array level 3 packed unaligned dcl 2-6 ref 340 unspec builtin function dcl 58 set ref 164* 280 user_info_$whoami 000120 constant entry external dcl 76 ref 149 user_ring 000246 automatic fixed bin(3,0) dcl 20 set ref 132* 245* 461* v 000460 automatic structure level 1 dcl 50 set ref 391 391 vector 1 001445 automatic fixed bin(18,0) array level 2 in structure "idxs" dcl 54 in procedure "forum_conversion_$convert" set ref 387* 402 vector 1 000460 automatic pointer array level 2 in structure "v" packed unaligned dcl 50 in procedure "forum_conversion_$convert" set ref 386* xmodes 11 based bit(36) array level 2 dcl 42 set ref 194* 195* 196* 206* 211* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ATTENDEE_SEG_VERSION_1 internal static char(8) initial unaligned dcl 1-123 ATTENDEE_VERSION_1 internal static fixed bin(17,0) initial dcl 1-132 A_ACCESS internal static bit(3) initial unaligned dcl 5-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 5-33 Directory internal static fixed bin(17,0) initial dcl 4-56 E_ACCESS internal static bit(3) initial unaligned dcl 5-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 Link internal static fixed bin(17,0) initial dcl 4-56 M_ACCESS internal static bit(3) initial unaligned dcl 5-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 PROCEEDINGS_SEG_NAME internal static char(32) initial unaligned dcl 1-127 REW_ACCESS internal static bit(3) initial unaligned dcl 5-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 RE_ACCESS internal static bit(3) initial unaligned dcl 5-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 SA_ACCESS internal static bit(3) initial unaligned dcl 5-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array unaligned dcl 5-30 SMA_ACCESS internal static bit(3) initial unaligned dcl 5-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 SM_ACCESS internal static bit(3) initial unaligned dcl 5-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 S_ACCESS internal static bit(3) initial unaligned dcl 5-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 Segment internal static fixed bin(17,0) initial dcl 4-56 TRANSACTION_SEG_NAME internal static char(32) initial unaligned dcl 1-127 TRANSACTION_VERSION_1 internal static fixed bin(17,0) initial dcl 1-132 TRANS_SEG_VERSION_1 internal static char(8) initial unaligned dcl 1-123 W_ACCESS internal static bit(3) initial unaligned dcl 5-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 5-36 alloc_bit_map_length automatic fixed bin(17,0) dcl 1-72 bit_map based structure level 1 dcl 1-67 forum_idx automatic fixed bin(17,0) dcl 20 forum_message automatic structure level 1 dcl 2-63 forum_seg_mgr_$lock 000000 constant entry external dcl 76 hcs_$delentry_seg 000000 constant entry external dcl 76 ipc_message based fixed bin(71,0) dcl 2-60 jdx automatic fixed bin(17,0) dcl 413 msg_ptr internal static pointer dcl 2-60 open_data_ptr automatic pointer dcl 3-3 status_area based area(1024) dcl 20 status_link based structure level 1 dcl 4-38 status_pathname based char dcl 4-47 NAMES DECLARED BY EXPLICIT CONTEXT. COMMON 000166 constant label dcl 129 ref 122 PUNT 001621 constant label dcl 249 ref 440 cleanup_handler 003370 constant entry internal dcl 443 ref 145 249 copy_attendees 003107 constant entry internal dcl 396 ref 232 404 405 copy_one_attendee 003175 constant entry internal dcl 410 ref 402 copy_transactions 002533 constant entry internal dcl 312 ref 228 error 003353 constant entry internal dcl 434 ref 142 152 158 162 187 202 217 223 263 264 267 270 272 273 275 277 280 283 286 288 291 293 296 298 299 306 308 343 344 418 430 forum_conversion_$convert 000120 constant entry external dcl 6 forum_conversion_$priv_convert 000144 constant entry external dcl 124 get_new_block 003001 constant entry internal dcl 364 ref 327 initiate_old_meeting 001667 constant entry internal dcl 256 ref 156 sort_attendees 003032 constant entry internal dcl 382 ref 230 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 4404 4526 3570 4414 Length 5126 3570 122 363 613 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME forum_conversion_$convert 1598 external procedure is an external procedure. on unit on line 139 100 on unit enables or reverts conditions. on unit on line 140 64 on unit on unit on line 145 64 on unit initiate_old_meeting 116 internal procedure enables or reverts conditions. on unit on line 263 70 on unit on unit on line 264 70 on unit copy_transactions internal procedure shares stack frame of external procedure forum_conversion_$convert. get_new_block internal procedure shares stack frame of external procedure forum_conversion_$convert. sort_attendees internal procedure shares stack frame of external procedure forum_conversion_$convert. copy_attendees 106 internal procedure calls itself recursively. copy_one_attendee internal procedure shares stack frame of internal procedure copy_attendees. error 64 internal procedure is called by several nonquick procedures. cleanup_handler 88 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME copy_attendees 000100 middle copy_attendees forum_conversion_$convert 000100 acl_count forum_conversion_$convert 000102 acl_ptr forum_conversion_$convert 000104 cleaning_up forum_conversion_$convert 000105 directory forum_conversion_$convert 000157 dirname_buffer forum_conversion_$convert 000231 dirname_len forum_conversion_$convert 000232 forum_control_entry forum_conversion_$convert 000242 forum_name_len forum_conversion_$convert 000243 idx forum_conversion_$convert 000244 jdx forum_conversion_$convert 000245 inner_ring forum_conversion_$convert 000246 user_ring forum_conversion_$convert 000247 locked forum_conversion_$convert 000250 name forum_conversion_$convert 000260 real_name forum_conversion_$convert 000270 person_id forum_conversion_$convert 000276 privileged forum_conversion_$convert 000277 proceedings_name forum_conversion_$convert 000307 project_id forum_conversion_$convert 000312 status forum_conversion_$convert 000313 sb forum_conversion_$convert 000326 od forum_conversion_$convert 000460 v forum_conversion_$convert 001445 idxs forum_conversion_$convert 002446 attendee_seg_ptr forum_conversion_$convert 002450 transaction_seg_ptr forum_conversion_$convert 002452 attendee_ptr forum_conversion_$convert 002454 transaction_ptr forum_conversion_$convert 002456 transaction_block_ptr forum_conversion_$convert 002460 bit_map_ptr forum_conversion_$convert 002462 forum_control_ptr forum_conversion_$convert 002464 proceedings_ptr forum_conversion_$convert 002466 status_area_ptr forum_conversion_$convert 002470 status_ptr forum_conversion_$convert 002522 block_offset copy_transactions 002523 pref copy_transactions 002524 trans_idx copy_transactions 002526 trans_ptr copy_transactions 002530 trans_len copy_transactions 002562 old_block_offset get_new_block initiate_old_meeting 000100 lock_attempts initiate_old_meeting 000101 modes initiate_old_meeting 000102 rings initiate_old_meeting THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out call_int_this call_int_other return tra_ext enable shorten_stack ext_entry_desc int_entry trunc_fx2 divide_fx1 free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. forum_logger_ forum_logger_$any_other forum_seg_mgr_$just_create forum_seg_mgr_$terminate_all forum_space_mgr_$allocate_bit_map forum_space_mgr_$get_attendee_slot forum_trans_mgr_$load_trans get_ring_ get_system_free_area_ hcs_$add_acl_entries hcs_$chname_file hcs_$del_dir_tree hcs_$delentry_file hcs_$fs_get_brackets hcs_$fs_get_path_name hcs_$initiate hcs_$level_get hcs_$level_set hcs_$list_acl hcs_$replace_acl hcs_$status_ hcs_$terminate_noname set_lock_$lock set_lock_$unlock sort_items_indirect_$char user_info_$whoami THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$invalid_lock_reset error_table_$lock_wait_time_exceeded error_table_$moderr error_table_$noentry error_table_$seg_busted error_table_$segnamedup forum_data_$forum_ring forum_et_$chairman_only forum_et_$invalid_trans_idx forum_et_$not_a_forum forum_et_$unexpected_fault LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000114 121 000140 122 000141 124 000142 127 000164 129 000166 130 000174 132 000201 133 000210 135 000217 136 000225 137 000231 139 000233 140 000247 141 000264 142 000325 143 000335 145 000336 147 000360 149 000367 151 000410 152 000423 153 000436 154 000441 156 000456 158 000463 160 000501 161 000516 162 000547 164 000557 165 000562 166 000564 167 000566 168 000601 170 000640 171 000644 172 000645 173 000651 175 000654 176 000661 177 000666 178 000673 179 000700 181 000705 183 000720 185 000723 186 000732 187 000773 189 001003 190 001004 191 001013 192 001023 193 001024 194 001036 195 001046 196 001055 197 001061 199 001065 201 001067 202 001131 204 001141 205 001151 206 001155 207 001156 210 001214 211 001244 212 001247 213 001305 215 001311 216 001313 217 001351 219 001361 220 001373 221 001404 222 001432 223 001463 225 001476 226 001500 228 001513 230 001514 232 001515 234 001534 236 001545 239 001563 240 001575 245 001607 246 001616 247 001620 249 001621 252 001627 253 001662 254 001665 256 001666 263 001674 264 001720 266 001744 267 002010 269 002024 270 002042 272 002054 273 002070 275 002102 277 002120 280 002141 282 002157 283 002211 285 002223 286 002237 288 002253 290 002273 291 002337 293 002362 295 002371 296 002407 298 002421 299 002434 301 002452 302 002455 303 002463 304 002501 305 002504 306 002507 307 002520 308 002522 310 002532 312 002533 322 002534 323 002535 324 002547 325 002555 326 002557 327 002563 329 002567 330 002573 331 002600 332 002602 333 002604 335 002605 336 002607 337 002614 338 002616 340 002623 343 002676 344 002706 346 002720 347 002725 348 002734 349 002744 350 002746 351 002753 353 002760 355 002764 356 002767 358 002774 361 002776 362 003000 364 003001 369 003002 370 003004 371 003013 372 003017 373 003023 374 003025 375 003027 377 003031 382 003032 385 003033 386 003045 387 003052 388 003054 390 003056 391 003064 393 003105 396 003106 401 003114 402 003131 404 003136 405 003155 407 003174 410 003175 416 003177 418 003227 420 003241 421 003254 422 003264 423 003271 424 003276 425 003303 426 003310 428 003312 430 003337 432 003351 434 003352 439 003360 440 003364 443 003367 446 003375 447 003400 450 003417 451 003432 453 003445 454 003456 456 003476 457 003503 458 003525 461 003550 463 003560 ----------------------------------------------------------- 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