COMPILATION LISTING OF SEGMENT suffix_bj_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/04/85 0933.4 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION: 8* 9* This is the file system interface for before journals. When 10* the file system encounters an entity with a suffix of .bj, it 11* calls suffix_bj_$validate. If the entity is validated as a 12* before journal, all future file system operations for the journal 13* will be forwarded to this module (e.g., ACL manipulation). 14* 15* DEFINITION: a before journal is an unprotected Data 16* Management file, with read and write ring brackets of the DM 17* ring, and with a suffix of .bj on all its names in the containing 18* directory. The DM ring is defined as the ring of execution after 19* transfering through dm_gate_, equal to sys_info$data_mgmt_ringno 20* except in test DM systems. 21**/ 22 23 /* HISTORY: 24* 25*Written by M. Pandolf, 10/31/83. 26*Modified: 27*02/29/84 by Michael Pandolf: Changed to not call file_manager_ 28* directly, but use fs_util_$make_entry_for_type. 29*06/11/84 by Lee Baldwin: Renamed dm_error_$bj_header_bad to 30* $bj_bad_header. 31*12/14/84 by Lee A. Newcomb: Changed to NOT use fs_util_$make_entry_for_type 32* as many file_manager_ operations are not supported for before 33* journals (e.g., switches); fixed to call before_journal_manager_ 34* entrypoints as before journals are only available in the DM ring, 35* fixed $suffix_info to check the input version of the suffix_info 36* structure and to return error_table_$unsupported_operation for 37* for all unsupported file system operations not allowed for BJ's. 38**/ 39 40 /* format: style2,ll79,ind3,^indprocbody,ifthendo,ifthen,^indnoniterdo */ 41 /* format: ^inddcls,dclind5,idind35,linecom */ 42 43 suffix_bj_$suffix_info: 44 proc (p_suffix_info_ptr); /* START OF DECLARATIONS */ 45 46 /* Parameter */ 47 dcl ( 48 p_acl_ptr ptr, 49 p_bit_count fixed bin (24), 50 p_code fixed bin (35), 51 p_copy_options_ptr ptr, 52 p_dir_name char (*), 53 p_entry_name char (*), 54 p_exmodes bit (36) aligned, 55 p_max_length fixed bin (19), 56 p_modes bit (36) aligned, 57 p_new_name char (*), 58 p_no_sysdaemon bit (1), 59 p_old_name char (*), 60 p_ring fixed bin, 61 p_ring_brackets dim (*) fixed bin (3), 62 p_switch_list_ptr ptr, 63 p_switch_name char (*), 64 p_suffix_info_ptr ptr, 65 p_user_area_ptr ptr, 66 p_user_name char (*), 67 p_value bit (1) aligned, 68 p_version_wanted char (*) 69 ) parameter; 70 71 /* Automatic */ 72 dcl ( 73 entrypoint_name char (32) /* set if ERROR_SIGNAL can be called */ 74 ) automatic; 75 76 /* Based */ 77 /* Builtin */ 78 dcl (addr, null) builtin; 79 80 /* Condition */ 81 /* Constant */ 82 dcl ( 83 myname char (32) varying init ("suffix_bj_"), 84 IOA_GENERAL_RS_NO_NEW_LINE bit (1) aligned init ("0"b), 85 IOA_GENERAL_RS_DONT_PAD bit (1) aligned init ("1"b) 86 ) internal static options (constant); 87 88 /* Entry */ 89 dcl ( 90 before_journal_manager_$add_acl_entries 91 entry (char (*), char (*), ptr, 92 fixed bin (35)), 93 before_journal_manager_$chname_file 94 entry (char (*), char (*), char (*), 95 char (*), fixed bin (35)), 96 before_journal_manager_$delete_acl_entries 97 entry (char (*), char (*), ptr, 98 fixed bin (35)), 99 before_journal_manager_$delete_bj entry (char (*), char (*), 100 fixed bin (35)), 101 before_journal_manager_$get_user_access_modes 102 entry (char (*), char (*), char (*), 103 fixed bin, bit (36) aligned, 104 bit (36) aligned, fixed bin (35)), 105 before_journal_manager_$list_acl entry (char (*), char (*), char (*), 106 ptr, ptr, fixed bin (35)), 107 before_journal_manager_$replace_acl 108 entry (char (*), char (*), ptr, bit, 109 fixed bin (35)), 110 before_journal_manager_$validate entry (char (*), char (*), 111 fixed bin (35)), 112 cu_$arg_list_ptr entry (ptr), 113 ioa_$general_rs entry (ptr, fixed bin, fixed bin, 114 char (*), fixed bin (21), 115 bit (1) aligned, bit (1) aligned), 116 sub_err_ entry () options (variable) 117 ) external; 118 119 /* External */ 120 dcl ( 121 1 bj_suffix_info_$ aligned like suffix_info, 122 bj_suffix_info_$version char (8) aligned, 123 ( 124 error_table_$null_info_ptr, 125 error_table_$unimplemented_version, 126 error_table_$unsupported_operation 127 ) fixed bin (35) 128 ) external static; 129 130 /* END OF DECLARATIONS */ 131 132 /* DO SUPPORTED OPERATIONS WHOLLY CONTAINED IN THIS MODULE FIRST: */ 133 134 135 /* repeat main procedure statement for reader's convenience: */ 136 /* */ 137 /* suffix_bj_$suffix_info: */ 138 /* proc (p_suffix_info_ptr); */ 139 140 suffix_info_ptr = p_suffix_info_ptr; 141 entrypoint_name = "suffix_info"; 142 143 if suffix_info_ptr = null () then 144 call ERROR_SIGNAL (error_table_$null_info_ptr, 145 "caller must allocate suffix_info storage."); 146 else call CHECK_VERSION (bj_suffix_info_$version, suffix_info.version, 147 "suffix_info"); 148 149 suffix_info_ptr -> suffix_info = addr (bj_suffix_info_$) -> suffix_info; 150 151 call RETURN (); 152 153 /* SUPPORTED OPERATIONS FOR WHICH WE MUST CALL */ 154 /* before_journal_manager_ TO DO THE REAL WORK. */ 155 156 suffix_bj_$add_acl_entries: 157 entry (p_dir_name, p_entry_name, p_acl_ptr, p_code); 158 159 call before_journal_manager_$add_acl_entries (p_dir_name, p_entry_name, 160 p_acl_ptr, p_code); 161 162 call RETURN (); 163 164 /* end suffix_bj_$add_acl_entries; */ 165 166 167 168 169 suffix_bj_$chname_file: 170 entry (p_dir_name, p_entry_name, p_old_name, p_new_name, p_code); 171 172 call before_journal_manager_$chname_file (p_dir_name, p_entry_name, 173 p_old_name, p_new_name, p_code); 174 175 call RETURN (); 176 177 /* end suffix_bj_$chname_file; */ 178 179 180 181 182 suffix_bj_$delentry_file: 183 entry (p_dir_name, p_entry_name, p_code); 184 185 call before_journal_manager_$delete_bj (p_dir_name, p_entry_name, p_code); 186 187 call RETURN (); 188 189 /* end suffix_bj_$delentry_file; */ 190 191 192 193 194 suffix_bj_$delete_acl_entries: 195 entry (p_dir_name, p_entry_name, p_acl_ptr, p_code); 196 197 call before_journal_manager_$delete_acl_entries (p_dir_name, p_entry_name, 198 p_acl_ptr, p_code); 199 200 call RETURN (); 201 202 /* end suffix_bj_$delete_acl_entries; */ 203 204 suffix_bj_$get_user_access_modes: 205 entry (p_dir_name, p_entry_name, p_user_name, p_ring, p_modes, p_exmodes, 206 p_code); 207 208 call before_journal_manager_$get_user_access_modes (p_dir_name, 209 p_entry_name, p_user_name, p_ring, p_modes, p_exmodes, p_code); 210 211 call RETURN (); 212 213 /* end suffix_bj_$get_user_access_modes; */ 214 215 216 217 218 suffix_bj_$list_acl: 219 entry (p_dir_name, p_entry_name, p_version_wanted, p_user_area_ptr, 220 p_acl_ptr, p_code); 221 222 call before_journal_manager_$list_acl (p_dir_name, p_entry_name, 223 p_version_wanted, p_user_area_ptr, p_acl_ptr, p_code); 224 225 call RETURN (); 226 227 /* end suffix_bj_$list_acl; */ 228 229 230 231 232 suffix_bj_$replace_acl: 233 entry (p_dir_name, p_entry_name, p_acl_ptr, p_no_sysdaemon, p_code); 234 235 call before_journal_manager_$replace_acl (p_dir_name, p_entry_name, 236 p_acl_ptr, p_no_sysdaemon, p_code); 237 238 call RETURN (); 239 240 /* end suffix_bj_$replace_acl; */ 241 242 243 244 245 suffix_bj_$validate: 246 entry (p_dir_name, p_entry_name, p_code); 247 248 call before_journal_manager_$validate (p_dir_name, p_entry_name, p_code); 249 250 call RETURN (); 251 252 /* end suffix_bj_$validate; */ 253 254 /* NOW HANDLE THOSE OPERATIONS NOT SUPPORTED FOR BEFORE JOURNALS. */ 255 /* ALL ENTRIES FALL THROUGH TO SET THE STATUS CODE AND RETURN. */ 256 257 suffix_bj_$add_extended_acl_entries: 258 entry (p_dir_name, p_entry_name, p_acl_ptr, p_code); 259 260 suffix_bj_$copy: 261 entry (p_copy_options_ptr, p_code); 262 263 suffix_bj_$get_bit_count: 264 entry (p_dir_name, p_entry_name, p_bit_count, p_code); 265 266 suffix_bj_$get_max_length: 267 entry (p_dir_name, p_entry_name, p_max_length, p_code); 268 269 suffix_bj_$get_ring_brackets: 270 entry (p_dir_name, p_entry_name, p_ring_brackets, p_code); 271 272 suffix_bj_$get_switch: 273 entry (p_dir_name, p_entry_name, p_switch_name, p_value, p_code); 274 275 suffix_bj_$list_extended_acl_entries: 276 entry (p_dir_name, p_entry_name, p_version_wanted, p_user_area_ptr, 277 p_acl_ptr, p_code); 278 279 suffix_bj_$list_switches: 280 entry (p_dir_name, p_entry_name, p_switch_list_ptr, p_code); 281 282 suffix_bj_$replace_extended_acl: 283 entry (p_dir_name, p_entry_name, p_acl_ptr, p_no_sysdaemon, p_code); 284 285 suffix_bj_$set_bit_count: 286 entry (p_dir_name, p_entry_name, p_bit_count, p_code); 287 288 suffix_bj_$set_max_length: 289 entry (p_dir_name, p_entry_name, p_max_length, p_code); 290 291 suffix_bj_$set_ring_brackets: 292 entry (p_dir_name, p_entry_name, p_ring_brackets, p_code); 293 294 suffix_bj_$set_switch: 295 entry (p_dir_name, p_entry_name, p_switch_name, p_value, p_code); 296 297 call ERROR_RETURN (error_table_$unsupported_operation); 298 299 MAIN_RETURN: 300 return; 301 302 RETURN: 303 proc (); 304 305 /* This proc is used when 1) there is no code parameter to set, or */ 306 /* 2) the code parameter has been set by an external procedure. */ 307 308 go to MAIN_RETURN; 309 310 end RETURN; 311 312 313 ERROR_RETURN: 314 proc (er_p_code); 315 316 dcl er_p_code fixed bin (35) parameter; 317 318 p_code = er_p_code; 319 go to MAIN_RETURN; 320 321 end ERROR_RETURN; 322 323 324 325 326 CHECK_VERSION: 327 proc (cv_p_expected_version, cv_p_given_version, cv_p_structure_name); 328 329 dcl ( 330 cv_p_expected_version char (8) aligned, 331 cv_p_given_version char (8) aligned, 332 cv_p_structure_name char (*) 333 ) parameter; 334 335 if cv_p_expected_version ^= cv_p_given_version then 336 call ERROR_SIGNAL (error_table_$unimplemented_version, 337 "Expected version ^a of structure ^a, recieved ^a.", 338 cv_p_expected_version, cv_p_structure_name, cv_p_given_version); 339 340 return; 341 342 end CHECK_VERSION; 343 344 ERROR_SIGNAL: 345 proc options (variable); 346 347 dcl ( 348 er_arg_list_ptr ptr, 349 er_code fixed bin (35), 350 er_message char (1024), 351 er_message_length fixed bin (21) 352 ) automatic; 353 354 dcl ( 355 er_fixed_bin_35_value fixed bin (35), 356 er_message_overlay char (er_message_length) 357 ) based; 358 359 call cu_$arg_list_ptr (er_arg_list_ptr); 360 er_code = er_arg_list_ptr -> arg_list.arg_ptrs (1) -> er_fixed_bin_35_value; 361 362 call ioa_$general_rs (er_arg_list_ptr, 2, 3, er_message, er_message_length, 363 IOA_GENERAL_RS_DONT_PAD, IOA_GENERAL_RS_NO_NEW_LINE); 364 call sub_err_ (er_code, myname, ACTION_CANT_RESTART, null (), 0, 365 "By entry ^a: ^a.", entrypoint_name, 366 addr (er_message) -> er_message_overlay); 367 368 end ERROR_SIGNAL; 369 1 1 /* BEGIN INCLUDE FILE: suffix_info.incl.pl1 */ 1 2 /* format: style3,indcomtxt,idind30 */ 1 3 /**** Jay Pattin 2/13/83 1 4* M. Pandolf 1984.11.30 to set FS_OBJECT_TYPE_MSF to -multisegment_file 1 5* 1 6* The include file copy_flags.incl.pl1 must be included in any program using this include file. 1 7* 1 8* This structure is returned by the suffix_XXX_$suffix_info subroutines */ 1 9 1 10 declare suffix_info_ptr ptr; 1 11 1 12 declare 1 suffix_info aligned based (suffix_info_ptr), 1 13 2 version char (8), 1 14 2 type char (32) unaligned, 1 15 2 type_name char (32) unaligned, /* Singular name of the object type, e.g. "mailbox" */ 1 16 2 plural_name char (32) unaligned, /* Plural of above, e.g. "mailboxes" */ 1 17 2 flags unaligned, 1 18 3 standard_object bit (1) unaligned, /* ON if not an extended object (no suffix_XXX_) */ 1 19 3 extended_acl bit (1) unaligned, /* ON if uses extended ACLs, off if regular ACLs */ 1 20 3 has_switches bit (1) unaligned, /* ON if supports switches for objects */ 1 21 3 mbz1 bit (33) unaligned, 1 22 2 modes char (36), /* correspondence between bits and chars for extended modes */ 1 23 2 max_mode_len fixed bin, /* maximum number of modes on an object */ 1 24 2 num_ring_brackets fixed bin, /* number of ring brackets on object */ 1 25 2 copy_flags like copy_flags, /* See copy_flags.incl.pl1 */ 1 26 2 info_pathname char (168) unaligned; 1 27 /* pathname of info segment containing more info */ 1 28 1 29 declare SUFFIX_INFO_VERSION_1 char (8) static options (constant) init ("SUFFIX01"); 1 30 1 31 /* This information is returned by the suffix_XXX_$list_switches subroutines */ 1 32 1 33 declare switch_list_ptr ptr, 1 34 alloc_switch_count fixed bin, 1 35 alloc_switch_name_count fixed bin; 1 36 1 37 declare 1 switch_list aligned based (switch_list_ptr), 1 38 2 version char (8), /* SWITCH_LIST_VERSION_1 */ 1 39 2 switch_count fixed bin, /* total number of switches */ 1 40 2 switch_name_count fixed bin, /* total number of names */ 1 41 2 switches (alloc_switch_count refer (switch_list.switch_count)), 1 42 3 name_index fixed bin, /* index of first name for this switch */ 1 43 3 name_count fixed bin, /* number of names for this switch */ 1 44 3 default_value bit (1) aligned, /* default setting for this switch */ 1 45 3 mbz1 bit (36) aligned, /* reserved for future use */ 1 46 2 names (alloc_switch_name_count refer (switch_list.switch_name_count)) char (32); 1 47 1 48 declare SWITCH_LIST_VERSION_1 char (8) static options (constant) init ("SWLIST01"); 1 49 1 50 declare ( 1 51 FS_OBJECT_TYPE_SEGMENT init ("-segment"), 1 52 FS_OBJECT_TYPE_DIRECTORY init ("-directory"), 1 53 FS_OBJECT_TYPE_MSF init ("-multisegment_file"), 1 54 FS_OBJECT_TYPE_DM_FILE init ("-dm_file"), 1 55 FS_OBJECT_TYPE_LINK init ("-link") 1 56 ) char (32) unaligned int static options (constant); 1 57 1 58 /* END INCLUDE FILE: suffix_info.incl.pl1 */ 370 371 2 1 /* BEGIN INCLUDE FILE: copy_flags.incl.pl1 */ 2 2 2 3 /* Flags for attributes that should/may be copied by the copy_ subroutine. This include file is 2 4* required by suffix_info.incl.pl1 and copy_options.incl.pl1 2 5* 2 6* Jay Pattin 6/23/83 */ 2 7 2 8 declare 1 copy_flags aligned based, /* ON means that this attribute may be copied by copy_ */ 2 9 2 names bit (1) unaligned, 2 10 2 acl bit (1) unaligned, 2 11 2 ring_brackets bit (1) unaligned, 2 12 2 max_length bit (1) unaligned, 2 13 2 copy_switch bit (1) unaligned, 2 14 2 safety_switch bit (1) unaligned, 2 15 2 dumper_switches bit (1) unaligned, 2 16 2 entry_bound bit (1) unaligned, /* only for vanilla object segments */ 2 17 2 extend bit (1) unaligned, /* copy_ may append to end of existing object */ 2 18 2 update bit (1) unaligned, /* copy_ may replace contents of existing object */ 2 19 2 mbz bit (26) unaligned; 2 20 2 21 /* END INCLUDE FILE: copy_flags.incl.pl1 */ 372 373 3 1 /* BEGIN INCLUDE FILE ... arg_list.incl.pl1 3 2* 3 3* James R. Davis 10 May 79 */ 3 4 3 5 dcl 1 arg_list aligned based, 3 6 2 header, 3 7 3 arg_count fixed bin (17) unsigned unal, 3 8 3 pad1 bit (1) unal, 3 9 3 call_type fixed bin (18) unsigned unal, 3 10 3 desc_count fixed bin (17) unsigned unal, 3 11 3 pad2 bit (19) unal, 3 12 2 arg_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr, 3 13 2 desc_ptrs (arg_list_arg_count refer (arg_list.arg_count)) ptr; 3 14 3 15 3 16 3 17 dcl 1 arg_list_with_envptr aligned based, /* used with non-quick int and entry-var calls */ 3 18 2 header, 3 19 3 arg_count fixed bin (17) unsigned unal, 3 20 3 pad1 bit (1) unal, 3 21 3 call_type fixed bin (18) unsigned unal, 3 22 3 desc_count fixed bin (17) unsigned unal, 3 23 3 pad2 bit (19) unal, 3 24 2 arg_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr, 3 25 2 envptr ptr, 3 26 2 desc_ptrs (arg_list_arg_count refer (arg_list_with_envptr.arg_count)) ptr; 3 27 3 28 3 29 dcl ( 3 30 Quick_call_type init (0), 3 31 Interseg_call_type init (4), 3 32 Envptr_supplied_call_type 3 33 init (8) 3 34 ) fixed bin (18) unsigned unal int static options (constant); 3 35 3 36 /* The user must declare arg_list_arg_count - if an adjustable automatic structure 3 37* is being "liked" then arg_list_arg_count may be a parameter, in order to allocate 3 38* an argument list of the proper size in the user's stack 3 39* 3 40**/ 3 41 /* END INCLUDE FILE ... arg_list.incl.pl1 */ 374 375 4 1 /* BEGIN INCLUDE FILE sub_err_flags.incl.pl1 BIM 11/81 */ 4 2 /* format: style3 */ 4 3 4 4 /* These constants are to be used for the flags argument of sub_err_ */ 4 5 /* They are just "string (condition_info_header.action_flags)" */ 4 6 4 7 declare ( 4 8 ACTION_CAN_RESTART init (""b), 4 9 ACTION_CANT_RESTART init ("1"b), 4 10 ACTION_DEFAULT_RESTART 4 11 init ("01"b), 4 12 ACTION_QUIET_RESTART 4 13 init ("001"b), 4 14 ACTION_SUPPORT_SIGNAL 4 15 init ("0001"b) 4 16 ) bit (36) aligned internal static options (constant); 4 17 4 18 /* End include file */ 376 377 378 379 end suffix_bj_$suffix_info; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/04/85 0824.7 suffix_bj_.pl1 >spec>on>7192.pbf-04/04/85>suffix_bj_.pl1 370 1 03/05/85 1807.3 suffix_info.incl.pl1 >ldd>include>suffix_info.incl.pl1 372 2 10/14/83 1606.7 copy_flags.incl.pl1 >ldd>include>copy_flags.incl.pl1 374 3 10/23/81 1948.6 arg_list.incl.pl1 >ldd>include>arg_list.incl.pl1 376 4 04/16/82 0958.1 sub_err_flags.incl.pl1 >ldd>include>sub_err_flags.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. ACTION_CANT_RESTART 000000 constant bit(36) initial dcl 4-7 set ref 364* IOA_GENERAL_RS_DONT_PAD 000000 constant bit(1) initial dcl 82 set ref 362* IOA_GENERAL_RS_NO_NEW_LINE 000016 constant bit(1) initial dcl 82 set ref 362* addr builtin function dcl 78 ref 149 364 arg_list based structure level 1 dcl 3-5 arg_ptrs 2 based pointer array level 2 dcl 3-5 ref 360 before_journal_manager_$add_acl_entries 000010 constant entry external dcl 89 ref 159 before_journal_manager_$chname_file 000012 constant entry external dcl 89 ref 172 before_journal_manager_$delete_acl_entries 000014 constant entry external dcl 89 ref 197 before_journal_manager_$delete_bj 000016 constant entry external dcl 89 ref 185 before_journal_manager_$get_user_access_modes 000020 constant entry external dcl 89 ref 208 before_journal_manager_$list_acl 000022 constant entry external dcl 89 ref 222 before_journal_manager_$replace_acl 000024 constant entry external dcl 89 ref 235 before_journal_manager_$validate 000026 constant entry external dcl 89 ref 248 bj_suffix_info_$ 000036 external static structure level 1 dcl 120 set ref 149 bj_suffix_info_$version 000040 external static char(8) dcl 120 set ref 146* copy_flags based structure level 1 dcl 2-8 cu_$arg_list_ptr 000030 constant entry external dcl 89 ref 359 cv_p_expected_version parameter char(8) dcl 329 set ref 326 335 335* cv_p_given_version parameter char(8) dcl 329 set ref 326 335 335* cv_p_structure_name parameter char unaligned dcl 329 set ref 326 335* entrypoint_name 000100 automatic char(32) unaligned dcl 72 set ref 141* 364* er_arg_list_ptr 000100 automatic pointer dcl 347 set ref 359* 360 362* er_code 000102 automatic fixed bin(35,0) dcl 347 set ref 360* 364* er_fixed_bin_35_value based fixed bin(35,0) dcl 354 ref 360 er_message 000103 automatic char(1024) unaligned dcl 347 set ref 362* 364 er_message_length 000503 automatic fixed bin(21,0) dcl 347 set ref 362* 364 364 er_message_overlay based char unaligned dcl 354 set ref 364* er_p_code parameter fixed bin(35,0) dcl 316 ref 313 318 error_table_$null_info_ptr 000042 external static fixed bin(35,0) dcl 120 set ref 143* error_table_$unimplemented_version 000044 external static fixed bin(35,0) dcl 120 set ref 335* error_table_$unsupported_operation 000046 external static fixed bin(35,0) dcl 120 set ref 297* ioa_$general_rs 000032 constant entry external dcl 89 ref 362 myname 000001 constant varying char(32) initial dcl 82 set ref 364* null builtin function dcl 78 ref 143 364 364 p_acl_ptr parameter pointer dcl 47 set ref 156 159* 194 197* 218 222* 232 235* 257 275 282 p_bit_count parameter fixed bin(24,0) dcl 47 ref 263 285 p_code parameter fixed bin(35,0) dcl 47 set ref 156 159* 169 172* 182 185* 194 197* 204 208* 218 222* 232 235* 245 248* 257 260 263 266 269 272 275 279 282 285 288 291 294 318* p_copy_options_ptr parameter pointer dcl 47 ref 260 p_dir_name parameter char unaligned dcl 47 set ref 156 159* 169 172* 182 185* 194 197* 204 208* 218 222* 232 235* 245 248* 257 263 266 269 272 275 279 282 285 288 291 294 p_entry_name parameter char unaligned dcl 47 set ref 156 159* 169 172* 182 185* 194 197* 204 208* 218 222* 232 235* 245 248* 257 263 266 269 272 275 279 282 285 288 291 294 p_exmodes parameter bit(36) dcl 47 set ref 204 208* p_max_length parameter fixed bin(19,0) dcl 47 ref 266 288 p_modes parameter bit(36) dcl 47 set ref 204 208* p_new_name parameter char unaligned dcl 47 set ref 169 172* p_no_sysdaemon parameter bit(1) unaligned dcl 47 set ref 232 235* 282 p_old_name parameter char unaligned dcl 47 set ref 169 172* p_ring parameter fixed bin(17,0) dcl 47 set ref 204 208* p_ring_brackets parameter fixed bin(3,0) array dcl 47 ref 269 291 p_suffix_info_ptr parameter pointer dcl 47 ref 43 140 p_switch_list_ptr parameter pointer dcl 47 ref 279 p_switch_name parameter char unaligned dcl 47 ref 272 294 p_user_area_ptr parameter pointer dcl 47 set ref 218 222* 275 p_user_name parameter char unaligned dcl 47 set ref 204 208* p_value parameter bit(1) dcl 47 ref 272 294 p_version_wanted parameter char unaligned dcl 47 set ref 218 222* 275 sub_err_ 000034 constant entry external dcl 89 ref 364 suffix_info based structure level 1 dcl 1-12 set ref 149* 149 suffix_info_ptr 000110 automatic pointer dcl 1-10 set ref 140* 143 146 149 version based char(8) level 2 dcl 1-12 set ref 146* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. ACTION_CAN_RESTART internal static bit(36) initial dcl 4-7 ACTION_DEFAULT_RESTART internal static bit(36) initial dcl 4-7 ACTION_QUIET_RESTART internal static bit(36) initial dcl 4-7 ACTION_SUPPORT_SIGNAL internal static bit(36) initial dcl 4-7 Envptr_supplied_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 3-29 FS_OBJECT_TYPE_DIRECTORY internal static char(32) initial unaligned dcl 1-50 FS_OBJECT_TYPE_DM_FILE internal static char(32) initial unaligned dcl 1-50 FS_OBJECT_TYPE_LINK internal static char(32) initial unaligned dcl 1-50 FS_OBJECT_TYPE_MSF internal static char(32) initial unaligned dcl 1-50 FS_OBJECT_TYPE_SEGMENT internal static char(32) initial unaligned dcl 1-50 Interseg_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 3-29 Quick_call_type internal static fixed bin(18,0) initial unsigned unaligned dcl 3-29 SUFFIX_INFO_VERSION_1 internal static char(8) initial unaligned dcl 1-29 SWITCH_LIST_VERSION_1 internal static char(8) initial unaligned dcl 1-48 alloc_switch_count automatic fixed bin(17,0) dcl 1-33 alloc_switch_name_count automatic fixed bin(17,0) dcl 1-33 arg_list_with_envptr based structure level 1 dcl 3-17 switch_list based structure level 1 dcl 1-37 switch_list_ptr automatic pointer dcl 1-33 NAMES DECLARED BY EXPLICIT CONTEXT. CHECK_VERSION 001571 constant entry internal dcl 326 ref 146 ERROR_RETURN 001564 constant entry internal dcl 313 ref 297 ERROR_SIGNAL 001651 constant entry internal dcl 344 ref 143 335 MAIN_RETURN 001561 constant label dcl 299 ref 308 319 RETURN 001562 constant entry internal dcl 302 ref 151 162 175 187 200 211 225 238 250 suffix_bj_$add_acl_entries 000211 constant entry external dcl 156 suffix_bj_$add_extended_acl_entries 001067 constant entry external dcl 257 suffix_bj_$chname_file 000274 constant entry external dcl 169 suffix_bj_$copy 001121 constant entry external dcl 260 suffix_bj_$delentry_file 000372 constant entry external dcl 182 suffix_bj_$delete_acl_entries 000444 constant entry external dcl 194 suffix_bj_$get_bit_count 001137 constant entry external dcl 263 suffix_bj_$get_max_length 001170 constant entry external dcl 266 suffix_bj_$get_ring_brackets 001221 constant entry external dcl 269 suffix_bj_$get_switch 001252 constant entry external dcl 272 suffix_bj_$get_user_access_modes 000530 constant entry external dcl 204 suffix_bj_$list_acl 000632 constant entry external dcl 218 suffix_bj_$list_extended_acl_entries 001305 constant entry external dcl 275 suffix_bj_$list_switches 001342 constant entry external dcl 279 suffix_bj_$replace_acl 000731 constant entry external dcl 232 suffix_bj_$replace_extended_acl 001370 constant entry external dcl 282 suffix_bj_$set_bit_count 001420 constant entry external dcl 285 suffix_bj_$set_max_length 001446 constant entry external dcl 288 suffix_bj_$set_ring_brackets 001474 constant entry external dcl 291 suffix_bj_$set_switch 001522 constant entry external dcl 294 suffix_bj_$suffix_info 000111 constant entry external dcl 43 suffix_bj_$validate 001015 constant entry external dcl 245 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2774 3044 2012 3004 Length 3422 2012 50 341 761 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME suffix_bj_$suffix_info 250 external procedure is an external procedure. RETURN internal procedure shares stack frame of external procedure suffix_bj_$suffix_info. ERROR_RETURN internal procedure shares stack frame of external procedure suffix_bj_$suffix_info. CHECK_VERSION internal procedure shares stack frame of external procedure suffix_bj_$suffix_info. ERROR_SIGNAL 396 internal procedure is declared options(variable). STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ERROR_SIGNAL 000100 er_arg_list_ptr ERROR_SIGNAL 000102 er_code ERROR_SIGNAL 000103 er_message ERROR_SIGNAL 000503 er_message_length ERROR_SIGNAL suffix_bj_$suffix_info 000100 entrypoint_name suffix_bj_$suffix_info 000110 suffix_info_ptr suffix_bj_$suffix_info THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out call_int_this_desc return ext_entry ext_entry_desc int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. before_journal_manager_$add_acl_entries before_journal_manager_$chname_file before_journal_manager_$delete_acl_entries before_journal_manager_$delete_bj before_journal_manager_$get_user_access_modes before_journal_manager_$list_acl before_journal_manager_$replace_acl before_journal_manager_$validate cu_$arg_list_ptr ioa_$general_rs sub_err_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. bj_suffix_info_$ bj_suffix_info_$version error_table_$null_info_ptr error_table_$unimplemented_version error_table_$unsupported_operation LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 43 000106 140 000116 141 000122 143 000125 146 000151 149 000174 151 000202 156 000203 159 000236 162 000265 169 000266 172 000331 175 000364 182 000365 185 000415 187 000440 194 000441 197 000471 200 000520 204 000521 208 000560 211 000622 218 000623 222 000664 225 000722 232 000723 235 000756 238 001011 245 001012 248 001040 250 001063 257 001064 260 001114 263 001131 266 001162 269 001213 272 001244 275 001302 279 001337 282 001365 285 001415 288 001443 291 001471 294 001517 297 001552 299 001561 302 001562 308 001563 313 001564 318 001566 319 001570 326 001571 335 001602 340 001647 344 001650 359 001656 360 001664 362 001667 364 001732 368 002011 ----------------------------------------------------------- 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