COMPILATION LISTING OF SEGMENT suffix_pnt_ Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 03/05/85 1107.6 mst Tue Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* format: style2 */ 7 8 /* SUFFIX_PNT_: This program provides the extended object interface to the 9* PNT software. It allows the extended object commands, copy, rename, etc. 10* to manipulate PNTs as extended objects. All PNTs have the suffix "pnt". */ 11 12 suffix_pnt_: 13 procedure (); 14 15 return; /* Not a valid entry point */ 16 17 /* Written 1984-07-25 by E. Swenson */ 18 /* Modified 1984-09-18 by E. Swenson to make pnt_fs_gate_ the unprivileged 19* interface to the Ring-1 PNT. */ 20 /* Modified 1985-01-31 by E. Swenson to not reject invalid copy options */ 21 22 /* Parameters */ 23 24 dcl P_acl_ptr ptr parameter; 25 dcl P_area_ptr ptr parameter; 26 dcl P_code fixed bin (35) parameter; 27 dcl P_copy_options_ptr ptr parameter; 28 dcl P_desired_version char (*) parameter; 29 dcl P_dirname char (*) parameter; 30 dcl P_entryname char (*) parameter; 31 dcl P_new_entryname char (*) parameter; 32 dcl P_no_sysdaemon bit (1) parameter; 33 dcl P_old_entryname char (*) parameter; 34 dcl P_suffix_info_ptr ptr parameter; 35 36 /* Automatic */ 37 38 dcl error_switch bit (1) aligned; 39 40 /* External Entries */ 41 42 dcl pnt_manager_$add_acl_entries 43 entry (char (*), char (*), ptr, fixed bin (35)); 44 dcl pnt_manager_$chname_file 45 entry (char (*), char (*), char (*), char (*), fixed bin (35)); 46 dcl pnt_manager_$copy entry (char (*), char (*), char (*), char (*), bit (1) aligned, fixed bin (35)); 47 dcl pnt_manager_$delete entry (char (*), char (*), fixed bin (35)); 48 dcl pnt_manager_$delete_acl_entries 49 entry (char (*), char (*), ptr, fixed bin (35)); 50 dcl pnt_manager_$list_acl entry (char (*), char (*), char (*), ptr, ptr, fixed bin (35)); 51 dcl pnt_manager_$replace_acl 52 entry (char (*), char (*), ptr, bit (1), fixed bin (35)); 53 dcl pnt_manager_$validate entry (char (*), char (*), fixed bin (35)); 54 55 /* External Static */ 56 57 dcl error_table_$unsupported_operation 58 fixed bin (35) external static; 59 60 delentry_file: 61 entry (P_dirname, P_entryname, P_code); 62 63 /* This entry deletes a PNT */ 64 65 call pnt_manager_$delete (P_dirname, P_entryname, P_code); 66 return; 67 68 chname_file: 69 entry (P_dirname, P_entryname, P_old_entryname, P_new_entryname, P_code); 70 71 /* Changes the names on a PNT */ 72 73 call pnt_manager_$chname_file (P_dirname, P_entryname, P_old_entryname, P_new_entryname, P_code); 74 return; 75 76 copy: 77 entry (P_copy_options_ptr, P_code); 78 79 copy_options_ptr = P_copy_options_ptr; 80 81 if copy_options.extend | copy_options.update 82 then do; 83 P_code = error_table_$unsupported_operation; 84 return; 85 end; 86 87 call pnt_manager_$copy (copy_options.source_dir, copy_options.source_name, copy_options.target_dir, 88 copy_options.target_name, error_switch, P_code); 89 90 copy_options.target_err_switch = error_switch; 91 return; 92 93 validate: 94 entry (P_dirname, P_entryname, P_code); 95 96 /* Used to validate that the specified object is a PNT. This is used 97* by the extended object software. */ 98 99 call pnt_manager_$validate (P_dirname, P_entryname, P_code); 100 return; 101 102 suffix_info: 103 entry (P_suffix_info_ptr); 104 105 suffix_info_ptr = P_suffix_info_ptr; 106 107 suffix_info.version = SUFFIX_INFO_VERSION_1; 108 suffix_info.type = "pnt"; 109 suffix_info.type_name = "PNT"; 110 suffix_info.plural_name = "PNTs"; 111 string (suffix_info.flags) = ""b; 112 suffix_info.extended_acl = "0"b; 113 suffix_info.has_switches = "0"b; 114 suffix_info.modes = "r w"; 115 suffix_info.max_mode_len = 3; 116 suffix_info.num_ring_brackets = 0; 117 string (suffix_info.copy_flags) = ""b; 118 suffix_info.copy_flags.names = "1"b; 119 suffix_info.copy_flags.acl = "1"b; 120 suffix_info.info_pathname = ""; 121 122 return; 123 124 list_acl: 125 entry (P_dirname, P_entryname, P_desired_version, P_area_ptr, P_acl_ptr, P_code); 126 127 call pnt_manager_$list_acl (P_dirname, P_entryname, P_desired_version, P_area_ptr, P_acl_ptr, P_code); 128 return; 129 130 add_acl_entries: 131 entry (P_dirname, P_entryname, P_acl_ptr, P_code); 132 133 call pnt_manager_$add_acl_entries (P_dirname, P_entryname, P_acl_ptr, P_code); 134 return; 135 136 delete_acl_entries: 137 entry (P_dirname, P_entryname, P_acl_ptr, P_code); 138 139 call pnt_manager_$delete_acl_entries (P_dirname, P_entryname, P_acl_ptr, P_code); 140 return; 141 142 replace_acl: 143 entry (P_dirname, P_entryname, P_acl_ptr, P_no_sysdaemon, P_code); 144 145 call pnt_manager_$replace_acl (P_dirname, P_entryname, P_acl_ptr, P_no_sysdaemon, P_code); 146 return; 147 148 /* format: off */ 149 /* BEGIN INCLUDE FILE: copy_flags.incl.pl1 */ 1 2 1 3 /* Flags for attributes that should/may be copied by the copy_ subroutine. This include file is 1 4* required by suffix_info.incl.pl1 and copy_options.incl.pl1 1 5* 1 6* Jay Pattin 6/23/83 */ 1 7 1 8 declare 1 copy_flags aligned based, /* ON means that this attribute may be copied by copy_ */ 1 9 2 names bit (1) unaligned, 1 10 2 acl bit (1) unaligned, 1 11 2 ring_brackets bit (1) unaligned, 1 12 2 max_length bit (1) unaligned, 1 13 2 copy_switch bit (1) unaligned, 1 14 2 safety_switch bit (1) unaligned, 1 15 2 dumper_switches bit (1) unaligned, 1 16 2 entry_bound bit (1) unaligned, /* only for vanilla object segments */ 1 17 2 extend bit (1) unaligned, /* copy_ may append to end of existing object */ 1 18 2 update bit (1) unaligned, /* copy_ may replace contents of existing object */ 1 19 2 mbz bit (26) unaligned; 1 20 1 21 /* END INCLUDE FILE: copy_flags.incl.pl1 */ 149 150 /* BEGIN INCLUDE FILE: copy_options.incl.pl1 */ 2 2 2 3 /* This structure declares the input structure used by the copy_ subroutine. 2 4* 2 5* NOTE: This include file depends on declarations in the include file 2 6* copy_flags.incl.pl1. 2 7* 2 8* Jay Pattin 6/1/83 */ 2 9 2 10 declare copy_options_ptr ptr; 2 11 2 12 declare 1 copy_options aligned based (copy_options_ptr), 2 13 2 version char (8), /* currently COPY_OPTIONS_VERSION_1 */ 2 14 2 caller_name char (32) unal, /* Used in nd_handler_ call */ 2 15 2 source_dir char (168) unal, 2 16 2 source_name char (32) unal, 2 17 2 target_dir char (168) unal, 2 18 2 target_name char (32) unal, 2 19 2 flags, 2 20 3 no_name_dup bit (1) unaligned, /* ON = don't call nd_handler_ */ 2 21 3 raw bit (1) unaligned, /* ON = don't call object_type_, use hcs_ */ 2 22 3 force bit (1) unaligned, /* ON = delete or force access to target */ 2 23 3 delete bit (1) unaligned, /* ON = delete original after copy (for move) */ 2 24 3 target_err_switch bit (1) unaligned, 2 25 3 mbz bit (31) unaligned, 2 26 2 copy_items like copy_flags; /* see copy_flags.incl.pl1 */ 2 27 2 28 declare COPY_OPTIONS_VERSION_1 char (8) static options (constant) init ("CPOPT001"); 2 29 2 30 /* END INCLUDE FILE: copy_options.incl.pl1 */ 150 151 /* BEGIN INCLUDE FILE: suffix_info.incl.pl1 */ 3 2 /* format: style3,indcomtxt,idind30 */ 3 3 /**** Jay Pattin 2/13/83 3 4* M. Pandolf 1984.11.30 to set FS_OBJECT_TYPE_MSF to -multisegment_file 3 5* 3 6* The include file copy_flags.incl.pl1 must be included in any program using this include file. 3 7* 3 8* This structure is returned by the suffix_XXX_$suffix_info subroutines */ 3 9 3 10 declare suffix_info_ptr ptr; 3 11 3 12 declare 1 suffix_info aligned based (suffix_info_ptr), 3 13 2 version char (8), 3 14 2 type char (32) unaligned, 3 15 2 type_name char (32) unaligned, /* Singular name of the object type, e.g. "mailbox" */ 3 16 2 plural_name char (32) unaligned, /* Plural of above, e.g. "mailboxes" */ 3 17 2 flags unaligned, 3 18 3 standard_object bit (1) unaligned, /* ON if not an extended object (no suffix_XXX_) */ 3 19 3 extended_acl bit (1) unaligned, /* ON if uses extended ACLs, off if regular ACLs */ 3 20 3 has_switches bit (1) unaligned, /* ON if supports switches for objects */ 3 21 3 mbz1 bit (33) unaligned, 3 22 2 modes char (36), /* correspondence between bits and chars for extended modes */ 3 23 2 max_mode_len fixed bin, /* maximum number of modes on an object */ 3 24 2 num_ring_brackets fixed bin, /* number of ring brackets on object */ 3 25 2 copy_flags like copy_flags, /* See copy_flags.incl.pl1 */ 3 26 2 info_pathname char (168) unaligned; 3 27 /* pathname of info segment containing more info */ 3 28 3 29 declare SUFFIX_INFO_VERSION_1 char (8) static options (constant) init ("SUFFIX01"); 3 30 3 31 /* This information is returned by the suffix_XXX_$list_switches subroutines */ 3 32 3 33 declare switch_list_ptr ptr, 3 34 alloc_switch_count fixed bin, 3 35 alloc_switch_name_count fixed bin; 3 36 3 37 declare 1 switch_list aligned based (switch_list_ptr), 3 38 2 version char (8), /* SWITCH_LIST_VERSION_1 */ 3 39 2 switch_count fixed bin, /* total number of switches */ 3 40 2 switch_name_count fixed bin, /* total number of names */ 3 41 2 switches (alloc_switch_count refer (switch_list.switch_count)), 3 42 3 name_index fixed bin, /* index of first name for this switch */ 3 43 3 name_count fixed bin, /* number of names for this switch */ 3 44 3 default_value bit (1) aligned, /* default setting for this switch */ 3 45 3 mbz1 bit (36) aligned, /* reserved for future use */ 3 46 2 names (alloc_switch_name_count refer (switch_list.switch_name_count)) char (32); 3 47 3 48 declare SWITCH_LIST_VERSION_1 char (8) static options (constant) init ("SWLIST01"); 3 49 3 50 declare ( 3 51 FS_OBJECT_TYPE_SEGMENT init ("-segment"), 3 52 FS_OBJECT_TYPE_DIRECTORY init ("-directory"), 3 53 FS_OBJECT_TYPE_MSF init ("-multisegment_file"), 3 54 FS_OBJECT_TYPE_DM_FILE init ("-dm_file"), 3 55 FS_OBJECT_TYPE_LINK init ("-link") 3 56 ) char (32) unaligned int static options (constant); 3 57 3 58 /* END INCLUDE FILE: suffix_info.incl.pl1 */ 151 152 /* format: on */ 153 154 end suffix_pnt_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 03/05/85 1054.2 suffix_pnt_.pl1 >special_ldd>online>6799>suffix_pnt_.pl1 149 1 10/14/83 1606.7 copy_flags.incl.pl1 >ldd>include>copy_flags.incl.pl1 150 2 10/14/83 1606.7 copy_options.incl.pl1 >ldd>include>copy_options.incl.pl1 151 3 03/05/85 1050.6 suffix_info.incl.pl1 >special_ldd>online>6799>suffix_info.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. P_acl_ptr parameter pointer dcl 24 set ref 124 127* 130 133* 136 139* 142 145* P_area_ptr parameter pointer dcl 25 set ref 124 127* P_code parameter fixed bin(35,0) dcl 26 set ref 60 65* 68 73* 76 83* 87* 93 99* 124 127* 130 133* 136 139* 142 145* P_copy_options_ptr parameter pointer dcl 27 ref 76 79 P_desired_version parameter char unaligned dcl 28 set ref 124 127* P_dirname parameter char unaligned dcl 29 set ref 60 65* 68 73* 93 99* 124 127* 130 133* 136 139* 142 145* P_entryname parameter char unaligned dcl 30 set ref 60 65* 68 73* 93 99* 124 127* 130 133* 136 139* 142 145* P_new_entryname parameter char unaligned dcl 31 set ref 68 73* P_no_sysdaemon parameter bit(1) unaligned dcl 32 set ref 142 145* P_old_entryname parameter char unaligned dcl 33 set ref 68 73* P_suffix_info_ptr parameter pointer dcl 34 ref 102 105 SUFFIX_INFO_VERSION_1 000000 constant char(8) initial unaligned dcl 3-29 ref 107 acl 46(01) based bit(1) level 3 packed unaligned dcl 3-12 set ref 119* copy_flags based structure level 1 dcl 1-8 in procedure "suffix_pnt_" copy_flags 46 based structure level 2 in structure "suffix_info" dcl 3-12 in procedure "suffix_pnt_" set ref 117* copy_items 157 based structure level 2 dcl 2-12 copy_options based structure level 1 dcl 2-12 copy_options_ptr 000102 automatic pointer dcl 2-10 set ref 79* 81 81 87 87 87 87 90 error_switch 000100 automatic bit(1) dcl 38 set ref 87* 90 error_table_$unsupported_operation 000030 external static fixed bin(35,0) dcl 57 ref 83 extend 157(08) based bit(1) level 3 packed unaligned dcl 2-12 ref 81 extended_acl 32(01) based bit(1) level 3 packed unaligned dcl 3-12 set ref 112* flags 156 based structure level 2 in structure "copy_options" dcl 2-12 in procedure "suffix_pnt_" flags 32 based structure level 2 in structure "suffix_info" packed unaligned dcl 3-12 in procedure "suffix_pnt_" set ref 111* has_switches 32(02) based bit(1) level 3 packed unaligned dcl 3-12 set ref 113* info_pathname 47 based char(168) level 2 packed unaligned dcl 3-12 set ref 120* max_mode_len 44 based fixed bin(17,0) level 2 dcl 3-12 set ref 115* modes 33 based char(36) level 2 dcl 3-12 set ref 114* names 46 based bit(1) level 3 packed unaligned dcl 3-12 set ref 118* num_ring_brackets 45 based fixed bin(17,0) level 2 dcl 3-12 set ref 116* plural_name 22 based char(32) level 2 packed unaligned dcl 3-12 set ref 110* pnt_manager_$add_acl_entries 000010 constant entry external dcl 42 ref 133 pnt_manager_$chname_file 000012 constant entry external dcl 44 ref 73 pnt_manager_$copy 000014 constant entry external dcl 46 ref 87 pnt_manager_$delete 000016 constant entry external dcl 47 ref 65 pnt_manager_$delete_acl_entries 000020 constant entry external dcl 48 ref 139 pnt_manager_$list_acl 000022 constant entry external dcl 50 ref 127 pnt_manager_$replace_acl 000024 constant entry external dcl 51 ref 145 pnt_manager_$validate 000026 constant entry external dcl 53 ref 99 source_dir 12 based char(168) level 2 packed unaligned dcl 2-12 set ref 87* source_name 64 based char(32) level 2 packed unaligned dcl 2-12 set ref 87* suffix_info based structure level 1 dcl 3-12 suffix_info_ptr 000104 automatic pointer dcl 3-10 set ref 105* 107 108 109 110 111 112 113 114 115 116 117 118 119 120 target_dir 74 based char(168) level 2 packed unaligned dcl 2-12 set ref 87* target_err_switch 156(04) based bit(1) level 3 packed unaligned dcl 2-12 set ref 90* target_name 146 based char(32) level 2 packed unaligned dcl 2-12 set ref 87* type 2 based char(32) level 2 packed unaligned dcl 3-12 set ref 108* type_name 12 based char(32) level 2 packed unaligned dcl 3-12 set ref 109* update 157(09) based bit(1) level 3 packed unaligned dcl 2-12 ref 81 version based char(8) level 2 dcl 3-12 set ref 107* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. COPY_OPTIONS_VERSION_1 internal static char(8) initial unaligned dcl 2-28 FS_OBJECT_TYPE_DIRECTORY internal static char(32) initial unaligned dcl 3-50 FS_OBJECT_TYPE_DM_FILE internal static char(32) initial unaligned dcl 3-50 FS_OBJECT_TYPE_LINK internal static char(32) initial unaligned dcl 3-50 FS_OBJECT_TYPE_MSF internal static char(32) initial unaligned dcl 3-50 FS_OBJECT_TYPE_SEGMENT internal static char(32) initial unaligned dcl 3-50 SWITCH_LIST_VERSION_1 internal static char(8) initial unaligned dcl 3-48 alloc_switch_count automatic fixed bin(17,0) dcl 3-33 alloc_switch_name_count automatic fixed bin(17,0) dcl 3-33 switch_list based structure level 1 dcl 3-37 switch_list_ptr automatic pointer dcl 3-33 NAMES DECLARED BY EXPLICIT CONTEXT. add_acl_entries 000517 constant entry external dcl 130 chname_file 000104 constant entry external dcl 68 copy 000201 constant entry external dcl 76 delentry_file 000030 constant entry external dcl 60 delete_acl_entries 000576 constant entry external dcl 136 list_acl 000421 constant entry external dcl 124 replace_acl 000660 constant entry external dcl 142 suffix_info 000342 constant entry external dcl 102 suffix_pnt_ 000016 constant entry external dcl 12 validate 000270 constant entry external dcl 93 NAME DECLARED BY CONTEXT OR IMPLICATION. string builtin function set ref 111 117* STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1134 1166 743 1144 Length 1436 743 32 233 170 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME suffix_pnt_ 140 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME suffix_pnt_ 000100 error_switch suffix_pnt_ 000102 copy_options_ptr suffix_pnt_ 000104 suffix_info_ptr suffix_pnt_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. pnt_manager_$add_acl_entries pnt_manager_$chname_file pnt_manager_$copy pnt_manager_$delete pnt_manager_$delete_acl_entries pnt_manager_$list_acl pnt_manager_$replace_acl pnt_manager_$validate THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$unsupported_operation LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 12 000015 15 000023 60 000024 65 000053 66 000076 68 000077 73 000141 74 000174 76 000175 79 000211 81 000215 83 000220 84 000223 87 000224 90 000257 91 000265 93 000266 99 000313 100 000336 102 000337 105 000347 107 000353 108 000356 109 000361 110 000364 111 000367 112 000370 113 000372 114 000374 115 000377 116 000401 117 000402 118 000403 119 000405 120 000407 122 000412 124 000413 127 000453 128 000511 130 000512 133 000544 134 000573 136 000574 139 000623 140 000652 142 000653 145 000705 146 000740 ----------------------------------------------------------- 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