COMPILATION LISTING OF SEGMENT xmail_value_ Compiled by: Multics PL/I Compiler, Release 30, of February 16, 1988 Compiled at: Honeywell Bull, Phoenix AZ, SysM Compiled on: 09/02/88 0745.2 mst Fri Options: optimize map 1 /****^ *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* * Copyright (c) 1972 by Massachusetts Institute of * 6* * Technology and Honeywell Information Systems, Inc. * 7* * * 8* *********************************************************** */ 9 10 11 12 /****^ HISTORY COMMENTS: 13* 1) change(86-02-26,Blair), approve(86-02-26,MCR7358), 14* audit(86-04-18,RBarstad), install(86-05-28,MR12.0-1062): 15* Add new internal procedures to get the value segment ptr, validate the 16* value returned by value_$get, and determine the default value for a 17* particular name. There is a table of names of the values used by xmail and 18* validate_name_and_index returns the index to tables of validation routines 19* and default values. 20* 21* There is also a new entry point - get_no_validate. 22* 2) change(86-07-15,Blair), approve(86-07-15,MCR7447), 23* audit(86-07-16,LJAdams), install(86-07-21,MR12.0-1100): 24* Initiate the data_seg for RW when getting the pointer to it so as to avoid 25* problems with differing ring-brackets. 26* 3) change(87-01-21,Blair), approve(87-02-05,MCR7618), 27* audit(87-04-10,RBarstad), install(87-04-26,MR12.1-1025): 28* Make entries in the default_value array and test_value array for the new 29* value seg entry msgs_as_mail_yn. 30* END HISTORY COMMENTS */ 31 32 /* 33* xmail_value_ 34* 35* This program provides an interface to the xmail value segment. 36* Entries are provided to manipulate named values. The actual 37* management of the segment is performed via the value_$... 38* utility subroutines for dealing with value segments. The 39* entries provided here provide primarily a subset of the 40* capabilities provided by value_, the major difference being that 41* the specification of the value segment itself is absent. 42* 43* The other major change is that arbitrary datatypes are not allowed. 44* To ease the implementation, names are always char (*) and values 45* are always char (*) varying. 46* 47* Additional functionality has been added in the form of a new 48* entrypoint, get_with_default, which automatically returns a 49* specified default value when the name is not defined. 50* 51* The following parameter names are common to the various entries: 52* 53* name: the name of the value to be referenced 54* 55* in_value: a value supplied by the caller 56* 57* out_value: a value returned to the caller 58* 59* test_value: a value supplied by the caller for test purposes 60* 61* code a system status code as returned by value_ 62* 63* ************************************************************** 64* 65* The following entrypoints are defined: 66* 67* defined (name, code) returns (bit (1)) 68* delete (name, code) 69* get (name, out_value, code) 70* set (name, in_value, out_value, code) 71* test_and_set (name, in_value, test_value, code) 72* get_with_default (name, in_value, out_value, code) 73* 74* In set, out_value is the old value before it was changed. 75* In get_with_default, in_value is the default, which is returned 76* in out_value if no value is defined. 77**/ 78 79 /* Written 6/29/81 by Paul Kyzivat */ 80 /* format: style1 */ 81 82 xmail_value_: proc; 83 84 dcl name char (*) parameter, 85 in_value char (*) varying parameter, 86 out_value char (*) varying parameter, 87 test_value char (*) varying parameter, 88 code fixed bin (35); 89 dcl index fixed bin; 90 dcl (fixed, length, null, rtrim, search, verify) 91 builtin; 92 dcl value_seg_ptr ptr; 93 dcl PERMANENT init ("01"b) bit (36) aligned static options (constant); 94 dcl error_table_$oldnamerr fixed bin (35) ext static; 95 dcl value_$defined entry (ptr, bit (36) aligned, char (*), fixed bin (35)) returns (bit (1) aligned), 96 ( 97 value_$delete, 98 value_$get, 99 value_$set, 100 value_$test_and_set 101 ) entry options (variable); 102 dcl xmail_rebuild_value_seg_ entry (ptr, fixed bin (35)); 103 104 defined: entry (name, code) returns (bit (1)); 105 call validate_value_seg (value_seg_ptr); 106 call validate_name_and_index (name, index); 107 return (value_$defined (value_seg_ptr , PERMANENT, name, code)); 108 109 delete: entry (name, code); 110 call validate_value_seg (value_seg_ptr); 111 call validate_name_and_index (name, index); 112 call value_$delete (value_seg_ptr, PERMANENT, name, code); 113 return; 114 115 get: entry (name, out_value, code); 116 call validate_value_seg (value_seg_ptr); 117 call validate_name_and_index (name, index); 118 if value_seg_ptr ^= null 119 then call value_$get (value_seg_ptr, PERMANENT, name, out_value, code); 120 if code = error_table_$oldnamerr & (index > 14 & index < 21) then; 121 else if code ^= 0 | value_seg_ptr = null 122 then do; 123 call xmail_rebuild_value_seg_ (value_seg_ptr, code); 124 call get_default_value (index, out_value); 125 end; 126 else do; 127 call validate_returned_value (index, out_value, code); 128 if code ^= 0 129 then do; 130 call xmail_rebuild_value_seg_ (value_seg_ptr, code); 131 call get_default_value (index, out_value); 132 end; 133 end; 134 return; 135 136 get_no_validate: entry (name, out_value, code); 137 call validate_value_seg (value_seg_ptr); 138 call validate_name_and_index (name, index); 139 if value_seg_ptr ^= null 140 then call value_$get (value_seg_ptr, PERMANENT, name, out_value, code); 141 if code = error_table_$oldnamerr then; 142 else if code ^= 0 | value_seg_ptr = null 143 then do; 144 call xmail_rebuild_value_seg_ (value_seg_ptr, code); 145 call get_default_value (index, out_value); 146 end; 147 return; 148 149 set: entry (name, in_value, out_value, code); 150 call validate_value_seg (value_seg_ptr); 151 call validate_name_and_index (name, index); 152 if value_seg_ptr = null 153 then call xmail_rebuild_value_seg_ (value_seg_ptr, code); 154 call value_$set (value_seg_ptr, PERMANENT, name, in_value, out_value, code); 155 if code ^= 0 then do; 156 call xmail_rebuild_value_seg_ (value_seg_ptr, code); 157 call get_default_value (index, out_value); 158 end; 159 return; 160 161 162 163 test_and_set: entry (name, in_value, test_value, code); 164 call validate_value_seg (value_seg_ptr); 165 call validate_name_and_index (name, index); 166 167 call value_$test_and_set (value_seg_ptr, PERMANENT, name, in_value, out_value, code); 168 if code ^= 0 then do; 169 call xmail_rebuild_value_seg_ (value_seg_ptr, code); 170 call get_default_value (index, out_value); 171 end; 172 return; 173 174 get_with_default: entry (name, in_value, out_value, code); 175 call validate_value_seg (value_seg_ptr); 176 call validate_name_and_index (name, index); 177 if value_seg_ptr ^= null 178 then call value_$get (value_seg_ptr, PERMANENT, name, out_value, code); 179 if (code = error_table_$oldnamerr) then do; 180 out_value = in_value; 181 code = 0; 182 end; 183 else if code ^= 0 then do; 184 call xmail_rebuild_value_seg_ (value_seg_ptr, code); 185 call get_default_value (index, out_value); 186 end; 187 return; 188 189 validate_value_seg: proc (vvs_value_seg_ptr); 190 191 dcl initiate_file_ entry (char(*), char(*), bit(*), ptr, fixed bin(24), fixed bin(35)); 192 dcl bc fixed bin (24); 193 dcl vvs_code fixed bin (35); 194 dcl vvs_value_seg_ptr ptr; 195 dcl VALUE_SEG_NAME init ("xmail_data.value") char (32) var int static options (constant); 196 197 /* Get the pointer to the value seg just before we use it */ 198 199 vvs_value_seg_ptr = null; 200 call initiate_file_ (rtrim(xmail_data.value_seg_pathname), (VALUE_SEG_NAME), RW_ACCESS, vvs_value_seg_ptr, bc, vvs_code); 201 return; 202 end validate_value_seg; 203 204 validate_name_and_index: proc (vn_name, vn_index); 205 206 dcl VN_NAME_ARRAY dim (1:21) char (25) int static options (constant) init 207 ("acknowledge_yn ", 208 "always_escape_keys_yn ", 209 "confirm_print_yn ", 210 "file_original_yn ", 211 "include_original_yn ", 212 "original_up_window_yn ", 213 "msgs_as_mail_yn ", 214 "interactive_msgs_yn ", 215 "lists_as_menus_yn ", 216 "multics_mode_yn ", 217 "remove_menus_yn ", 218 "save_mailfile ", 219 "save_message_yn ", 220 "version ", 221 "dprint_heading ", 222 "dprint_destination ", 223 "dprint_request_type ", 224 "dprint_copies ", 225 "dprint_left_margin ", 226 "dprint_notify ", 227 "lifetime_first_invocation"); 228 dcl vn_index fixed bin; 229 dcl vn_name char (*); 230 /* Now get the index to the table of names */ 231 232 do vn_index = 1 to 21 while (VN_NAME_ARRAY (vn_index) ^= rtrim(vn_name)); 233 end; 234 return; 235 end validate_name_and_index; 236 237 validate_returned_value: proc (vrv_index, vrv_out_value, vrv_code); 238 239 dcl vrv_code fixed bin (35); 240 dcl vrv_index fixed bin; 241 dcl vrv_out_value char (*) var; 242 dcl generic_type char (32); 243 dcl non_number fixed bin; 244 dcl TEST_VALUE_ARRAY dim (1:21) fixed bin int static options (constant) init 245 (1,2,2,1,1,2,1,2,2,2,2,3,1,9,4,5,6,8,7,1,1); 246 247 dcl NO init ("no") char (2) int static options (constant); 248 dcl YES init ("yes") char (3) int static options (constant); 249 dcl ASK init ("ask") char (3) int static options (constant); 250 dcl INVALID_CHARS init (" <()[]{}*,;") char (12) int static options (constant); 251 dcl VALID_LENGTH fixed bin init (32) int static options (constant); 252 253 dcl error_table_$bigarg fixed bin(35) ext static; 254 dcl error_table_$bad_arg fixed bin(35) ext static; 255 dcl error_table_$smallarg fixed bin(35) ext static; 256 dcl iod_info_$generic_type entry (char(*), char(32), fixed bin(35)); 257 258 vrv_code = 0; 259 goto OPTION (TEST_VALUE_ARRAY (vrv_index)); 260 261 OPTION (1): /* yes_no_ask */ 262 if ^(vrv_out_value = YES | 263 vrv_out_value = NO | 264 vrv_out_value = ASK) 265 then vrv_code = error_table_$bad_arg; 266 return; 267 268 OPTION (2): /* yes_no */ 269 if ^(vrv_out_value = YES | vrv_out_value = NO) 270 then vrv_code = error_table_$bad_arg; 271 return; 272 OPTION (3): /* save messages in mailbox name */ 273 if length (vrv_out_value) > VALID_LENGTH 274 then code = error_table_$smallarg; 275 else 276 if search (vrv_out_value, INVALID_CHARS) ^= 0 then 277 code = error_table_$bad_arg; 278 return; 279 280 OPTION (4): /* header */ 281 if length(vrv_out_value) > 64 282 then vrv_code = error_table_$bigarg; 283 return; 284 285 OPTION (5): /* destination */ 286 if length (vrv_out_value) < 0 | length (vrv_out_value) > 20 287 then vrv_code = error_table_$bigarg; 288 return; 289 290 OPTION (6): /* station */ 291 if rtrim(vrv_out_value) = "default" then ; 292 else do; 293 if length(vrv_out_value) > 24 294 then code = error_table_$smallarg; 295 else call iod_info_$generic_type ((vrv_out_value), generic_type, vrv_code); 296 end; 297 return; 298 299 OPTION (7): /* margin */ 300 301 non_number = verify (vrv_out_value, "-0123456789"); 302 if non_number ^= 0 303 then vrv_code = error_table_$bad_arg; 304 else 305 if (fixed(vrv_out_value)) < 0 | 306 (fixed(vrv_out_value)) > 20 307 then vrv_code = error_table_$bigarg; 308 return; 309 310 OPTION (8): /* copies */ 311 non_number = verify (vrv_out_value, "-0123456789"); 312 if non_number ^= 0 313 then vrv_code = error_table_$bad_arg; 314 else 315 if (fixed(vrv_out_value)) < 1 | 316 (fixed(vrv_out_value)) > 30 317 then vrv_code = error_table_$bigarg; 318 return; 319 320 OPTION (9): /* no check */ 321 return; 322 323 end validate_returned_value; 324 325 get_default_value: proc (gdv_index, gdv_out_value); 326 327 dcl gdv_index fixed bin; 328 dcl gdv_out_value char (*) var; 329 330 dcl GDV_DEFAULT_CLASS_ARRAY dim (1:21) fixed bin int static options (constant) init 331 (1,1,2,1,1,2,1,2,1,1,1,3,2,4,5,5,5,5,5,1,1); 332 333 goto OPTION (GDV_DEFAULT_CLASS_ARRAY (gdv_index)); 334 335 OPTION (1): /* no */ 336 gdv_out_value = "no"; 337 return; 338 OPTION (2): /* yes */ 339 gdv_out_value = "yes"; 340 return; 341 OPTION (3): /* ask */ 342 gdv_out_value = "ask"; 343 return; 344 OPTION (4): /* version */ 345 gdv_out_value = xmail_version; 346 return; 347 OPTION (5): /* all other */ 348 return; 349 end get_default_value; 1 1 /* BEGIN INCLUDE FILE: xmail_data.incl.pl1 */ 1 2 1 3 1 4 /****^ HISTORY COMMENTS: 1 5* 1) change(85-12-20,Blair), approve(86-03-06,MCR7358), 1 6* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 7* Modified 03/15/85 by Joanne Backs adding confirm_print flag. 1 8* 2) change(85-12-20,LJAdams), approve(86-03-06,MCR7358), 1 9* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 10* Adding switch to indicate request for menu display came from general help. 1 11* This is so general help menu will be displayed in top screen. 1 12* 3) change(86-01-10,Blair), approve(86-03-06,MCR7358), 1 13* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 14* Add switch to indicate whether or not it is permissible to process mail 1 15* in other users' mailboxes (foreign_mailbox). 1 16* 4) change(86-01-13,Blair), approve(86-03-06,MCR7358), 1 17* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 18* Add bit to indicate whether or not this is a true cleanup condition. 1 19* 5) change(86-02-06,Blair), approve(86-03-06,MCR7358), 1 20* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 21* Rearrange to group all the bit flags together in one word with a pad. 1 22* 6) change(86-03-05,Blair), approve(86-03-05,MCR7358), 1 23* audit(86-04-21,RBarstad), install(86-05-28,MR12.0-1062): 1 24* Change value_seg ptr to value_seg_pathname to avoid the situation where 1 25* you keep around a pointer to a structure which no longer exists. 1 26* 7) change(87-01-16,Blair), approve(87-02-05,MCR7618), 1 27* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 1 28* Add a field to indicate whether or not we should process interactive msgs. 1 29* Increment version to 4.1 so default value will get set. 1 30* 8) change(87-02-13,Blair), approve(87-02-13,MCR7618), 1 31* audit(87-04-15,RBarstad), install(87-04-26,MR12.1-1025): 1 32* Add a field to indicate whether or not we're processing a reply so that we 1 33* will be able to rebuild the screens properly after a disconnect occurs. 1 34* Error_list #114. 1 35* 9) change(88-07-26,Blair), approve(88-07-26,MCR7959), 1 36* audit(88-08-25,RBarstad), install(88-09-02,MR12.2-1098): 1 37* Add a bit to indicate whether or not the error segment had to be created 1 38* in the pdir (because we didn't have sma access to the mlsys_dir). 1 39* END HISTORY COMMENTS */ 1 40 1 41 1 42 /* Written 5/13/81 by Paul H. Kyzivat */ 1 43 /* Modified 12/16/81 by S. Krupp to delete unused parts of structure 1 44* and to add n_fkeys_used */ 1 45 /* Modified 12/14/82 by Dave Schimke to make the xmail version a 10 character 1 46* varying string. */ 1 47 /* Modified 09/12/83 by Dave Schimke adding interactive_msgs flag */ 1 48 /* Modified 09/14/83 by Dave Schimke adding moved_user_io */ 1 49 /* Modified 09/06/84 by Joanne Backs adding lists_as_menus flag */ 1 50 /* Modified 09/21/84 by Joanne Backs adding remove_menus flag */ 1 51 1 52 dcl xmail_data_ptr external static ptr init (null); 1 53 1 54 dcl 1 xmail_data aligned based (xmail_data_ptr), 1 55 2 mail_dir char (168) varying, 1 56 2 first_label label, 1 57 2 quit_label label, 1 58 2 value_seg_pathname char (168) varying, 1 59 2 moved_user_io ptr, 1 60 2 normal_usage char (80) unal, 1 61 2 function_key_info, 1 62 3 function_key_data_ptr ptr, 1 63 3 n_fkeys_used fixed bin, 1 64 2 actee, 1 65 3 person char(32) varying, 1 66 3 project char(32) varying, 1 67 2 flags aligned, 1 68 3 mail_in_incoming bit (1) unal, 1 69 3 lists_as_menus bit (1) unal, /* personalization */ 1 70 3 remove_menus bit (1) unal, /* personalization */ 1 71 3 confirm_print bit (1) unal, /* personalization */ 1 72 3 multics_mode bit (1) unal, /* personalization */ 1 73 3 interactive_msgs bit (1) unal, /* personalization */ 1 74 3 foreign_mailbox bit (1) unal, /* read others' mailboxes */ 1 75 3 general_help bit (1) unal, /* indicated requesting gen help*/ 1 76 3 cleanup_signalled bit (1) unal, /* on when true cleanup condition */ 1 77 3 msgs_as_mail bit (1) unal, /* on for include_msgs */ 1 78 3 reply_request bit (1) unal, /* on if we're doing a reply */ 1 79 3 error_seg_in_pdir bit (1) unal, /* on if the error_seg is in the pdir */ 1 80 3 pad bit (24) unal; 1 81 1 82 1 83 1 84 dcl xmail_version char(10) var static options(constant) init("4.1"); 1 85 1 86 /* END INCLUDE FILE: xmail_data.incl.pl1 */ 350 2 1 /* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1 2 2* 2 3* Values for the "access mode" argument so often used in hardcore 2 4* James R. Davis 26 Jan 81 MCR 4844 2 5* Added constants for SM access 4/28/82 Jay Pattin 2 6* Added text strings 03/19/85 Chris Jones 2 7**/ 2 8 2 9 2 10 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */ 2 11 dcl ( 2 12 N_ACCESS init ("000"b), 2 13 R_ACCESS init ("100"b), 2 14 E_ACCESS init ("010"b), 2 15 W_ACCESS init ("001"b), 2 16 RE_ACCESS init ("110"b), 2 17 REW_ACCESS init ("111"b), 2 18 RW_ACCESS init ("101"b), 2 19 S_ACCESS init ("100"b), 2 20 M_ACCESS init ("010"b), 2 21 A_ACCESS init ("001"b), 2 22 SA_ACCESS init ("101"b), 2 23 SM_ACCESS init ("110"b), 2 24 SMA_ACCESS init ("111"b) 2 25 ) bit (3) internal static options (constant); 2 26 2 27 /* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or 2 28* 2) divide (bin_value, 2) to come up with an index into the array. */ 2 29 2 30 dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal 2 31 static options (constant); 2 32 2 33 dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal 2 34 static options (constant); 2 35 2 36 dcl ( 2 37 N_ACCESS_BIN init (00000b), 2 38 R_ACCESS_BIN init (01000b), 2 39 E_ACCESS_BIN init (00100b), 2 40 W_ACCESS_BIN init (00010b), 2 41 RW_ACCESS_BIN init (01010b), 2 42 RE_ACCESS_BIN init (01100b), 2 43 REW_ACCESS_BIN init (01110b), 2 44 S_ACCESS_BIN init (01000b), 2 45 M_ACCESS_BIN init (00010b), 2 46 A_ACCESS_BIN init (00001b), 2 47 SA_ACCESS_BIN init (01001b), 2 48 SM_ACCESS_BIN init (01010b), 2 49 SMA_ACCESS_BIN init (01011b) 2 50 ) fixed bin (5) internal static options (constant); 2 51 2 52 /* END INCLUDE FILE ... access_mode_values.incl.pl1 */ 351 352 353 354 end xmail_value_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 09/02/88 0745.2 xmail_value_.pl1 >spec>install>MR12.2-1098>xmail_value_.pl1 350 1 09/02/88 0743.4 xmail_data.incl.pl1 >spec>install>MR12.2-1098>xmail_data.incl.pl1 351 2 04/11/85 1452.6 access_mode_values.incl.pl1 >ldd>include>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. ASK 000316 constant char(3) initial packed unaligned dcl 249 ref 261 GDV_DEFAULT_CLASS_ARRAY 000016 constant fixed bin(17,0) initial array dcl 330 ref 333 INVALID_CHARS 000043 constant char(12) initial packed unaligned dcl 250 ref 275 NO 003132 constant char(2) initial packed unaligned dcl 247 ref 261 268 PERMANENT 000315 constant bit(36) initial dcl 93 set ref 107* 112* 118* 139* 154* 167* 177* RW_ACCESS 000310 constant bit(3) initial packed unaligned dcl 2-11 set ref 200* TEST_VALUE_ARRAY 000046 constant fixed bin(17,0) initial array dcl 244 ref 259 VALID_LENGTH constant fixed bin(17,0) initial dcl 251 ref 272 VALUE_SEG_NAME 000277 constant varying char(32) initial dcl 195 ref 200 VN_NAME_ARRAY 000073 constant char(25) initial array packed unaligned dcl 206 ref 232 YES 000317 constant char(3) initial packed unaligned dcl 248 ref 261 268 bc 000122 automatic fixed bin(24,0) dcl 192 set ref 200* code parameter fixed bin(35,0) dcl 84 set ref 104 107* 109 112* 115 118* 120 121 123* 127* 128 130* 136 139* 141 142 144* 149 152* 154* 155 156* 163 167* 168 169* 174 177* 179 181* 183 184* 272* 275* 293* error_table_$bad_arg 000034 external static fixed bin(35,0) dcl 254 ref 261 268 275 302 312 error_table_$bigarg 000032 external static fixed bin(35,0) dcl 253 ref 280 285 304 314 error_table_$oldnamerr 000010 external static fixed bin(35,0) dcl 94 ref 120 141 179 error_table_$smallarg 000036 external static fixed bin(35,0) dcl 255 ref 272 293 fixed builtin function dcl 90 ref 304 304 314 314 gdv_index parameter fixed bin(17,0) dcl 327 ref 325 333 gdv_out_value parameter varying char dcl 328 set ref 325 335* 338* 341* 344* generic_type 000140 automatic char(32) packed unaligned dcl 242 set ref 295* in_value parameter varying char dcl 84 set ref 149 154* 163 167* 174 180 index 000100 automatic fixed bin(17,0) dcl 89 set ref 106* 111* 117* 120 120 124* 127* 131* 138* 145* 151* 157* 165* 170* 176* 185* initiate_file_ 000030 constant entry external dcl 191 ref 200 iod_info_$generic_type 000040 constant entry external dcl 256 ref 295 length builtin function dcl 90 ref 272 280 285 285 293 name parameter char packed unaligned dcl 84 set ref 104 106* 107* 109 111* 112* 115 117* 118* 136 138* 139* 149 151* 154* 163 165* 167* 174 176* 177* non_number 000150 automatic fixed bin(17,0) dcl 243 set ref 299* 302 310* 312 null builtin function dcl 90 ref 118 121 139 142 152 177 199 out_value parameter varying char dcl 84 set ref 115 118* 124* 127* 131* 136 139* 145* 149 154* 157* 167* 170* 174 177* 180* 185* rtrim builtin function dcl 90 ref 200 200 232 290 search builtin function dcl 90 ref 275 test_value parameter varying char dcl 84 ref 163 value_$defined 000012 constant entry external dcl 95 ref 107 value_$delete 000014 constant entry external dcl 95 ref 112 value_$get 000016 constant entry external dcl 95 ref 118 139 177 value_$set 000020 constant entry external dcl 95 ref 154 value_$test_and_set 000022 constant entry external dcl 95 ref 167 value_seg_pathname 64 based varying char(168) level 2 dcl 1-54 ref 200 200 value_seg_ptr 000102 automatic pointer dcl 92 set ref 105* 107* 110* 112* 116* 118 118* 121 123* 130* 137* 139 139* 142 144* 150* 152 152* 154* 156* 164* 167* 169* 175* 177 177* 184* verify builtin function dcl 90 ref 299 310 vn_index parameter fixed bin(17,0) dcl 228 set ref 204 232* 232* vn_name parameter char packed unaligned dcl 229 ref 204 232 vrv_code parameter fixed bin(35,0) dcl 239 set ref 237 258* 261* 268* 280* 285* 295* 302* 304* 312* 314* vrv_index parameter fixed bin(17,0) dcl 240 ref 237 259 vrv_out_value parameter varying char dcl 241 ref 237 261 261 261 268 268 272 275 280 285 285 290 293 295 299 304 304 310 314 314 vvs_code 000123 automatic fixed bin(35,0) dcl 193 set ref 200* vvs_value_seg_ptr parameter pointer dcl 194 set ref 189 199* 200* xmail_data based structure level 1 dcl 1-54 xmail_data_ptr 000026 external static pointer initial dcl 1-52 ref 200 200 xmail_rebuild_value_seg_ 000024 constant entry external dcl 102 ref 123 130 144 152 156 169 184 xmail_version 000311 constant varying char(10) initial dcl 1-84 ref 344 NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. A_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 A_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 DIR_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-33 E_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 E_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 M_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 M_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 N_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 N_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 REW_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 REW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RE_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 RE_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 RW_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 R_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 R_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SEG_ACCESS_MODE_NAMES internal static char(4) initial array packed unaligned dcl 2-30 SMA_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SMA_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 SM_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 SM_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 S_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 S_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 W_ACCESS internal static bit(3) initial packed unaligned dcl 2-11 W_ACCESS_BIN internal static fixed bin(5,0) initial dcl 2-36 NAMES DECLARED BY EXPLICIT CONTEXT. OPTION 000011 constant label array(5) dcl 335 in procedure "get_default_value" ref 333 OPTION 000000 constant label array(9) dcl 261 in procedure "validate_returned_value" ref 259 defined 000370 constant entry external dcl 104 delete 000505 constant entry external dcl 109 get 000607 constant entry external dcl 115 get_default_value 002437 constant entry internal dcl 325 ref 124 131 145 157 170 185 get_no_validate 001037 constant entry external dcl 136 get_with_default 001553 constant entry external dcl 174 set 001215 constant entry external dcl 149 test_and_set 001402 constant entry external dcl 163 validate_name_and_index 002044 constant entry internal dcl 204 ref 106 111 117 138 151 165 176 validate_returned_value 002110 constant entry internal dcl 237 ref 127 validate_value_seg 001746 constant entry internal dcl 189 ref 105 110 116 137 150 164 175 xmail_value_ 000354 constant entry external dcl 82 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3354 3416 3135 3364 Length 3672 3135 42 237 216 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME xmail_value_ 407 external procedure is an external procedure. validate_value_seg internal procedure shares stack frame of external procedure xmail_value_. validate_name_and_index internal procedure shares stack frame of external procedure xmail_value_. validate_returned_value internal procedure shares stack frame of external procedure xmail_value_. get_default_value internal procedure shares stack frame of external procedure xmail_value_. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME xmail_value_ 000100 index xmail_value_ 000102 value_seg_ptr xmail_value_ 000122 bc validate_value_seg 000123 vvs_code validate_value_seg 000140 generic_type validate_returned_value 000150 non_number validate_returned_value THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_char_temp call_ext_out_desc call_ext_out return_mac signal_op shorten_stack ext_entry ext_entry_desc any_to_any_truncate_ THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. initiate_file_ iod_info_$generic_type value_$defined value_$delete value_$get value_$set value_$test_and_set xmail_rebuild_value_seg_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$bad_arg error_table_$bigarg error_table_$oldnamerr error_table_$smallarg xmail_data_ptr LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 82 000353 104 000363 105 000407 106 000411 107 000427 109 000501 110 000525 111 000527 112 000545 113 000574 115 000603 116 000633 117 000635 118 000653 120 000712 121 000724 123 000732 124 000742 125 000756 127 000757 128 000777 130 001001 131 001012 134 001026 136 001035 137 001063 138 001065 139 001103 141 001142 142 001147 144 001155 145 001165 147 001201 149 001210 150 001246 151 001250 152 001266 154 001303 155 001342 156 001344 157 001355 159 001371 163 001400 164 001434 165 001436 167 001454 168 001513 169 001515 170 001526 172 001542 174 001551 175 001604 176 001606 177 001624 179 001663 180 001667 181 001707 182 001710 183 001711 184 001713 185 001723 187 001737 189 001746 199 001750 200 001752 201 002042 204 002044 232 002055 233 002105 234 002107 237 002110 258 002121 259 002123 261 002126 266 002151 268 002152 271 002170 272 002171 275 002201 278 002217 280 002220 283 002227 285 002230 288 002240 290 002241 293 002261 295 002270 296 002320 297 002321 299 002322 302 002336 304 002343 308 002367 310 002370 312 002404 314 002411 318 002435 320 002436 325 002437 333 002450 335 002454 337 002465 338 002466 340 002477 341 002500 343 002511 344 002512 346 002523 347 002524 ----------------------------------------------------------- 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