COMPILATION LISTING OF SEGMENT !BBBJXcMNcqzWbQ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 07/26/88 1014.9 mst Tue Options: table map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Bull Inc., 1988 * 4* * * 5* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 6* * * 7* * Copyright (c) 1972 by Massachusetts Institute of * 8* * Technology and Honeywell Information Systems, Inc. * 9* * * 10* *********************************************************** */ 11 12 13 14 /* HISTORY COMMENTS: 15* 1) change(86-03-25,Herbst), approve(86-03-25,MCR7367), 16* audit(86-04-28,Margolin), install(86-05-22,MR12.0-1059): 17* Changed version to 9.3. 18* 2) change(86-08-26,Margolin), approve(86-08-26,MCR7508), 19* audit(86-08-27,Blair), install(86-08-29,MR12.0-1142): 20* Changed version to 9.3a. 21* 3) change(88-04-14,Blair), approve(88-04-14,MCR7842), 22* audit(88-06-29,Lippard), install(88-07-26,MR12.2-1069): 23* Increment the version number to reflect the changes for SCP6349, add 24* search path capability to the mail system. 25* END HISTORY COMMENTS */ 26 27 28 /* format: off */ 29 30 /* Constant data used by the read_mail subsystem */ 31 32 /* Created: 14 March 1978 by G. Palter */ 33 /* Modified: 20 June 1978 by G. Palter to add info_directory */ 34 /* Converted: 4 July 1978 by W. Olin Sibert from sdm_data_ */ 35 /* Modified: 29 December 1979 by W. Olin Sibert */ 36 /* Modified: 21 September 1982 by G. Palter to add ec_suffix and ec_search_list and remove several obsolete data items */ 37 /* Recoded: September 1983 by G. Palter to use new argument processing for EXL/installed decision, to make the subsystem 38* version a single character string, and to eliminate constants no longer used after converting to the mail system 39* interface */ 40 41 /* format: on,style4,delnl,insnl,ifthenstmt,ifthen */ 42 43 44 rdm_data_: 45 procedure () options (variable); 46 47 48 dcl 1 rdm_constants aligned, 49 2 version character (32) varying, 50 2 info_directory character (168) unaligned, 51 2 special_message character (256) varying, 52 2 ec_suffix character (32) unaligned, 53 2 ec_search_list character (32) unaligned; 54 55 dcl 1 rdm_static aligned, 56 2 first_invocation bit (1) aligned; 57 58 dcl 1 cds_data aligned like cds_args; /* arguments to create_data_segment_ subr */ 59 60 dcl argument character (argument_lth) unaligned based (argument_ptr); 61 dcl argument_ptr pointer; 62 dcl argument_lth fixed binary (21); 63 dcl (n_arguments, argument_idx) fixed binary; 64 65 dcl subsystem_type fixed binary; /* unbundled/exl/development */ 66 dcl subsystem_version character (32) varying; 67 dcl subsystem_info_directory character (168); 68 69 dcl special_message character (256) varying; 70 dcl special_message_given bit (1) aligned; 71 72 dcl code fixed binary (35); 73 74 dcl RDM_DATA_ character (32) static options (constant) initial ("rdm_data_"); 75 76 dcl DEFAULT_SUBSYSTEM_VERSION character (28) varying static options (constant) initial ("9.3b"); 77 dcl DEFAULT_SPECIAL_MESSAGE character (256) varying static options (constant) initial (""); 78 79 dcl UNBUNDLED_SUBSYSTEM fixed binary static options (constant) initial (1); 80 dcl UNBUNDLED_INFO_DIRECTORY character (168) static options (constant) initial (">doc>subsystem>mail_system>read_mail"); 81 82 dcl EXL_SUBSYSTEM fixed binary static options (constant) initial (2); 83 dcl EXL_INFO_DIRECTORY character (168) static options (constant) initial (">exl>mail_system_dir>info>read_mail"); 84 85 dcl DEVELOPMENT_SUBSYSTEM fixed binary static options (constant) initial (3); 86 dcl DEVELOPMENT_INFO_DIRECTORY character (168) static options (constant) 87 initial (">udd>Multics>Palter>work>mail_system>info>read_mail"); 88 89 /* format: off */ 90 dcl (error_table_$bad_arg, error_table_$badopt, error_table_$bigarg) 91 fixed binary (35) external; 92 /* format: on */ 93 94 dcl cu_$arg_count entry (fixed binary, fixed binary (35)); 95 dcl cu_$arg_ptr entry (fixed binary, pointer, fixed binary (21), fixed binary (35)); 96 dcl com_err_ entry () options (variable); 97 dcl create_data_segment_ entry (pointer, fixed binary (35)); 98 99 dcl (addr, currentsize, index, maxlength, null, string) builtin; 100 101 /* Determine which type (unbundled/EXL/development) and version of the subsystem is being created */ 102 103 call cu_$arg_count (n_arguments, code); 104 if code ^= 0 then do; /* not a command */ 105 call com_err_ (code, RDM_DATA_); 106 return; 107 end; 108 109 subsystem_type = UNBUNDLED_SUBSYSTEM; 110 subsystem_version = DEFAULT_SUBSYSTEM_VERSION; 111 special_message_given = "0"b; /* default depends on the subsystem version */ 112 113 do argument_idx = 1 to n_arguments; 114 115 call cu_$arg_ptr (argument_idx, argument_ptr, argument_lth, code); 116 if code ^= 0 then do; 117 call com_err_ (code, RDM_DATA_, "Fetching argument #^d.", argument_idx); 118 return; 119 end; 120 121 if index (argument, "-") = 1 then /* a control argument ... */ 122 if (argument = "-unbundled") | (argument = "-unb") then subsystem_type = UNBUNDLED_SUBSYSTEM; 123 else if (argument = "-experimental") | (argument = "-exl") then subsystem_type = EXL_SUBSYSTEM; 124 else if (argument = "-development") | (argument = "-dev") then subsystem_type = DEVELOPMENT_SUBSYSTEM; 125 126 else if argument = "-version" then do; /* specific value for the subsystem version */ 127 if argument_idx = n_arguments then do; 128 call com_err_ (code, RDM_DATA_, "Version string following ""^a"".", argument); 129 return; 130 end; 131 argument_idx = argument_idx + 1; 132 call cu_$arg_ptr (argument_idx, argument_ptr, argument_lth, code); 133 if code ^= 0 then do; 134 call com_err_ (code, RDM_DATA_, "Fetching argument #^d.", argument_idx); 135 return; 136 end; 137 if argument_lth > maxlength (DEFAULT_SUBSYSTEM_VERSION) then do; 138 call com_err_ (error_table_$bigarg, RDM_DATA_, 139 "Maximum length for the version string is ^d characters. ""^a""", 140 maxlength (DEFAULT_SUBSYSTEM_VERSION), argument); 141 return; 142 end; 143 subsystem_version = argument; 144 end; 145 146 else if (argument = "-message") | (argument = "-msg") then do; 147 if argument_idx = n_arguments then do; 148 call com_err_ (code, RDM_DATA_, "Special message text following ""^a"".", argument); 149 return; 150 end; 151 argument_idx = argument_idx + 1; 152 call cu_$arg_ptr (argument_idx, argument_ptr, argument_lth, code); 153 if code ^= 0 then do; 154 call com_err_ (code, RDM_DATA_, "Fetching argument #^d.", argument_idx); 155 return; 156 end; 157 if argument_lth > maxlength (special_message) then do; 158 call com_err_ (error_table_$bigarg, RDM_DATA_, 159 "Maximum length for the special message is ^d characters. ""^a""", 160 maxlength (special_message), argument); 161 return; 162 end; 163 special_message = argument; 164 special_message_given = "1"b; 165 end; 166 else if (argument = "-no_message") | (argument = "-nmsg") then do; 167 special_message = ""; /* developer wants no message for this version */ 168 special_message_given = "1"b; 169 end; 170 171 else do; 172 call com_err_ (error_table_$badopt, RDM_DATA_, """^a""", argument); 173 return; 174 end; 175 176 else do; 177 call com_err_ (error_table_$bad_arg, RDM_DATA_, """^a""", argument); 178 return; 179 end; 180 end; 181 182 183 /* Supply appropriate default values for the special message and subsystem info directory based on the type and version */ 184 185 if ^special_message_given then /* defaults to builtin message only if builtin version */ 186 if subsystem_version = DEFAULT_SUBSYSTEM_VERSION then 187 special_message = DEFAULT_SPECIAL_MESSAGE; 188 else special_message = ""; /* ... any other version must have the message supplied */ 189 190 if subsystem_type = UNBUNDLED_SUBSYSTEM then subsystem_info_directory = UNBUNDLED_INFO_DIRECTORY; 191 192 else if subsystem_type = EXL_SUBSYSTEM then do; 193 subsystem_version = subsystem_version || " EXL"; 194 subsystem_info_directory = EXL_INFO_DIRECTORY; 195 end; 196 197 else /*** if subsystem_type = DEVELOPMENT_SUBSYSTEM then */ 198 do; 199 subsystem_version = subsystem_version || " dev"; 200 subsystem_info_directory = DEVELOPMENT_INFO_DIRECTORY; 201 end; 202 203 204 /* Define values for the constant data used by the subsystem */ 205 206 rdm_constants.version = subsystem_version; 207 rdm_constants.info_directory = subsystem_info_directory; 208 rdm_constants.special_message = special_message; 209 210 rdm_constants.ec_suffix = "rdmec"; /* use non-default exec_com suffix and search list */ 211 rdm_constants.ec_search_list = "mail_system"; 212 213 214 /* Define initial values for the static used by the subsystem */ 215 216 rdm_static.first_invocation = "1"b; /* force the initialization code to be run */ 217 218 219 /* Set up arguments for call to create_data_segment_ */ 220 221 cds_data.sections (1).p = addr (rdm_constants); 222 cds_data.sections (1).len = currentsize (rdm_constants); 223 cds_data.sections (1).struct_name = "rdm_constants"; 224 225 cds_data.sections (2).p = addr (rdm_static); 226 cds_data.sections (2).len = currentsize (rdm_static); 227 cds_data.sections (2).struct_name = "rdm_static"; 228 229 cds_data.seg_name = RDM_DATA_; 230 231 cds_data.num_exclude_names = 0; 232 cds_data.exclude_array_ptr = null (); 233 234 string (cds_data.switches) = ""b; 235 cds_data.switches.have_text, cds_data.switches.have_static = "1"b; 236 cds_data.switches.separate_static = "1"b; 237 238 239 /* Call create_data_segment_ */ 240 241 call create_data_segment_ (addr (cds_data), code); 242 243 if code ^= 0 then call com_err_ (code, RDM_DATA_); 244 245 return; 246 1 1 /* BEGIN INCLUDE FILE cds_args.incl.pl1 */ 1 2 1 3 dcl 1 cds_args based aligned, 1 4 2 sections (2), 1 5 3 p ptr, /* pointer to data for text/static section */ 1 6 3 len fixed bin (18), /* size of text/static section */ 1 7 3 struct_name char (32), /* name of declared structure for this section */ 1 8 2 seg_name char (32), /* name to create segment by */ 1 9 2 num_exclude_names fixed bin, /* number of names in exclude array */ 1 10 2 exclude_array_ptr ptr, /* pointer to array of exclude names */ 1 11 2 switches, /* control switches */ 1 12 3 defs_in_link bit (1) unal, /* says put defs in linkage */ 1 13 3 separate_static bit (1) unal, /* says separate static section is wanted */ 1 14 3 have_text bit (1) unal, /* ON if text section given */ 1 15 3 have_static bit (1) unal, /* ON if static section given */ 1 16 3 pad bit (32) unal; 1 17 1 18 dcl exclude_names (1) char (32) based; /* pointed to be cds_args.exclude_array_ptr */ 1 19 1 20 /* END INCLUDE FILE cds_args.incl.pl1 */ 247 248 249 end rdm_data_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 07/26/88 1013.4 !BBBJXcMNcqzWbQ.pl1 >spec>install>1069>rdm_data_.cds 247 1 04/01/76 2209.5 cds_args.incl.pl1 >ldd>include>cds_args.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. DEFAULT_SPECIAL_MESSAGE 000200 constant varying char(256) initial dcl 77 ref 185 DEFAULT_SUBSYSTEM_VERSION 000301 constant varying char(28) initial dcl 76 ref 110 137 138 138 185 DEVELOPMENT_INFO_DIRECTORY 000000 constant char(168) initial packed unaligned dcl 86 ref 200 DEVELOPMENT_SUBSYSTEM 000052 constant fixed bin(17,0) initial dcl 85 ref 124 EXL_INFO_DIRECTORY 000053 constant char(168) initial packed unaligned dcl 83 ref 194 EXL_SUBSYSTEM 000125 constant fixed bin(17,0) initial dcl 82 ref 123 192 RDM_DATA_ 000311 constant char(32) initial packed unaligned dcl 74 set ref 105* 117* 128* 134* 138* 148* 154* 158* 172* 177* 229 243* UNBUNDLED_INFO_DIRECTORY 000126 constant char(168) initial packed unaligned dcl 80 ref 190 UNBUNDLED_SUBSYSTEM 001606 constant fixed bin(17,0) initial dcl 79 ref 109 121 190 addr builtin function dcl 99 ref 221 225 241 241 argument based char packed unaligned dcl 60 set ref 121 121 121 123 123 124 124 126 128* 138* 143 146 146 148* 158* 163 166 166 172* 177* argument_idx 000360 automatic fixed bin(17,0) dcl 63 set ref 113* 115* 117* 127 131* 131 132* 134* 147 151* 151 152* 154* argument_lth 000356 automatic fixed bin(21,0) dcl 62 set ref 60 115* 121 121 121 123 123 124 124 126 128 128 132* 137 138 138 143 146 146 148 148 152* 157 158 158 163 166 166 172 172 177 177 argument_ptr 000354 automatic pointer dcl 61 set ref 60 115* 121 121 121 123 123 124 124 126 128 132* 138 143 146 146 148 152* 158 163 166 166 172 177 cds_args based structure level 1 dcl 1-3 cds_data 000306 automatic structure level 1 dcl 58 set ref 241 241 code 000547 automatic fixed bin(35,0) dcl 72 set ref 103* 104 105* 115* 116 117* 128* 132* 133 134* 148* 152* 153 154* 241* 243 243* com_err_ 000024 constant entry external dcl 96 ref 105 117 128 134 138 148 154 158 172 177 243 create_data_segment_ 000026 constant entry external dcl 97 ref 241 cu_$arg_count 000020 constant entry external dcl 94 ref 103 cu_$arg_ptr 000022 constant entry external dcl 95 ref 115 132 152 currentsize builtin function dcl 99 ref 222 226 ec_search_list 174 000100 automatic char(32) level 2 packed packed unaligned dcl 48 set ref 211* ec_suffix 164 000100 automatic char(32) level 2 packed packed unaligned dcl 48 set ref 210* error_table_$bad_arg 000012 external static fixed bin(35,0) dcl 90 set ref 177* error_table_$badopt 000014 external static fixed bin(35,0) dcl 90 set ref 172* error_table_$bigarg 000016 external static fixed bin(35,0) dcl 90 set ref 138* 158* exclude_array_ptr 42 000306 automatic pointer level 2 dcl 58 set ref 232* first_invocation 000304 automatic bit(1) level 2 dcl 55 set ref 216* have_static 44(03) 000306 automatic bit(1) level 3 packed packed unaligned dcl 58 set ref 235* have_text 44(02) 000306 automatic bit(1) level 3 packed packed unaligned dcl 58 set ref 235* index builtin function dcl 99 ref 121 info_directory 11 000100 automatic char(168) level 2 packed packed unaligned dcl 48 set ref 207* len 2 000306 automatic fixed bin(18,0) array level 3 dcl 58 set ref 222* 226* maxlength builtin function dcl 99 ref 137 138 138 157 158 158 n_arguments 000357 automatic fixed bin(17,0) dcl 63 set ref 103* 113 127 147 null builtin function dcl 99 ref 232 num_exclude_names 40 000306 automatic fixed bin(17,0) level 2 dcl 58 set ref 231* p 000306 automatic pointer array level 3 dcl 58 set ref 221* 225* rdm_constants 000100 automatic structure level 1 dcl 48 set ref 221 222 rdm_static 000304 automatic structure level 1 dcl 55 set ref 225 226 sections 000306 automatic structure array level 2 dcl 58 seg_name 30 000306 automatic char(32) level 2 dcl 58 set ref 229* separate_static 44(01) 000306 automatic bit(1) level 3 packed packed unaligned dcl 58 set ref 236* special_message 63 000100 automatic varying char(256) level 2 in structure "rdm_constants" dcl 48 in procedure "rdm_data_" set ref 208* special_message 000445 automatic varying char(256) dcl 69 in procedure "rdm_data_" set ref 157 158 158 163* 167* 185* 188* 208 special_message_given 000546 automatic bit(1) dcl 70 set ref 111* 164* 168* 185 string builtin function dcl 99 set ref 234* struct_name 3 000306 automatic char(32) array level 3 dcl 58 set ref 223* 227* subsystem_info_directory 000373 automatic char(168) packed unaligned dcl 67 set ref 190* 194* 200* 207 subsystem_type 000361 automatic fixed bin(17,0) dcl 65 set ref 109* 121* 123* 124* 190 192 subsystem_version 000362 automatic varying char(32) dcl 66 set ref 110* 143* 185 193* 193 199* 199 206 switches 44 000306 automatic structure level 2 dcl 58 set ref 234* version 000100 automatic varying char(32) level 2 dcl 48 set ref 206* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. exclude_names based char(32) array packed unaligned dcl 1-18 NAME DECLARED BY EXPLICIT CONTEXT. rdm_data_ 000473 constant entry external dcl 44 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 1720 1750 1607 1730 Length 3622 1607 30 1636 111 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME rdm_data_ 422 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME rdm_data_ 000100 rdm_constants rdm_data_ 000304 rdm_static rdm_data_ 000306 cds_data rdm_data_ 000354 argument_ptr rdm_data_ 000356 argument_lth rdm_data_ 000357 n_arguments rdm_data_ 000360 argument_idx rdm_data_ 000361 subsystem_type rdm_data_ 000362 subsystem_version rdm_data_ 000373 subsystem_info_directory rdm_data_ 000445 special_message rdm_data_ 000546 special_message_given rdm_data_ 000547 code rdm_data_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out return_mac ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ create_data_segment_ cu_$arg_count cu_$arg_ptr THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$badopt error_table_$bigarg LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 44 000472 103 000500 104 000510 105 000512 106 000527 109 000530 110 000532 111 000537 113 000540 115 000547 116 000564 117 000566 118 000616 121 000617 123 000652 124 000670 126 000706 127 000712 128 000715 129 000750 131 000751 132 000752 133 000767 134 000771 135 001021 137 001022 138 001025 141 001065 143 001066 144 001076 146 001077 147 001112 148 001115 149 001150 151 001151 152 001152 153 001167 154 001171 155 001221 157 001222 158 001225 161 001265 163 001266 164 001276 165 001300 166 001301 167 001314 168 001315 169 001317 172 001320 173 001351 174 001352 177 001353 178 001405 180 001406 185 001410 188 001426 190 001427 192 001436 193 001440 194 001452 195 001455 199 001456 200 001470 206 001473 207 001500 208 001503 210 001510 211 001513 216 001516 221 001520 222 001522 223 001524 225 001527 226 001531 227 001533 229 001536 231 001541 232 001542 234 001544 235 001545 236 001551 241 001553 243 001566 245 001605 Object Segment >spec>install>1069>rdm_data_ Created on 07/26/88 1015.0 mst Tue by Hirneisen.SysMaint.a using create_data_segment_, Version II of Thursday, November 20, 1986 with separate static Object Text Defs Link Symb Static Start 0 0 204 276 306 274 Length 463 204 70 10 141 2 8 Definitions: segname: rdm_data_ text|174 ec_search_list text|164 ec_suffix stat|0 first_invocation text|11 info_directory text|63 special_message symb|0 symbol_table text|0 version No Links. ----------------------------------------------------------- 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