COMPILATION LISTING OF SEGMENT network_request Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/12/82 1156.0 mst Fri Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 /******************************************************************************/ 7 /* */ 8 /* DESCRIPTION: */ 9 /* */ 10 /* This command implements the general interactive network function */ 11 /* interface. The syntax is: */ 12 /* */ 13 /* nr {} */ 14 /* */ 15 /* The is used to look up the subroutine that implements that */ 16 /* function in the Network Information Table, using the net_info_table_ */ 17 /* entries. That subroutine is then called to do all the work. Basically */ 18 /* this command is just a framework into which different functions can be */ 19 /* plugged. */ 20 /* */ 21 /* */ 22 /* JOURNALIZATION: */ 23 /* */ 24 /* 1) Written 3/82 by R.J.C. Kissel */ 25 /* */ 26 /******************************************************************************/ 27 28 /* format: style3,linecom,ifthenstmt,indthenelse,^indnoniterdo,indnoniterend,initcol3,dclind5,idind32 */ 29 30 network_request: 31 nr: 32 proc (); 33 34 /* Automatic */ 35 36 dcl arg char (arg_len) based (arg_ptr); 37 dcl arg_idx fixed bin; 38 dcl arg_len fixed bin (21); 39 dcl arg_ptr ptr; 40 dcl arg_list_ptr ptr; 41 42 dcl 1 auto_area_info aligned like area_info; 43 dcl based_area area (sys_info$max_seg_size) based; 44 dcl code fixed bin (35); 45 dcl command_name char (16); 46 dcl function_name char (32); 47 dcl get_argument entry (fixed bin, ptr, fixed bin (21), fixed bin (35)) variable; 48 dcl in_iocbp ptr; 49 50 dcl nasp_area_ptr ptr defined (auto_area_info.areap); 51 dcl nasp_complete bit (1); 52 dcl nasp_error_message char (256) varying; 53 dcl nasp_name char (32); 54 dcl nasp_unhold bit (1); 55 56 dcl nasp_structure bit (nasp_structure_len) based (nasp_structure_ptr) aligned; 57 dcl nasp_structure_len fixed bin (24); 58 dcl nasp_structure_ptr ptr; 59 60 dcl number_of_args fixed bin; 61 dcl out_iocbp ptr; 62 dcl queued_flag bit (1); 63 dcl report_error entry () options (variable) variable; 64 65 dcl return_arg char (return_arg_len) based (return_arg_ptr); 66 dcl return_arg_len fixed bin (21); 67 dcl return_arg_ptr ptr; 68 69 dcl usage char (64); 70 71 /* Local Constants */ 72 73 dcl COM_USAGE char (64) internal static options (constant) 74 init ("Usage: nr {}"); 75 dcl AF_USAGE char (64) internal static options (constant) 76 init ("Usage: [nr {}]"); 77 78 /* External Constants */ 79 80 dcl error_table_$fatal_error fixed bin (35) ext static; 81 dcl error_table_$noarg fixed bin (35) ext static; 82 dcl error_table_$not_act_fnc fixed bin (35) ext static; 83 84 dcl iox_$user_input ptr ext static; 85 dcl iox_$user_output ptr ext static; 86 87 dcl sys_info$max_seg_size fixed bin (35) ext static; 88 89 /* External Entries */ 90 91 dcl active_fnc_err_ entry options (variable); 92 dcl com_err_ entry () options (variable); 93 dcl cu_$af_return_arg entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 94 dcl cu_$af_arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 95 dcl cu_$arg_list_ptr entry (ptr); 96 dcl cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); 97 dcl cu_$arg_count entry (fixed bin, fixed bin (35)); 98 dcl cv_entry_ entry (char (*), ptr, fixed bin (35)) returns (entry); 99 dcl define_area_ entry (ptr, fixed bin (35)); 100 dcl ioa_$general_rs entry (ptr, fixed bin, fixed bin, char (*), fixed bin (21), bit (1) aligned, 101 bit (1) aligned); 102 dcl net_info_table_$get_nasp_name entry (char (*), char (*), fixed bin (35)); 103 dcl release_area_ entry (ptr); 104 105 /* Builtin Functions and Conditions */ 106 107 dcl addr builtin; 108 dcl null builtin; 109 dcl rtrim builtin; 110 111 dcl cleanup condition; 112 113 /* Include Files */ 114 1 1 /*----------BEGIN nasp_entry_dcls.incl.pl1-----------------------------------*/ 1 2 1 3 /******************************************************************************/ 1 4 /* */ 1 5 /* This include file declares the generic NASP entries as entry variables */ 1 6 /* so that they can be set using cv_entry_ and called in the various */ 1 7 /* networking commands. */ 1 8 /* */ 1 9 /******************************************************************************/ 1 10 1 11 /* format: style3,linecom,ifthenstmt,indthenelse,^indnoniterdo,indnoniterend,initcol3,dclind5,idind32 */ 1 12 1 13 dcl NASP_cancel entry (ptr, fixed bin (24), char (*) varying, fixed bin (35)) variable; 1 14 dcl NASP_execute entry (ptr, ptr, char (*), bit (1), ptr, fixed bin (24), bit (1), bit (1), 1 15 char (*) varying, fixed bin (35)) variable; 1 16 dcl NASP_info entry (ptr, fixed bin (24), ptr, char (*) varying, fixed bin (35)) variable; 1 17 dcl NASP_list entry (ptr, fixed bin, ptr, fixed bin (24), bit (1), char (*) varying, 1 18 char (*) varying, fixed bin (35)) variable; 1 19 dcl NASP_modify entry (ptr, ptr, char (*), ptr, fixed bin, ptr, fixed bin (24), char (*) varying, 1 20 fixed bin (35)) variable; 1 21 dcl NASP_parser entry (ptr, ptr, char (*), ptr, fixed bin, bit (1), ptr, ptr, fixed bin (24), 1 22 char (*) varying, fixed bin (35)) variable; 1 23 1 24 /*----------END nasp_entry_dcls.incl.pl1-------------------------------------*/ 115 116 2 1 /* BEGIN INCLUDE FILE area_info.incl.pl1 12/75 */ 2 2 2 3 dcl area_info_version_1 fixed bin static init (1) options (constant); 2 4 2 5 dcl area_infop ptr; 2 6 2 7 dcl 1 area_info aligned based (area_infop), 2 8 2 version fixed bin, /* version number for this structure is 1 */ 2 9 2 control aligned like area_control, /* control bits for the area */ 2 10 2 owner char (32) unal, /* creator of the area */ 2 11 2 n_components fixed bin, /* number of components in the area (returned only) */ 2 12 2 size fixed bin (18), /* size of the area in words */ 2 13 2 version_of_area fixed bin, /* version of area (returned only) */ 2 14 2 areap ptr, /* pointer to the area (first component on multisegment area) */ 2 15 2 allocated_blocks fixed bin, /* number of blocks allocated */ 2 16 2 free_blocks fixed bin, /* number of free blocks not in virgin */ 2 17 2 allocated_words fixed bin (30), /* number of words allocated in the area */ 2 18 2 free_words fixed bin (30); /* number of words free in area not in virgin */ 2 19 2 20 dcl 1 area_control aligned based, 2 21 2 extend bit (1) unal, /* says area is extensible */ 2 22 2 zero_on_alloc bit (1) unal, /* says block gets zerod at allocation time */ 2 23 2 zero_on_free bit (1) unal, /* says block gets zerod at free time */ 2 24 2 dont_free bit (1) unal, /* debugging aid, turns off free requests */ 2 25 2 no_freeing bit (1) unal, /* for allocation method without freeing */ 2 26 2 system bit (1) unal, /* says area is managed by system */ 2 27 2 pad bit (30) unal; 2 28 2 29 /* END INCLUDE FILE area_info.incl.pl1 */ 117 118 119 command_name = "network_request"; 120 in_iocbp = iox_$user_input; 121 out_iocbp = iox_$user_output; 122 queued_flag = "0"b; /* This is an interactive request. */ 123 124 nasp_area_ptr = null (); /* This sets auto_area_info.areap too. */ 125 nasp_structure_ptr = null (); 126 nasp_structure_len = 0; 127 128 call cu_$af_return_arg (number_of_args, return_arg_ptr, return_arg_len, code); 129 130 if code = 0 131 then do; /* An active function call. */ 132 report_error = active_fnc_err_; 133 get_argument = cu_$af_arg_ptr; 134 usage = AF_USAGE; 135 end; 136 137 else if code = error_table_$not_act_fnc 138 then do; /* A command call. */ 139 return_arg_ptr = null (); 140 report_error = com_err_; 141 get_argument = cu_$arg_ptr; 142 usage = COM_USAGE; 143 end; 144 145 else do; /* An error. */ 146 return_arg_ptr = null (); 147 report_error = com_err_; 148 call ERROR (code, "Trying to get the command arguments."); 149 end; 150 151 if number_of_args < 1 then call ERROR (error_table_$noarg, "^/^a.", usage); 152 153 arg_idx = 1; /* Process the function argument. */ 154 155 call get_argument (arg_idx, arg_ptr, arg_len, code); 156 if code ^= 0 then call ERROR (code, "Trying to get the argument."); 157 158 function_name = arg; 159 160 call net_info_table_$get_nasp_name (function_name, nasp_name, code); 161 if code ^= 0 then call ERROR (code, "Trying to get the NASP name for the function: ^a.", function_name); 162 163 NASP_parser = cv_entry_ (rtrim (nasp_name) || "$parser", null (), code); 164 if code ^= 0 then call ERROR (code, "Trying to generate the NASP_$parser entry."); 165 166 NASP_execute = cv_entry_ (rtrim (nasp_name) || "$execute", null (), code); 167 if code ^= 0 then call ERROR (code, "Trying to generate the NASP_$execute entry."); 168 169 /* Set up so the NASP entry can get its arguments from our argument list. */ 170 171 arg_idx = arg_idx + 1; 172 173 call cu_$arg_list_ptr (arg_list_ptr); 174 175 on cleanup call Cleanup_Handler (); 176 177 /* Get a temporary area */ 178 179 auto_area_info.version = area_info_version_1; 180 auto_area_info.control = "0"b; 181 auto_area_info.control.extend = "1"b; 182 auto_area_info.control.zero_on_alloc = "1"b; 183 auto_area_info.owner = command_name; 184 auto_area_info.size = sys_info$max_seg_size; 185 186 call define_area_ (addr (auto_area_info), code); 187 if code ^= 0 then call ERROR (code, "Trying to define a temporary area."); 188 189 /* Do the real work by calling the NASP entries. */ 190 191 call NASP_parser (in_iocbp, out_iocbp, command_name, arg_list_ptr, arg_idx, queued_flag, nasp_area_ptr, 192 nasp_structure_ptr, nasp_structure_len, nasp_error_message, code); 193 if code ^= 0 then call ERROR (code, "From ^a$parser: ^a", nasp_name, nasp_error_message); 194 195 call NASP_execute (in_iocbp, out_iocbp, command_name, queued_flag, nasp_structure_ptr, nasp_structure_len, 196 nasp_complete, nasp_unhold, nasp_error_message, code); 197 if code ^= 0 then call ERROR (code, "From ^a$execute: ^a", nasp_name, nasp_error_message); 198 199 /* nasp_complete and nasp_unhold are ignored for an interactive request, so we are done. */ 200 201 call Cleanup_Handler (); 202 203 if return_arg_ptr ^= null () then return_arg = "true"; 204 205 RETURN: 206 return; 207 208 /*****************************************************************************/ 209 /* */ 210 /* PROCEDURE: ERROR */ 211 /* */ 212 /* This subroutine expects arguments as follows: */ 213 /* */ 214 /* call ERROR (code, ioa_control_string, ioa_arguments, ...) */ 215 /* */ 216 /* where: code is fixed bin (35), and ioa_control_string and ioa_arguments */ 217 /* are optional character strings as defined for ioa_. */ 218 /* */ 219 /* Some global variables are used: */ 220 /* */ 221 /* Cleanup_Handler (a procedure that does cleanup) */ 222 /* */ 223 /* For commands: */ 224 /* report_error (an entry variable set to com_err_ or active_fnc_err_)*/ 225 /* command_name (the character string name of the command) */ 226 /* return_arg_ptr (used to return "false" for active functions) */ 227 /* */ 228 /* For subroutines: */ 229 /* depends on the error reporting strategy chosen. */ 230 /* */ 231 /* At completion a non-local goto is done to the label RETURN. */ 232 /* */ 233 /* Declarations are expected for: */ 234 /* */ 235 /* cu_$arg_list_ptr */ 236 /* cu_$arg_ptr */ 237 /* cu_$arg_count */ 238 /* error_table_$fatal_error */ 239 /* ioa_$general_rs */ 240 /* */ 241 /*****************************************************************************/ 242 243 ERROR: 244 proc () options (variable, non_quick); 245 246 dcl arg_list_ptr ptr; 247 dcl arg_len fixed bin (21); 248 dcl arg_ptr ptr; 249 dcl based_code fixed bin (35) based; 250 dcl caller_code fixed bin (35); 251 dcl code fixed bin (35); 252 dcl err_msg char (256); 253 dcl err_msg_len fixed bin (21); 254 dcl nargs fixed bin; 255 256 call cu_$arg_count (nargs, code); /* IGNORE CODE */ 257 258 if nargs >= 1 259 then do; /* We were called correctly. */ 260 arg_ptr = null (); /* Set this so we know if cu_$arg_ptr worked. */ 261 call cu_$arg_ptr (1, arg_ptr, arg_len, code); 262 263 if arg_ptr ^= null () 264 then caller_code = arg_ptr -> based_code; 265 /* The normal case. */ 266 else caller_code = error_table_$fatal_error; 267 /* Some problem with our arg list. */ 268 269 if nargs > 1 270 then do; /* There is a message. */ 271 call cu_$arg_list_ptr (arg_list_ptr); 272 call ioa_$general_rs (arg_list_ptr, 2, 3, err_msg, err_msg_len, "1"b, "0"b); 273 end; 274 275 else do; /* No message. */ 276 err_msg = ""; 277 err_msg_len = 0; 278 end; 279 end; /* We were called correctly. */ 280 281 else do; /* We were called with no arguments. */ 282 caller_code = error_table_$fatal_error; /* The best we can do. */ 283 err_msg = ""; 284 err_msg_len = 0; 285 end; /* We were called with no arguments. */ 286 287 call Cleanup_Handler (); 288 289 /* The following lines must be modified depending on the error reporting strategy used. */ 290 291 call report_error (caller_code, command_name, "^a", err_msg); 292 293 if return_arg_ptr ^= null () then return_arg = "false"; 294 295 /* Do a non-local goto back to the outermost block. */ 296 297 goto RETURN; 298 299 end ERROR; 300 301 Cleanup_Handler: 302 proc (); 303 304 if nasp_area_ptr ^= null () 305 then do; 306 if nasp_structure_ptr ^= null () then free nasp_structure in (nasp_area_ptr -> based_area); 307 308 call release_area_ (nasp_area_ptr); 309 end; 310 311 return; 312 313 end Cleanup_Handler; 314 315 end network_request; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/12/82 0953.9 network_request.pl1 >spec>on>11/12/82>network_request.pl1 115 1 11/12/82 0954.0 nasp_entry_dcls.incl.pl1 >spec>on>11/12/82>nasp_entry_dcls.incl.pl1 117 2 06/11/76 1043.4 area_info.incl.pl1 >ldd>include>area_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. AF_USAGE 000000 constant char(64) initial unaligned dcl 75 ref 134 COM_USAGE 000020 constant char(64) initial unaligned dcl 73 ref 142 NASP_execute 000340 automatic entry variable dcl 1-14 set ref 166* 195 NASP_parser 000344 automatic entry variable dcl 1-21 set ref 163* 191 active_fnc_err_ 000024 constant entry external dcl 91 ref 132 addr builtin function dcl 107 ref 186 186 area_control based structure level 1 dcl 2-20 area_info based structure level 1 dcl 2-7 area_info_version_1 constant fixed bin(17,0) initial dcl 2-3 ref 179 areap 16 000106 automatic pointer level 2 dcl 42 set ref 124* 124 191 191 304 304 306 306 308 308 arg based char unaligned dcl 36 ref 158 arg_idx 000100 automatic fixed bin(17,0) dcl 37 set ref 153* 155* 171* 171 191* arg_len 000101 automatic fixed bin(21,0) dcl 38 in procedure "nr" set ref 155* 158 arg_len 000102 automatic fixed bin(21,0) dcl 247 in procedure "ERROR" set ref 261* arg_list_ptr 000104 automatic pointer dcl 40 in procedure "nr" set ref 173* 191* arg_list_ptr 000100 automatic pointer dcl 246 in procedure "ERROR" set ref 271* 272* arg_ptr 000102 automatic pointer dcl 39 in procedure "nr" set ref 155* 158 arg_ptr 000104 automatic pointer dcl 248 in procedure "ERROR" set ref 260* 261* 263 263 auto_area_info 000106 automatic structure level 1 dcl 42 set ref 186 186 based_area based area dcl 43 ref 306 based_code based fixed bin(35,0) dcl 249 ref 263 caller_code 000106 automatic fixed bin(35,0) dcl 250 set ref 263* 266* 282* 291* cleanup 000332 stack reference condition dcl 111 ref 175 code 000132 automatic fixed bin(35,0) dcl 44 in procedure "nr" set ref 128* 130 137 148* 155* 156 156* 160* 161 161* 163* 164 164* 166* 167 167* 186* 187 187* 191* 193 193* 195* 197 197* code 000107 automatic fixed bin(35,0) dcl 251 in procedure "ERROR" set ref 256* 261* com_err_ 000026 constant entry external dcl 92 ref 140 147 command_name 000133 automatic char(16) unaligned dcl 45 set ref 119* 183 191* 195* 291* control 1 000106 automatic structure level 2 dcl 42 set ref 180* cu_$af_arg_ptr 000032 constant entry external dcl 94 ref 133 cu_$af_return_arg 000030 constant entry external dcl 93 ref 128 cu_$arg_count 000040 constant entry external dcl 97 ref 256 cu_$arg_list_ptr 000034 constant entry external dcl 95 ref 173 271 cu_$arg_ptr 000036 constant entry external dcl 96 ref 141 261 cv_entry_ 000042 constant entry external dcl 98 ref 163 166 define_area_ 000044 constant entry external dcl 99 ref 186 err_msg 000110 automatic char(256) unaligned dcl 252 set ref 272* 276* 283* 291* err_msg_len 000210 automatic fixed bin(21,0) dcl 253 set ref 272* 277* 284* error_table_$fatal_error 000010 external static fixed bin(35,0) dcl 80 ref 266 282 error_table_$noarg 000012 external static fixed bin(35,0) dcl 81 set ref 151* error_table_$not_act_fnc 000014 external static fixed bin(35,0) dcl 82 ref 137 extend 1 000106 automatic bit(1) level 3 packed unaligned dcl 42 set ref 181* function_name 000137 automatic char(32) unaligned dcl 46 set ref 158* 160* 161* get_argument 000150 automatic entry variable dcl 47 set ref 133* 141* 155 in_iocbp 000154 automatic pointer dcl 48 set ref 120* 191* 195* ioa_$general_rs 000046 constant entry external dcl 100 ref 272 iox_$user_input 000016 external static pointer dcl 84 ref 120 iox_$user_output 000020 external static pointer dcl 85 ref 121 nargs 000211 automatic fixed bin(17,0) dcl 254 set ref 256* 258 269 nasp_area_ptr defined pointer dcl 50 set ref 124* 191* 304 306 308* nasp_complete 000156 automatic bit(1) unaligned dcl 51 set ref 195* nasp_error_message 000157 automatic varying char(256) dcl 52 set ref 191* 193* 195* 197* nasp_name 000260 automatic char(32) unaligned dcl 53 set ref 160* 163 166 193* 197* nasp_structure based bit dcl 56 ref 306 nasp_structure_len 000271 automatic fixed bin(24,0) dcl 57 set ref 126* 191* 195* 306 306 nasp_structure_ptr 000272 automatic pointer dcl 58 set ref 125* 191* 195* 306 306 nasp_unhold 000270 automatic bit(1) unaligned dcl 54 set ref 195* net_info_table_$get_nasp_name 000050 constant entry external dcl 102 ref 160 null builtin function dcl 108 ref 124 125 139 146 163 163 166 166 203 260 263 293 304 306 number_of_args 000274 automatic fixed bin(17,0) dcl 60 set ref 128* 151 out_iocbp 000276 automatic pointer dcl 61 set ref 121* 191* 195* owner 2 000106 automatic char(32) level 2 packed unaligned dcl 42 set ref 183* queued_flag 000300 automatic bit(1) unaligned dcl 62 set ref 122* 191* 195* release_area_ 000052 constant entry external dcl 103 ref 308 report_error 000302 automatic entry variable dcl 63 set ref 132* 140* 147* 291 return_arg based char unaligned dcl 65 set ref 203* 293* return_arg_len 000306 automatic fixed bin(21,0) dcl 66 set ref 128* 203 293 return_arg_ptr 000310 automatic pointer dcl 67 set ref 128* 139* 146* 203 203 293 293 rtrim builtin function dcl 109 ref 163 166 size 13 000106 automatic fixed bin(18,0) level 2 dcl 42 set ref 184* sys_info$max_seg_size 000022 external static fixed bin(35,0) dcl 87 ref 184 usage 000312 automatic char(64) unaligned dcl 69 set ref 134* 142* 151* version 000106 automatic fixed bin(17,0) level 2 dcl 42 set ref 179* zero_on_alloc 1(01) 000106 automatic bit(1) level 3 packed unaligned dcl 42 set ref 182* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. NASP_cancel automatic entry variable dcl 1-13 NASP_info automatic entry variable dcl 1-16 NASP_list automatic entry variable dcl 1-17 NASP_modify automatic entry variable dcl 1-19 area_infop automatic pointer dcl 2-5 NAMES DECLARED BY EXPLICIT CONTEXT. Cleanup_Handler 001504 constant entry internal dcl 301 ref 175 201 287 ERROR 001261 constant entry internal dcl 243 ref 148 151 156 161 164 167 187 193 197 RETURN 001257 constant label dcl 205 ref 297 network_request 000233 constant entry external dcl 30 nr 000224 constant entry external dcl 30 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 2024 2100 1550 2034 Length 2340 1550 54 224 254 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME nr 360 external procedure is an external procedure. on unit on line 175 64 on unit ERROR 188 internal procedure is declared options(non_quick), and is declared options(variable). Cleanup_Handler 68 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME ERROR 000100 arg_list_ptr ERROR 000102 arg_len ERROR 000104 arg_ptr ERROR 000106 caller_code ERROR 000107 code ERROR 000110 err_msg ERROR 000210 err_msg_len ERROR 000211 nargs ERROR nr 000100 arg_idx nr 000101 arg_len nr 000102 arg_ptr nr 000104 arg_list_ptr nr 000106 auto_area_info nr 000132 code nr 000133 command_name nr 000137 function_name nr 000150 get_argument nr 000154 in_iocbp nr 000156 nasp_complete nr 000157 nasp_error_message nr 000260 nasp_name nr 000270 nasp_unhold nr 000271 nasp_structure_len nr 000272 nasp_structure_ptr nr 000274 number_of_args nr 000276 out_iocbp nr 000300 queued_flag nr 000302 report_error nr 000306 return_arg_len nr 000310 return_arg_ptr nr 000312 usage nr 000340 NASP_execute nr 000344 NASP_parser nr THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_var_desc call_var call_ext_out_desc call_ext_out call_int_this_desc call_int_this call_int_other return tra_ext enable shorten_stack ext_entry int_entry free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. active_fnc_err_ com_err_ cu_$af_arg_ptr cu_$af_return_arg cu_$arg_count cu_$arg_list_ptr cu_$arg_ptr cv_entry_ define_area_ ioa_$general_rs net_info_table_$get_nasp_name release_area_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$fatal_error error_table_$noarg error_table_$not_act_fnc iox_$user_input iox_$user_output sys_info$max_seg_size LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 30 000223 119 000240 120 000243 121 000246 122 000251 124 000252 125 000254 126 000255 128 000256 130 000272 132 000274 133 000301 134 000304 135 000307 137 000310 139 000313 140 000315 141 000321 142 000324 143 000327 146 000330 147 000332 148 000336 151 000355 153 000403 155 000405 156 000421 158 000442 160 000447 161 000467 163 000514 164 000571 166 000613 167 000670 171 000712 173 000713 175 000722 179 000744 180 000746 181 000764 182 000766 183 000770 184 000773 186 000776 187 001010 191 001031 193 001105 195 001136 197 001206 201 001242 203 001246 205 001257 243 001260 256 001266 258 001276 260 001301 261 001303 263 001322 266 001331 269 001334 271 001337 272 001346 273 001415 276 001416 277 001421 279 001422 282 001423 283 001426 284 001431 287 001432 291 001437 293 001466 297 001500 301 001503 304 001511 306 001516 308 001527 311 001537 ----------------------------------------------------------- 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