COMPILATION LISTING OF SEGMENT signal_io_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 11/28/84 1135.3 mst Wed Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1984 * 4* * * 5* *********************************************************** */ 6 /* io module for admin commands that traps input */ 7 8 /* format: style2 */ 9 signal_io_: 10 procedure; 11 return; 12 13 14 /* Written 1984-10-12 BIM, from tty_ */ 15 16 /* Parameters */ 17 18 dcl arg_iocbp ptr; /* ptr to iocb (input) */ 19 dcl arg_buffer_ptr pointer; 20 dcl arg_buffer_length fixed bin (21); 21 dcl arg_n_read fixed bin (21); 22 dcl arg_pos_type fixed bin; 23 dcl arg_pos_amt fixed bin (35); 24 dcl arg_order_name char (*); 25 dcl arg_order_info_ptr pointer; 26 dcl arg_old_modes char (*); 27 dcl arg_new_modes char (*); 28 dcl arg_key char (256) varying; 29 30 dcl code fixed bin (35); /* Multics standard error code (output) */ 31 dcl com_err_switch bit (1); /* ON if should call com_err_ for errors (input) */ 32 dcl extend_bit bit (1); /* Obsolete open argument */ 33 dcl mode fixed bin; 34 dcl option_array (*) char (*) var; 35 36 /* Automatic */ 37 38 dcl actual_iocbp ptr; /* copy of iocb.actual_ioc_ptr */ 39 dcl device char (32); 40 dcl i fixed bin; 41 dcl iocbp ptr; /* copy of arg_iocb_ptr */ 42 dcl mask bit (36) aligned; /* ips mask */ 43 dcl system_free_area_ptr pointer; 44 45 /* builtins */ 46 47 dcl (addr, hbound, length, null, string) 48 builtin; 49 50 /* Internal Static */ 51 52 dcl ME char (32) int static options (constant) init ("signal_io_"); 53 /* used by com_err_ and setting attach descrip */ 54 55 /* Based */ 56 57 dcl system_free_area area based (system_free_area_ptr); 58 59 /* External Static */ 60 61 dcl ( 62 error_table_$action_not_performed, 63 error_table_$too_many_args, 64 error_table_$inconsistent, 65 error_table_$badopt, 66 error_table_$bad_mode, 67 error_table_$noarg, 68 error_table_$not_detached, 69 error_table_$wrong_no_of_args 70 ) fixed bin (35) ext; 71 72 dcl (any_other, cleanup) condition; 73 74 /* Procedures */ 75 76 dcl com_err_ entry options (variable); 77 dcl get_system_free_area_ entry () returns (pointer); 78 dcl hcs_$reset_ips_mask entry (bit (36) aligned, bit (36) aligned); 79 dcl hcs_$set_ips_mask entry (bit (36) aligned, bit (36) aligned); 80 declare signal_ entry () options (variable); 81 82 declare 1 sgii aligned like signal_io_info; 83 84 declare attach_data_ptr pointer; 85 declare 1 attach_data aligned based (attach_data_ptr), 86 2 attach_description char (200) varying, 87 2 open_description char (200) varying; 88 89 90 91 92 signal_io_attach: 93 entry (arg_iocbp, option_array, com_err_switch, code); 94 95 code = 0; 96 mask = ""b; 97 iocbp = arg_iocbp; 98 99 attach_data_ptr = null (); 100 on cleanup call clean_up_attach; 101 102 if hbound (option_array, 1) ^= 0 103 then call error (error_table_$noarg, "Usage: signal_io_"); 104 105 if iocbp -> iocb.attach_descrip_ptr ^= null () 106 then call error (error_table_$not_detached, ""); 107 108 system_free_area_ptr = get_system_free_area_ (); 109 allocate attach_data in (system_free_area); 110 111 attach_data.attach_description = "signal_io_"; 112 attach_data.open_description = ""; 113 114 on any_other call handler; /* should be on */ 115 116 call hcs_$set_ips_mask (""b, mask); 117 iocbp -> iocb.attach_descrip_ptr = addr (attach_data.attach_description); 118 iocbp -> iocb.attach_data_ptr = attach_data_ptr; 119 iocbp -> iocb.detach_iocb = signal_io_detach; 120 iocbp -> iocb.open = signal_io_open; 121 iocbp -> iocb.control = signal_io_control; 122 call iox_$propagate (iocbp); 123 revert any_other; 124 call hcs_$reset_ips_mask (mask, mask); 125 126 RETURN: 127 return; 128 129 130 /* Error calls com_err_ if the loud switch is set and goes to the attach return */ 131 132 error: 133 proc (err_code, message); 134 135 dcl err_code fixed bin (35); /* Multics standard error code */ 136 dcl message char (*); /* Additional error information */ 137 138 if com_err_switch 139 then call com_err_ (err_code, ME, "^a ^a", iocbp -> iocb.name, message); 140 code = err_code; 141 142 call clean_up_attach; 143 goto RETURN; 144 145 end error; 146 147 148 signal_io_detach: 149 entry (arg_iocbp, code); 150 151 call set_up; /* set no lock, but get actual_iocb_ptr */ 152 153 on any_other call handler; /* should be on */ 154 call hcs_$set_ips_mask (""b, mask); 155 actual_iocbp -> iocb.attach_descrip_ptr = null (); 156 actual_iocbp -> iocb.attach_data_ptr = null (); 157 actual_iocbp -> iocb.detach_iocb = iox_$err_not_attached; 158 actual_iocbp -> iocb.open = iox_$err_not_attached; 159 actual_iocbp -> iocb.control = iox_$err_not_attached; 160 call iox_$propagate (actual_iocbp); 161 call hcs_$reset_ips_mask (mask, mask); 162 revert any_other; /* avoid unneccessary fatal errors */ 163 free attach_data; 164 return; 165 166 /* This entry sets the open description and the legal operation entries in the iocb. The operations permitted: 167* 168* all the time: close, control, modes 169* input: get_chars, get_line, position 170* output: put_chars 171**/ 172 173 signal_io_open: 174 entry (arg_iocbp, mode, extend_bit, code); 175 176 call set_up; 177 178 attach_data.open_description = iox_modes (mode); 179 180 on any_other call handler; 181 call hcs_$set_ips_mask (""b, mask); 182 183 actual_iocbp -> iocb.open_descrip_ptr = addr (attach_data.open_description); 184 actual_iocbp -> iocb.detach_iocb = iox_$err_not_closed; 185 actual_iocbp -> iocb.open = iox_$err_not_closed; 186 actual_iocbp -> iocb.close = signal_io_close; 187 actual_iocbp -> iocb.modes = signal_io_modes; 188 189 if mode = Stream_input_output | mode = Stream_input | mode = Stream_output 190 then do; 191 192 if mode ^= Stream_output 193 then do; 194 actual_iocbp -> iocb.get_line = signal_io_get_line; 195 actual_iocbp -> iocb.get_chars = signal_io_get_chars; 196 actual_iocbp -> iocb.position = signal_io_position; 197 end; 198 199 if mode ^= Stream_input 200 then actual_iocbp -> iocb.put_chars = signal_io_put_chars; 201 end; 202 203 if mode = Sequential_input_output | mode = Sequential_input | mode = Sequential_output 204 then do; 205 206 if mode = Sequential_input | mode = Sequential_input_output | mode = Sequential_update 207 then do; 208 actual_iocbp -> iocb.read_record = signal_io_read_record; 209 actual_iocbp -> iocb.read_length = signal_io_read_length; 210 actual_iocbp -> iocb.position = signal_io_position; 211 end; 212 213 if mode = Sequential_output | mode = Sequential_input_output | mode = Sequential_update 214 then actual_iocbp -> iocb.write_record = signal_io_write_record; 215 if mode = Sequential_update 216 then do; 217 actual_iocbp -> iocb.rewrite_record = signal_io_rewrite_record; 218 actual_iocbp -> iocb.delete_record = signal_io_delete_record; 219 220 end; 221 222 end; 223 if mode = Keyed_sequential_input | mode = Keyed_sequential_output 224 then do; 225 226 actual_iocbp -> iocb.seek_key = signal_io_seek_key; 227 228 if mode = Keyed_sequential_input | mode = Keyed_sequential_update 229 then do; 230 actual_iocbp -> iocb.read_record = signal_io_read_record; 231 actual_iocbp -> iocb.read_length = signal_io_read_length; 232 actual_iocbp -> iocb.position = signal_io_position; 233 actual_iocbp -> iocb.read_key = signal_io_read_key; 234 end; 235 236 if mode = Keyed_sequential_output | mode = Keyed_sequential_update 237 then actual_iocbp -> iocb.write_record = signal_io_write_record; 238 if mode = Keyed_sequential_update 239 then do; 240 actual_iocbp -> iocb.rewrite_record = signal_io_rewrite_record; 241 actual_iocbp -> iocb.delete_record = signal_io_delete_record; 242 243 end; 244 end; 245 if mode = Direct_input | mode = Direct_output 246 then do; 247 actual_iocbp -> iocb.seek_key = signal_io_seek_key; 248 if mode = Direct_input | mode = Direct_update 249 then do; 250 actual_iocbp -> iocb.read_record = signal_io_read_record; 251 actual_iocbp -> iocb.read_length = signal_io_read_length; 252 end; 253 254 if mode = Direct_output | mode = Direct_update 255 then actual_iocbp -> iocb.write_record = signal_io_write_record; 256 if mode = Direct_update 257 then do; 258 actual_iocbp -> iocb.rewrite_record = signal_io_rewrite_record; 259 actual_iocbp -> iocb.delete_record = signal_io_delete_record; 260 261 end; 262 end; 263 call iox_$propagate (actual_iocbp); 264 call hcs_$reset_ips_mask (mask, mask); 265 revert any_other; 266 267 code = 0; 268 return; 269 270 /* This procedure closes the io switch and returns a zero code. 271**/ 272 273 signal_io_close: 274 entry (arg_iocbp, code); 275 276 call set_up; 277 278 279 on any_other call handler; /* should be on */ 280 call hcs_$set_ips_mask (""b, mask); 281 282 actual_iocbp -> iocb.open_descrip_ptr = null; 283 actual_iocbp -> iocb.detach_iocb = signal_io_detach; 284 actual_iocbp -> iocb.open = signal_io_open; 285 actual_iocbp -> iocb.modes = iox_$err_not_open; 286 287 call iox_$propagate (actual_iocbp); 288 289 call hcs_$reset_ips_mask (mask, mask); 290 return; 291 292 293 signal_io_get_chars: 294 entry (arg_iocbp, arg_buffer_ptr, arg_buffer_length, arg_n_read, code); 295 call set_up_io (SGI_OP_GET_CHARS); 296 sgii.data_ptr = arg_buffer_ptr; 297 sgii.data_length = arg_buffer_length; 298 call signal (); 299 arg_n_read = sgii.returned_data_length; 300 code = sgii.returned_error_code; 301 return; 302 303 signal_io_get_line: 304 entry (arg_iocbp, arg_buffer_ptr, arg_buffer_length, arg_n_read, code); 305 call set_up_io (SGI_OP_GET_LINE); 306 sgii.data_ptr = arg_buffer_ptr; 307 sgii.data_length = arg_buffer_length; 308 call signal (); 309 arg_n_read = sgii.returned_data_length; 310 code = sgii.returned_error_code; 311 return; 312 313 signal_io_put_chars: 314 entry (arg_iocbp, arg_buffer_ptr, arg_buffer_length, code); 315 call set_up_io (SGI_OP_PUT_CHARS); 316 sgii.data_ptr = arg_buffer_ptr; 317 sgii.data_length = arg_buffer_length; 318 call signal (); 319 code = sgii.returned_error_code; 320 return; 321 322 signal_io_modes: 323 entry (arg_iocbp, arg_new_modes, arg_old_modes, code); 324 call set_up_io (SGI_OP_MODES); 325 sgii.new_modes.pointer = addr (arg_new_modes); 326 sgii.new_modes.length = length (arg_new_modes); 327 sgii.old_modes.pointer = addr (arg_old_modes); 328 sgii.old_modes.length = length (arg_old_modes); 329 call signal (); 330 code = sgii.returned_error_code; 331 return; 332 333 signal_io_position: 334 entry (arg_iocbp, arg_pos_type, arg_pos_amt, code); 335 call set_up_io (SGI_OP_POSITION); 336 sgii.position_type = arg_pos_type; 337 sgii.position_amount = arg_pos_amt; 338 call signal (); 339 code = sgii.returned_error_code; 340 return; 341 342 signal_io_control: 343 entry (arg_iocbp, arg_order_name, arg_order_info_ptr, code); 344 call set_up_io (SGI_OP_CONTROL); 345 sgii.control_order_info_ptr = arg_order_info_ptr; 346 sgii.data_ptr = addr (arg_order_name); 347 sgii.data_length = length (arg_order_name); 348 call signal (); 349 code = sgii.returned_error_code; 350 return; 351 352 signal_io_write_record: 353 entry (arg_iocbp, arg_buffer_ptr, arg_buffer_length, code); 354 call set_up_io (SGI_OP_WRITE_RECORD); 355 sgii.data_ptr = arg_buffer_ptr; 356 sgii.data_length = arg_buffer_length; 357 call signal (); 358 code = sgii.returned_error_code; 359 return; 360 361 signal_io_read_record: 362 entry (arg_iocbp, arg_buffer_ptr, arg_buffer_length, arg_n_read, code); 363 call set_up_io (SGI_OP_READ_RECORD); 364 sgii.data_ptr = arg_buffer_ptr; 365 sgii.data_length = arg_buffer_length; 366 call signal (); 367 arg_n_read = sgii.returned_data_length; 368 code = sgii.returned_error_code; 369 return; 370 371 signal_io_rewrite_record: 372 entry (arg_iocbp, arg_buffer_ptr, arg_buffer_length, code); 373 call set_up_io (SGI_OP_REWRITE_RECORD); 374 sgii.data_ptr = arg_buffer_ptr; 375 sgii.data_length = arg_buffer_length; 376 call signal (); 377 code = sgii.returned_error_code; 378 return; 379 380 signal_io_delete_record: 381 entry (arg_iocbp, code); 382 call set_up_io (SGI_OP_DELETE_RECORD); 383 call signal (); 384 code = sgii.returned_error_code; 385 return; 386 387 signal_io_seek_key: 388 entry (arg_iocbp, arg_key, arg_n_read, code); 389 call set_up_io (SGI_OP_SEEK_KEY); 390 sgii.key = arg_key; 391 call signal (); 392 arg_n_read = sgii.returned_data_length; 393 code = sgii.returned_error_code; 394 return; 395 396 signal_io_read_key: 397 entry (arg_iocbp, arg_key, arg_n_read, code); 398 call set_up_io (SGI_OP_READ_KEY); 399 call signal (); 400 arg_key = sgii.key; 401 arg_n_read = sgii.returned_data_length; 402 code = sgii.returned_error_code; 403 return; 404 405 signal_io_read_length: 406 entry (arg_iocbp, arg_n_read, code); 407 call set_up_io (SGI_OP_READ_LENGTH); 408 call signal (); 409 arg_n_read = sgii.returned_data_length; 410 code = sgii.returned_error_code; 411 return; 412 413 414 set_up_io: 415 procedure (op); 416 417 declare op char (32); 418 419 sgii.version = 0; 420 sgii.header.length = currentsize (sgii); 421 sgii.action_flags = "0"b; /* can restart */ 422 sgii.info_string = op; /* we could do better */ 423 sgii.status_code = 0; 424 sgii.operation = op; 425 sgii.iocb_ptr = arg_iocbp; /* in the case of syn_, give the original */ 426 sgii.iocb_name = arg_iocbp -> iocb.name; /* since the handler can always fetch iocb.actual */ 427 sgii.control_order_info_ptr, sgii.data_ptr = null (); 428 sgii.data_length, sgii.returned_data_length = 0; 429 sgii.returned_error_code = error_table_$action_not_performed; 430 sgii.old_modes.pointer, sgii.new_modes.pointer = null (); 431 sgii.old_modes.length, sgii.new_modes.length = 0; 432 sgii.key = ""; 433 return; 434 end set_up_io; 435 436 signal: 437 procedure; 438 439 call signal_ ("signal_io_", null (), addr (sgii)); 440 return; 441 end signal; 442 443 /* Internal procedure to handle faults while IPS interrupts are masked. For a fault while masked, the process 444* is terminated (with the reason "unable to do critical I/O") because the I/O control blocks are in an 445* inconsistent state. 446**/ 447 terminate_the_process: 448 entry (code); 449 call terminate_this_process (code); 450 451 handler: 452 procedure options (non_quick); /* visible in ifd */ 453 454 dcl error_table_$unable_to_do_io 455 fixed (35) ext; 456 if mask ^= ""b 457 then call terminate_this_process (error_table_$unable_to_do_io); 458 end handler; 459 460 461 terminate_this_process: 462 procedure (cd); 463 464 dcl cd fixed bin (35); 465 dcl terminate_process_ ext entry (char (*), ptr); 466 dcl 1 ti aligned automatic, 467 2 version fixed, 468 2 code fixed (35); 469 470 471 ti.version = 0; 472 ti.code = cd; 473 call terminate_process_ ("fatal_error", addr (ti)); 474 475 end terminate_this_process; 476 477 set_up: 478 procedure; 479 480 code = 0; 481 mask = ""b; 482 actual_iocbp = arg_iocbp -> iocb.actual_iocb_ptr; 483 attach_data_ptr = actual_iocbp -> iocb.attach_data_ptr; 484 return; 485 486 end set_up; 487 488 clean_up_attach: 489 procedure; 490 491 if attach_data_ptr = null () 492 then return; 493 free attach_data; 494 end clean_up_attach; 495 1 1 /* --------------- BEGIN include file iox_dcls.incl.pl1 --------------- */ 1 2 1 3 /* Written 05/04/78 by C. D. Tavares */ 1 4 /* Fixed declaration of iox_$find_iocb_n 05/07/80 by R. Holmstedt */ 1 5 /* Modified 5/83 by S. Krupp to add declarations for: iox_$open_file, 1 6* iox_$close_file, iox_$detach and iox_$attach_loud entries. */ 1 7 1 8 dcl iox_$attach_name entry (char (*), pointer, char (*), pointer, fixed bin (35)), 1 9 iox_$attach_ptr entry (pointer, char (*), pointer, fixed bin (35)), 1 10 iox_$close entry (pointer, fixed bin (35)), 1 11 iox_$control entry (pointer, char (*), pointer, fixed bin (35)), 1 12 iox_$delete_record entry (pointer, fixed bin (35)), 1 13 iox_$destroy_iocb entry (pointer, fixed bin (35)), 1 14 iox_$detach_iocb entry (pointer, fixed bin (35)), 1 15 iox_$err_not_attached entry options (variable), 1 16 iox_$err_not_closed entry options (variable), 1 17 iox_$err_no_operation entry options (variable), 1 18 iox_$err_not_open entry options (variable), 1 19 iox_$find_iocb entry (char (*), pointer, fixed bin (35)), 1 20 iox_$find_iocb_n entry (fixed bin, ptr, fixed bin(35)), 1 21 iox_$get_chars entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 22 iox_$get_line entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 23 iox_$look_iocb entry (char (*), pointer, fixed bin (35)), 1 24 iox_$modes entry (pointer, char (*), char (*), fixed bin (35)), 1 25 iox_$move_attach entry (pointer, pointer, fixed bin (35)), 1 26 iox_$open entry (pointer, fixed bin, bit (1) aligned, fixed bin (35)), 1 27 iox_$position entry (pointer, fixed bin, fixed bin (21), fixed bin (35)), 1 28 iox_$propagate entry (pointer), 1 29 iox_$put_chars entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 30 iox_$read_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 1 31 iox_$read_length entry (pointer, fixed bin (21), fixed bin (35)), 1 32 iox_$read_record entry (pointer, pointer, fixed bin (21), fixed bin (21), fixed bin (35)), 1 33 iox_$rewrite_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 34 iox_$seek_key entry (pointer, char (256) varying, fixed bin (21), fixed bin (35)), 1 35 iox_$write_record entry (pointer, pointer, fixed bin (21), fixed bin (35)), 1 36 iox_$open_file entry(ptr, fixed bin, char(*), bit(1) aligned, fixed bin(35)), 1 37 iox_$close_file entry(ptr, char(*), fixed bin(35)), 1 38 iox_$detach entry(ptr, char(*), fixed bin(35)), 1 39 iox_$attach_loud entry(ptr, char(*), ptr, fixed bin(35)); 1 40 1 41 dcl (iox_$user_output, 1 42 iox_$user_input, 1 43 iox_$user_io, 1 44 iox_$error_output) external static pointer; 1 45 1 46 /* ---------------- END include file iox_dcls.incl.pl1 ---------------- */ 496 2 1 /* Begin include file ..... iox_modes.incl.pl1 */ 2 2 2 3 /* Written by C. D. Tavares, 03/17/75 */ 2 4 /* Updated 10/31/77 by CDT to include short iox mode strings */ 2 5 2 6 dcl iox_modes (13) char (24) int static options (constant) aligned initial 2 7 ("stream_input", "stream_output", "stream_input_output", 2 8 "sequential_input", "sequential_output", "sequential_input_output", "sequential_update", 2 9 "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update", 2 10 "direct_input", "direct_output", "direct_update"); 2 11 2 12 dcl short_iox_modes (13) char (4) int static options (constant) aligned initial 2 13 ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du"); 2 14 2 15 dcl (Stream_input initial (1), 2 16 Stream_output initial (2), 2 17 Stream_input_output initial (3), 2 18 Sequential_input initial (4), 2 19 Sequential_output initial (5), 2 20 Sequential_input_output initial (6), 2 21 Sequential_update initial (7), 2 22 Keyed_sequential_input initial (8), 2 23 Keyed_sequential_output initial (9), 2 24 Keyed_sequential_update initial (10), 2 25 Direct_input initial (11), 2 26 Direct_output initial (12), 2 27 Direct_update initial (13)) fixed bin int static options (constant); 2 28 2 29 /* End include file ..... iox_modes.incl.pl1 */ 497 3 1 /* BEGIN INCLUDE FILE ..... iocb.incl.pl1 ..... 13 Feb 1975, M. Asherman */ 3 2 /* Modified 11/29/82 by S. Krupp to add new entries and to change 3 3* version number to IOX2. */ 3 4 /* format: style2 */ 3 5 3 6 dcl 1 iocb aligned based, /* I/O control block. */ 3 7 2 version character (4) aligned, /* IOX2 */ 3 8 2 name char (32), /* I/O name of this block. */ 3 9 2 actual_iocb_ptr ptr, /* IOCB ultimately SYNed to. */ 3 10 2 attach_descrip_ptr ptr, /* Ptr to printable attach description. */ 3 11 2 attach_data_ptr ptr, /* Ptr to attach data structure. */ 3 12 2 open_descrip_ptr ptr, /* Ptr to printable open description. */ 3 13 2 open_data_ptr ptr, /* Ptr to open data structure (old SDB). */ 3 14 2 reserved bit (72), /* Reserved for future use. */ 3 15 2 detach_iocb entry (ptr, fixed (35)),/* detach_iocb(p,s) */ 3 16 2 open entry (ptr, fixed, bit (1) aligned, fixed (35)), 3 17 /* open(p,mode,not_used,s) */ 3 18 2 close entry (ptr, fixed (35)),/* close(p,s) */ 3 19 2 get_line entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 20 /* get_line(p,bufptr,buflen,actlen,s) */ 3 21 2 get_chars entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 22 /* get_chars(p,bufptr,buflen,actlen,s) */ 3 23 2 put_chars entry (ptr, ptr, fixed (21), fixed (35)), 3 24 /* put_chars(p,bufptr,buflen,s) */ 3 25 2 modes entry (ptr, char (*), char (*), fixed (35)), 3 26 /* modes(p,newmode,oldmode,s) */ 3 27 2 position entry (ptr, fixed, fixed (21), fixed (35)), 3 28 /* position(p,u1,u2,s) */ 3 29 2 control entry (ptr, char (*), ptr, fixed (35)), 3 30 /* control(p,order,infptr,s) */ 3 31 2 read_record entry (ptr, ptr, fixed (21), fixed (21), fixed (35)), 3 32 /* read_record(p,bufptr,buflen,actlen,s) */ 3 33 2 write_record entry (ptr, ptr, fixed (21), fixed (35)), 3 34 /* write_record(p,bufptr,buflen,s) */ 3 35 2 rewrite_record entry (ptr, ptr, fixed (21), fixed (35)), 3 36 /* rewrite_record(p,bufptr,buflen,s) */ 3 37 2 delete_record entry (ptr, fixed (35)),/* delete_record(p,s) */ 3 38 2 seek_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 39 /* seek_key(p,key,len,s) */ 3 40 2 read_key entry (ptr, char (256) varying, fixed (21), fixed (35)), 3 41 /* read_key(p,key,len,s) */ 3 42 2 read_length entry (ptr, fixed (21), fixed (35)), 3 43 /* read_length(p,len,s) */ 3 44 2 open_file entry (ptr, fixed bin, char (*), bit (1) aligned, fixed bin (35)), 3 45 /* open_file(p,mode,desc,not_used,s) */ 3 46 2 close_file entry (ptr, char (*), fixed bin (35)), 3 47 /* close_file(p,desc,s) */ 3 48 2 detach entry (ptr, char (*), fixed bin (35)); 3 49 /* detach(p,desc,s) */ 3 50 3 51 declare iox_$iocb_version_sentinel 3 52 character (4) aligned external static; 3 53 3 54 /* END INCLUDE FILE ..... iocb.incl.pl1 ..... */ 498 4 1 /* BEGIN INCLUDE FILE condition_info_header.incl.pl1 BIM 1981 */ 4 2 /* format: style2 */ 4 3 4 4 declare condition_info_header_ptr 4 5 pointer; 4 6 declare 1 condition_info_header 4 7 aligned based (condition_info_header_ptr), 4 8 2 length fixed bin, /* length in words of this structure */ 4 9 2 version fixed bin, /* version number of this structure */ 4 10 2 action_flags aligned, /* tell handler how to proceed */ 4 11 3 cant_restart bit (1) unaligned, /* caller doesn't ever want to be returned to */ 4 12 3 default_restart bit (1) unaligned, /* caller can be returned to with no further action */ 4 13 3 quiet_restart bit (1) unaligned, /* return, and print no message */ 4 14 3 support_signal bit (1) unaligned, /* treat this signal as if the signalling procedure had the support bit set */ 4 15 /* if the signalling procedure had the support bit set, do the same for its caller */ 4 16 3 pad bit (32) unaligned, 4 17 2 info_string char (256) varying, /* may contain printable message */ 4 18 2 status_code fixed bin (35); /* if^=0, code interpretable by com_err_ */ 4 19 4 20 /* END INCLUDE FILE condition_info_header.incl.pl1 */ 499 5 1 /* Begin include file signal_io_info.incl.pl1 */ 5 2 /* format: style3,idind30 */ 5 3 5 4 /* This include file requires condition_info_header */ 5 5 5 6 declare signal_io_info_ptr pointer; 5 7 declare 1 signal_io_info aligned based (signal_io_info_ptr), 5 8 2 header aligned like condition_info_header, 5 9 2 iocb_ptr pointer, 5 10 2 iocb_name char (32) unaligned, 5 11 2 operation char (32), 5 12 2 control_order_info_ptr pointer, 5 13 2 position_type fixed bin, 5 14 2 position_amount fixed bin (35), 5 15 2 data_ptr pointer, /* points to control_order name on control */ 5 16 2 data_length fixed bin (21), 5 17 2 returned_data_length fixed bin (21), 5 18 2 returned_error_code fixed bin (35), 5 19 2 old_modes aligned, 5 20 3 pointer pointer, 5 21 3 length fixed bin (21), 5 22 2 new_modes aligned, 5 23 3 pointer pointer, 5 24 3 length fixed bin (21), 5 25 2 key char (256) varying; 5 26 5 27 declare ( 5 28 SGI_OP_GET_LINE init ("get_line"), 5 29 SGI_OP_GET_CHARS init ("get_chars"), 5 30 SGI_OP_PUT_CHARS init ("put_chars"), 5 31 SGI_OP_MODES init ("modes"), 5 32 SGI_OP_POSITION init ("position"), 5 33 SGI_OP_CONTROL init ("control"), 5 34 SGI_OP_READ_RECORD init ("read_record"), 5 35 SGI_OP_WRITE_RECORD init ("write_record"), 5 36 SGI_OP_REWRITE_RECORD init ("rewrite_record"), 5 37 SGI_OP_DELETE_RECORD init ("delete_record"), 5 38 SGI_OP_SEEK_KEY init ("seek_key"), 5 39 SGI_OP_READ_KEY init ("read_key"), 5 40 SGI_OP_READ_LENGTH init ("read_length") 5 41 ) char (32) int static options (constant); 5 42 5 43 declare signal_io_io_buffer char (signal_io_info.data_length) based (signal_io_info.data_ptr); 5 44 declare signal_io_order_name char (signal_io_info.data_length) based (signal_io_info.data_ptr); 5 45 declare signal_io_old_modes char (signal_io_info.old_modes.length) based (signal_io_info.old_modes.pointer); 5 46 declare signal_io_new_modes char (signal_io_info.new_modes.length) based (signal_io_info.new_modes.pointer); 5 47 5 48 /* End include file signal_io_info.incl.pl1 */ 500 501 502 end signal_io_; 503 SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/28/84 1034.0 signal_io_.pl1 >special_ldd>online>41-0>signal_io_.pl1 496 1 05/23/83 0916.6 iox_entries.incl.pl1 >ldd>include>iox_dcls.incl.pl1 497 2 02/02/78 1229.7 iox_modes.incl.pl1 >ldd>include>iox_modes.incl.pl1 498 3 05/20/83 1846.4 iocb.incl.pl1 >ldd>include>iocb.incl.pl1 499 4 03/24/82 1347.2 condition_info_header.incl.pl1 >ldd>include>condition_info_header.incl.pl1 500 5 11/28/84 1016.3 signal_io_info.incl.pl1 >ldd>include>signal_io_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. Direct_input constant fixed bin(17,0) initial dcl 2-15 ref 245 248 Direct_output constant fixed bin(17,0) initial dcl 2-15 ref 245 254 Direct_update constant fixed bin(17,0) initial dcl 2-15 ref 248 254 256 Keyed_sequential_input constant fixed bin(17,0) initial dcl 2-15 ref 223 228 Keyed_sequential_output constant fixed bin(17,0) initial dcl 2-15 ref 223 236 Keyed_sequential_update constant fixed bin(17,0) initial dcl 2-15 ref 228 236 238 ME 000266 constant char(32) initial unaligned dcl 52 set ref 138* SGI_OP_CONTROL 000070 constant char(32) initial unaligned dcl 5-27 set ref 344* SGI_OP_DELETE_RECORD 000030 constant char(32) initial unaligned dcl 5-27 set ref 382* SGI_OP_GET_CHARS 000130 constant char(32) initial unaligned dcl 5-27 set ref 295* SGI_OP_GET_LINE 000140 constant char(32) initial unaligned dcl 5-27 set ref 305* SGI_OP_MODES 000110 constant char(32) initial unaligned dcl 5-27 set ref 324* SGI_OP_POSITION 000100 constant char(32) initial unaligned dcl 5-27 set ref 335* SGI_OP_PUT_CHARS 000120 constant char(32) initial unaligned dcl 5-27 set ref 315* SGI_OP_READ_KEY 000010 constant char(32) initial unaligned dcl 5-27 set ref 398* SGI_OP_READ_LENGTH 000000 constant char(32) initial unaligned dcl 5-27 set ref 407* SGI_OP_READ_RECORD 000060 constant char(32) initial unaligned dcl 5-27 set ref 363* SGI_OP_REWRITE_RECORD 000040 constant char(32) initial unaligned dcl 5-27 set ref 373* SGI_OP_SEEK_KEY 000020 constant char(32) initial unaligned dcl 5-27 set ref 389* SGI_OP_WRITE_RECORD 000050 constant char(32) initial unaligned dcl 5-27 set ref 354* Sequential_input constant fixed bin(17,0) initial dcl 2-15 ref 203 206 Sequential_input_output constant fixed bin(17,0) initial dcl 2-15 ref 203 206 213 Sequential_output constant fixed bin(17,0) initial dcl 2-15 ref 203 213 Sequential_update constant fixed bin(17,0) initial dcl 2-15 ref 206 213 215 Stream_input constant fixed bin(17,0) initial dcl 2-15 ref 189 199 Stream_input_output constant fixed bin(17,0) initial dcl 2-15 ref 189 Stream_output constant fixed bin(17,0) initial dcl 2-15 ref 189 192 action_flags 2 000124 automatic structure level 3 dcl 82 set ref 421* actual_iocb_ptr 12 based pointer level 2 dcl 3-6 ref 482 actual_iocbp 000100 automatic pointer dcl 38 set ref 155 156 157 158 159 160* 183 184 185 186 187 194 195 196 199 208 209 210 213 217 218 226 230 231 232 233 236 240 241 247 250 251 254 258 259 263* 282 283 284 285 287* 482* 483 addr builtin function dcl 47 ref 117 183 325 327 346 439 439 473 473 any_other 000110 stack reference condition dcl 72 ref 114 123 153 162 180 265 279 arg_buffer_length parameter fixed bin(21,0) dcl 20 ref 293 297 303 307 313 317 352 356 361 365 371 375 arg_buffer_ptr parameter pointer dcl 19 ref 293 296 303 306 313 316 352 355 361 364 371 374 arg_iocbp parameter pointer dcl 18 ref 92 97 148 173 273 293 303 313 322 333 342 352 361 371 380 387 396 405 425 426 482 arg_key parameter varying char(256) dcl 28 set ref 387 390 396 400* arg_n_read parameter fixed bin(21,0) dcl 21 set ref 293 299* 303 309* 361 367* 387 392* 396 401* 405 409* arg_new_modes parameter char unaligned dcl 27 set ref 322 325 326 arg_old_modes parameter char unaligned dcl 26 set ref 322 327 328 arg_order_info_ptr parameter pointer dcl 25 ref 342 345 arg_order_name parameter char unaligned dcl 24 set ref 342 346 347 arg_pos_amt parameter fixed bin(35,0) dcl 23 ref 333 337 arg_pos_type parameter fixed bin(17,0) dcl 22 ref 333 336 attach_data based structure level 1 dcl 85 set ref 109 163 493 attach_data_ptr 16 based pointer level 2 in structure "iocb" dcl 3-6 in procedure "signal_io_" set ref 118* 156* 483 attach_data_ptr 000376 automatic pointer dcl 84 in procedure "signal_io_" set ref 99* 109* 111 112 117 118 163 178 183 483* 491 493 attach_descrip_ptr 14 based pointer level 2 dcl 3-6 set ref 105 117* 155* attach_description based varying char(200) level 2 dcl 85 set ref 111* 117 cd parameter fixed bin(35,0) dcl 464 ref 461 472 cleanup 000116 stack reference condition dcl 72 ref 100 close 36 based entry variable level 2 dcl 3-6 set ref 186* code 1 000100 automatic fixed bin(35,0) level 2 in structure "ti" dcl 466 in procedure "terminate_this_process" set ref 472* code parameter fixed bin(35,0) dcl 30 in procedure "signal_io_" set ref 92 95* 140* 148 173 267* 273 293 300* 303 310* 313 319* 322 330* 333 339* 342 349* 352 358* 361 368* 371 377* 380 384* 387 393* 396 402* 405 410* 447 449* 480* com_err_ 000016 constant entry external dcl 76 ref 138 com_err_switch parameter bit(1) unaligned dcl 31 ref 92 138 condition_info_header based structure level 1 dcl 4-6 control 66 based entry variable level 2 dcl 3-6 set ref 121* 159* control_order_info_ptr 130 000124 automatic pointer level 2 dcl 82 set ref 345* 427* data_length 136 000124 automatic fixed bin(21,0) level 2 dcl 82 set ref 297* 307* 317* 347* 356* 365* 375* 428* data_ptr 134 000124 automatic pointer level 2 dcl 82 set ref 296* 306* 316* 346* 355* 364* 374* 427* delete_record 106 based entry variable level 2 dcl 3-6 set ref 218* 241* 259* detach_iocb 26 based entry variable level 2 dcl 3-6 set ref 119* 157* 184* 283* err_code parameter fixed bin(35,0) dcl 135 set ref 132 138* 140 error_table_$action_not_performed 000010 external static fixed bin(35,0) dcl 61 ref 429 error_table_$noarg 000012 external static fixed bin(35,0) dcl 61 set ref 102* error_table_$not_detached 000014 external static fixed bin(35,0) dcl 61 set ref 105* error_table_$unable_to_do_io 000040 external static fixed bin(35,0) dcl 454 set ref 456* extend_bit parameter bit(1) unaligned dcl 32 ref 173 get_chars 46 based entry variable level 2 dcl 3-6 set ref 195* get_line 42 based entry variable level 2 dcl 3-6 set ref 194* get_system_free_area_ 000020 constant entry external dcl 77 ref 108 hbound builtin function dcl 47 ref 102 hcs_$reset_ips_mask 000022 constant entry external dcl 78 ref 124 161 264 289 hcs_$set_ips_mask 000024 constant entry external dcl 79 ref 116 154 181 280 header 000124 automatic structure level 2 dcl 82 info_string 3 000124 automatic varying char(256) level 3 dcl 82 set ref 422* iocb based structure level 1 dcl 3-6 iocb_name 110 000124 automatic char(32) level 2 packed unaligned dcl 82 set ref 426* iocb_ptr 106 000124 automatic pointer level 2 dcl 82 set ref 425* iocbp 000102 automatic pointer dcl 41 set ref 97* 105 117 118 119 120 121 122* 138 iox_$err_not_attached 000030 constant entry external dcl 1-8 ref 157 158 159 iox_$err_not_closed 000032 constant entry external dcl 1-8 ref 184 185 iox_$err_not_open 000034 constant entry external dcl 1-8 ref 285 iox_$propagate 000036 constant entry external dcl 1-8 ref 122 160 263 287 iox_modes 000150 constant char(24) initial array dcl 2-6 ref 178 key 151 000124 automatic varying char(256) level 2 dcl 82 set ref 390* 400 432* length builtin function dcl 47 in procedure "signal_io_" ref 326 328 347 length 000124 automatic fixed bin(17,0) level 3 in structure "sgii" dcl 82 in procedure "signal_io_" set ref 420* length 150 000124 automatic fixed bin(21,0) level 3 in structure "sgii" dcl 82 in procedure "signal_io_" set ref 326* 431* length 144 000124 automatic fixed bin(21,0) level 3 in structure "sgii" dcl 82 in procedure "signal_io_" set ref 328* 431* mask 000104 automatic bit(36) dcl 42 set ref 96* 116* 124* 124* 154* 161* 161* 181* 264* 264* 280* 289* 289* 456 481* message parameter char unaligned dcl 136 set ref 132 138* mode parameter fixed bin(17,0) dcl 33 ref 173 178 189 189 189 192 199 203 203 203 206 206 206 213 213 213 215 223 223 228 228 236 236 238 245 245 248 248 254 254 256 modes 56 based entry variable level 2 dcl 3-6 set ref 187* 285* name 1 based char(32) level 2 dcl 3-6 set ref 138* 426 new_modes 146 000124 automatic structure level 2 dcl 82 null builtin function dcl 47 ref 99 105 155 156 282 427 430 439 439 491 old_modes 142 000124 automatic structure level 2 dcl 82 op parameter char(32) unaligned dcl 417 ref 414 422 424 open 32 based entry variable level 2 dcl 3-6 set ref 120* 158* 185* 284* open_descrip_ptr 20 based pointer level 2 dcl 3-6 set ref 183* 282* open_description 63 based varying char(200) level 2 dcl 85 set ref 112* 178* 183 operation 120 000124 automatic char(32) level 2 dcl 82 set ref 424* option_array parameter varying char array dcl 34 ref 92 102 pointer 142 000124 automatic pointer level 3 in structure "sgii" dcl 82 in procedure "signal_io_" set ref 327* 430* pointer 146 000124 automatic pointer level 3 in structure "sgii" dcl 82 in procedure "signal_io_" set ref 325* 430* position 62 based entry variable level 2 dcl 3-6 set ref 196* 210* 232* position_amount 133 000124 automatic fixed bin(35,0) level 2 dcl 82 set ref 337* position_type 132 000124 automatic fixed bin(17,0) level 2 dcl 82 set ref 336* put_chars 52 based entry variable level 2 dcl 3-6 set ref 199* read_key 116 based entry variable level 2 dcl 3-6 set ref 233* read_length 122 based entry variable level 2 dcl 3-6 set ref 209* 231* 251* read_record 72 based entry variable level 2 dcl 3-6 set ref 208* 230* 250* returned_data_length 137 000124 automatic fixed bin(21,0) level 2 dcl 82 set ref 299 309 367 392 401 409 428* returned_error_code 140 000124 automatic fixed bin(35,0) level 2 dcl 82 set ref 300 310 319 330 339 349 358 368 377 384 393 402 410 429* rewrite_record 102 based entry variable level 2 dcl 3-6 set ref 217* 240* 258* seek_key 112 based entry variable level 2 dcl 3-6 set ref 226* 247* sgii 000124 automatic structure level 1 dcl 82 set ref 420 439 439 signal_ 000026 constant entry external dcl 80 ref 439 signal_io_info based structure level 1 dcl 5-7 status_code 104 000124 automatic fixed bin(35,0) level 3 dcl 82 set ref 423* system_free_area based area(1024) dcl 57 ref 109 system_free_area_ptr 000106 automatic pointer dcl 43 set ref 108* 109 terminate_process_ 000042 constant entry external dcl 465 ref 473 ti 000100 automatic structure level 1 dcl 466 set ref 473 473 version 1 000124 automatic fixed bin(17,0) level 3 in structure "sgii" dcl 82 in procedure "signal_io_" set ref 419* version 000100 automatic fixed bin(17,0) level 2 in structure "ti" dcl 466 in procedure "terminate_this_process" set ref 471* write_record 76 based entry variable level 2 dcl 3-6 set ref 213* 236* 254* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. condition_info_header_ptr automatic pointer dcl 4-4 device automatic char(32) unaligned dcl 39 error_table_$bad_mode external static fixed bin(35,0) dcl 61 error_table_$badopt external static fixed bin(35,0) dcl 61 error_table_$inconsistent external static fixed bin(35,0) dcl 61 error_table_$too_many_args external static fixed bin(35,0) dcl 61 error_table_$wrong_no_of_args external static fixed bin(35,0) dcl 61 i automatic fixed bin(17,0) dcl 40 iox_$attach_loud 000000 constant entry external dcl 1-8 iox_$attach_name 000000 constant entry external dcl 1-8 iox_$attach_ptr 000000 constant entry external dcl 1-8 iox_$close 000000 constant entry external dcl 1-8 iox_$close_file 000000 constant entry external dcl 1-8 iox_$control 000000 constant entry external dcl 1-8 iox_$delete_record 000000 constant entry external dcl 1-8 iox_$destroy_iocb 000000 constant entry external dcl 1-8 iox_$detach 000000 constant entry external dcl 1-8 iox_$detach_iocb 000000 constant entry external dcl 1-8 iox_$err_no_operation 000000 constant entry external dcl 1-8 iox_$error_output external static pointer dcl 1-41 iox_$find_iocb 000000 constant entry external dcl 1-8 iox_$find_iocb_n 000000 constant entry external dcl 1-8 iox_$get_chars 000000 constant entry external dcl 1-8 iox_$get_line 000000 constant entry external dcl 1-8 iox_$iocb_version_sentinel external static char(4) dcl 3-51 iox_$look_iocb 000000 constant entry external dcl 1-8 iox_$modes 000000 constant entry external dcl 1-8 iox_$move_attach 000000 constant entry external dcl 1-8 iox_$open 000000 constant entry external dcl 1-8 iox_$open_file 000000 constant entry external dcl 1-8 iox_$position 000000 constant entry external dcl 1-8 iox_$put_chars 000000 constant entry external dcl 1-8 iox_$read_key 000000 constant entry external dcl 1-8 iox_$read_length 000000 constant entry external dcl 1-8 iox_$read_record 000000 constant entry external dcl 1-8 iox_$rewrite_record 000000 constant entry external dcl 1-8 iox_$seek_key 000000 constant entry external dcl 1-8 iox_$user_input external static pointer dcl 1-41 iox_$user_io external static pointer dcl 1-41 iox_$user_output external static pointer dcl 1-41 iox_$write_record 000000 constant entry external dcl 1-8 short_iox_modes internal static char(4) initial array dcl 2-12 signal_io_info_ptr automatic pointer dcl 5-6 signal_io_io_buffer based char unaligned dcl 5-43 signal_io_new_modes based char unaligned dcl 5-46 signal_io_old_modes based char unaligned dcl 5-45 signal_io_order_name based char unaligned dcl 5-44 string builtin function dcl 47 NAMES DECLARED BY EXPLICIT CONTEXT. RETURN 000614 constant label dcl 126 set ref 143 clean_up_attach 002507 constant entry internal dcl 488 ref 100 142 error 002214 constant entry internal dcl 132 ref 102 105 handler 002416 constant entry internal dcl 451 ref 114 153 180 279 set_up 002473 constant entry internal dcl 477 ref 151 176 276 set_up_io 002301 constant entry internal dcl 414 ref 295 305 315 324 335 344 354 363 373 382 389 398 407 signal 002362 constant entry internal dcl 436 ref 298 308 318 329 338 348 357 366 376 383 391 399 408 signal_io_ 000345 constant entry external dcl 9 signal_io_attach 000360 constant entry external dcl 92 signal_io_close 001342 constant entry external dcl 273 ref 186 signal_io_control 001671 constant entry external dcl 342 ref 121 signal_io_delete_record 002035 constant entry external dcl 380 ref 218 241 259 signal_io_detach 000621 constant entry external dcl 148 ref 119 283 signal_io_get_chars 001452 constant entry external dcl 293 ref 195 signal_io_get_line 001504 constant entry external dcl 303 ref 194 signal_io_modes 001572 constant entry external dcl 322 ref 187 signal_io_open 000733 constant entry external dcl 173 ref 120 284 signal_io_position 001641 constant entry external dcl 333 ref 196 210 232 signal_io_put_chars 001541 constant entry external dcl 313 ref 199 signal_io_read_key 002113 constant entry external dcl 396 ref 233 signal_io_read_length 002150 constant entry external dcl 405 ref 209 231 251 signal_io_read_record 001755 constant entry external dcl 361 ref 208 230 250 signal_io_rewrite_record 002007 constant entry external dcl 371 ref 217 240 258 signal_io_seek_key 002060 constant entry external dcl 387 ref 226 247 signal_io_write_record 001727 constant entry external dcl 352 ref 213 236 254 terminate_the_process 002175 constant entry external dcl 447 terminate_this_process 002437 constant entry internal dcl 461 ref 449 456 NAME DECLARED BY CONTEXT OR IMPLICATION. currentsize builtin function ref 420 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 3324 3370 2616 3334 Length 3750 2616 44 343 505 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME signal_io_ 356 external procedure is an external procedure. on unit on line 100 64 on unit on unit on line 114 64 on unit error internal procedure shares stack frame of external procedure signal_io_. on unit on line 153 64 on unit on unit on line 180 64 on unit on unit on line 279 64 on unit set_up_io internal procedure shares stack frame of external procedure signal_io_. signal internal procedure shares stack frame of external procedure signal_io_. handler 70 internal procedure is declared options(non_quick). terminate_this_process 82 internal procedure is called by several nonquick procedures. set_up internal procedure shares stack frame of external procedure signal_io_. clean_up_attach 64 internal procedure is called by several nonquick procedures. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME signal_io_ 000100 actual_iocbp signal_io_ 000102 iocbp signal_io_ 000104 mask signal_io_ 000106 system_free_area_ptr signal_io_ 000124 sgii signal_io_ 000376 attach_data_ptr signal_io_ terminate_this_process 000100 ti terminate_this_process THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. r_e_as call_ext_out_desc call_ext_out call_int_this call_int_other return enable ext_entry ext_entry_desc int_entry alloc_based free_based THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ get_system_free_area_ hcs_$reset_ips_mask hcs_$set_ips_mask iox_$err_not_attached iox_$err_not_closed iox_$err_not_open iox_$propagate signal_ terminate_process_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$action_not_performed error_table_$noarg error_table_$not_detached error_table_$unable_to_do_io LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000344 11 000352 92 000353 95 000376 96 000377 97 000400 99 000404 100 000406 102 000430 105 000454 108 000476 109 000505 111 000512 112 000517 114 000520 116 000542 117 000555 118 000560 119 000562 120 000566 121 000571 122 000574 123 000603 124 000604 126 000614 148 000615 151 000631 153 000632 154 000654 155 000667 156 000672 157 000673 158 000700 159 000702 160 000704 161 000712 162 000722 163 000723 164 000725 173 000726 176 000743 178 000744 180 000757 181 001001 183 001014 184 001020 185 001025 186 001027 187 001032 189 001035 192 001045 194 001047 195 001053 196 001056 199 001061 203 001070 206 001107 208 001117 209 001123 210 001126 213 001131 215 001143 217 001146 218 001152 223 001155 226 001167 228 001173 230 001202 231 001206 232 001211 233 001214 236 001217 238 001227 240 001232 241 001236 245 001241 247 001253 248 001257 250 001266 251 001272 254 001275 256 001305 258 001310 259 001314 263 001317 264 001325 265 001335 267 001336 268 001337 273 001340 276 001352 279 001353 280 001375 282 001410 283 001413 284 001417 285 001422 287 001426 289 001434 290 001444 293 001445 295 001464 296 001466 297 001472 298 001474 299 001475 300 001477 301 001501 303 001502 305 001516 306 001520 307 001524 308 001526 309 001527 310 001531 311 001533 313 001534 315 001551 316 001553 317 001557 318 001561 319 001562 320 001564 322 001565 324 001615 325 001617 326 001622 327 001624 328 001626 329 001630 330 001631 331 001633 333 001634 335 001651 336 001653 337 001656 338 001660 339 001661 340 001663 342 001664 344 001707 345 001711 346 001715 347 001717 348 001721 349 001722 350 001724 352 001725 354 001737 355 001741 356 001745 357 001747 358 001750 359 001752 361 001753 363 001767 364 001771 365 001775 366 001777 367 002000 368 002002 369 002004 371 002005 373 002017 374 002021 375 002025 376 002027 377 002030 378 002032 380 002033 382 002045 383 002047 384 002050 385 002052 387 002053 389 002072 390 002074 391 002103 392 002104 393 002106 394 002110 396 002111 398 002125 399 002127 400 002130 401 002137 402 002141 403 002143 405 002144 407 002162 408 002164 409 002165 410 002167 411 002171 447 002172 449 002205 502 002213 132 002214 138 002225 140 002271 142 002274 143 002300 414 002301 419 002303 420 002304 421 002306 422 002320 423 002326 424 002327 425 002332 426 002336 427 002343 428 002346 429 002350 430 002353 431 002356 432 002360 433 002361 436 002362 439 002363 440 002414 451 002415 456 002423 458 002435 461 002436 471 002444 472 002445 473 002450 475 002472 477 002473 480 002474 481 002475 482 002476 483 002503 484 002505 488 002506 491 002514 493 002521 494 002523 ----------------------------------------------------------- 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