COMPILATION LISTING OF SEGMENT timed_io_ Compiled by: Multics PL/I Compiler, Release 27d, of October 11, 1982 Compiled at: Honeywell LISD Phoenix, System M Compiled on: 11/04/82 1843.5 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 7 8 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 9 /* */ 10 /* timed_io_: 1982.09.08 by Richard Lamson */ 11 /* */ 12 /* timed_io_ provides an interface to control orders in I/O modules which allow the */ 13 /* caller to specify that it only wants to wait a certain duration before returning, */ 14 /* whether the I/O has completed or not. */ 15 /* */ 16 /* The following entry points are implemented: */ 17 /* */ 18 /* timed_io_$get_chars (iocbp, timeout, buffer_ptr, buffer_length, chars_read, code); */ 19 /* */ 20 /* timed_io_$get_line (iocbp, timeout, buffer_ptr, buffer_length, chars_read, code); */ 21 /* */ 22 /* timed_io_$put_chars (iocbp, timeout, buffer_ptr, buffer_length, chars_written, code); */ 23 /* */ 24 /* These entry points perform the same function as the equivalent iox_ entry points, */ 25 /* except that they return in approximately "timeout" microseconds, whether or not their */ 26 /* task is completed. In the case of put_chars, the number of characters actually */ 27 /* written is returned. */ 28 /* */ 29 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ 30 31 32 33 timed_io_: 34 procedure (); 35 return; 36 37 timed_io_$get_chars: 38 entry (P_iocb_ptr, P_timeout, P_buffer_ptr, P_buffer_length, P_characters_read, P_status); 39 40 control_order = "get_chars_timeout"; 41 go to get_common; 42 43 timed_io_$get_line: 44 entry (P_iocb_ptr, P_timeout, P_buffer_ptr, P_buffer_length, P_characters_read, P_status); 45 46 control_order = "get_line_timeout"; 47 get_common: 48 input_timeout_data.timeout = P_timeout; 49 input_timeout_data.buffer_pointer = P_buffer_ptr; 50 input_timeout_data.buffer_length = P_buffer_length; 51 call iox_$control (P_iocb_ptr, control_order, addr (input_timeout_data), P_status); 52 P_characters_read = input_timeout_data.characters_read; 53 return; 54 55 timed_io_$put_chars: 56 entry (P_iocb_ptr, P_timeout, P_buffer_ptr, P_buffer_length, P_characters_written, P_status); 57 58 control_order = "put_chars_timeout"; 59 output_timeout_data.timeout = P_timeout; 60 output_timeout_data.buffer_pointer = P_buffer_ptr; 61 output_timeout_data.buffer_length = P_buffer_length; 62 call iox_$control (P_iocb_ptr, control_order, addr (output_timeout_data), P_status); 63 P_characters_written = output_timeout_data.characters_written; 64 return; 65 66 67 declare (P_iocb_ptr, P_buffer_ptr) pointer; 68 declare P_timeout fixed binary (71); 69 declare (P_buffer_length, P_characters_read, P_characters_written) fixed binary (21); 70 declare P_status fixed binary (35); 71 1 1 /* BEGIN INCLUDE FILE io_timeout_info.incl.pl1 */ 1 2 /* Initial version 1982.09.08 by Richard Lamson */ 1 3 1 4 declare 1 input_timeout_info based (timeout_info_ptr) aligned, 1 5 2 timeout fixed binary (71), 1 6 2 buffer_pointer pointer, 1 7 2 buffer_length fixed binary (21), 1 8 2 characters_read fixed binary (21); 1 9 1 10 declare 1 output_timeout_info based (timeout_info_ptr) aligned, 1 11 2 timeout fixed binary (71), 1 12 2 buffer_pointer pointer, 1 13 2 buffer_length fixed binary (21), 1 14 2 characters_written fixed binary (21); 1 15 1 16 declare timeout_info_ptr pointer; 1 17 1 18 /* end include file io_timeout_info.incl.pl1 */ 72 73 declare 1 input_timeout_data aligned like input_timeout_info; 74 declare 1 output_timeout_data aligned like output_timeout_info; 75 76 declare iox_$control entry (ptr, char(*), ptr, fixed bin(35)); 77 78 declare addr builtin; 79 declare control_order character (32); 80 81 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 11/04/82 1610.8 timed_io_.pl1 >dumps>old>recomp>timed_io_.pl1 72 1 10/19/82 2111.7 io_timeout_info.incl.pl1 >ldd>include>io_timeout_info.incl.pl1 NAMES DECLARED IN THIS COMPILATION. IDENTIFIER OFFSET LOC STORAGE CLASS DATA TYPE ATTRIBUTES AND REFERENCES (* indicates a set context) NAMES DECLARED BY DECLARE STATEMENT. P_buffer_length parameter fixed bin(21,0) dcl 69 ref 37 43 50 55 61 P_buffer_ptr parameter pointer dcl 67 ref 37 43 49 55 60 P_characters_read parameter fixed bin(21,0) dcl 69 set ref 37 43 52* P_characters_written parameter fixed bin(21,0) dcl 69 set ref 55 63* P_iocb_ptr parameter pointer dcl 67 set ref 37 43 51* 55 62* P_status parameter fixed bin(35,0) dcl 70 set ref 37 43 51* 55 62* P_timeout parameter fixed bin(71,0) dcl 68 ref 37 43 47 55 59 addr builtin function dcl 78 ref 51 51 62 62 buffer_length 4 000106 automatic fixed bin(21,0) level 2 in structure "output_timeout_data" dcl 74 in procedure "timed_io_" set ref 61* buffer_length 4 000100 automatic fixed bin(21,0) level 2 in structure "input_timeout_data" dcl 73 in procedure "timed_io_" set ref 50* buffer_pointer 2 000100 automatic pointer level 2 in structure "input_timeout_data" dcl 73 in procedure "timed_io_" set ref 49* buffer_pointer 2 000106 automatic pointer level 2 in structure "output_timeout_data" dcl 74 in procedure "timed_io_" set ref 60* characters_read 5 000100 automatic fixed bin(21,0) level 2 dcl 73 set ref 52 characters_written 5 000106 automatic fixed bin(21,0) level 2 dcl 74 set ref 63 control_order 000114 automatic char(32) unaligned dcl 79 set ref 40* 46* 51* 58* 62* input_timeout_data 000100 automatic structure level 1 dcl 73 set ref 51 51 input_timeout_info based structure level 1 dcl 1-4 iox_$control 000010 constant entry external dcl 76 ref 51 62 output_timeout_data 000106 automatic structure level 1 dcl 74 set ref 62 62 output_timeout_info based structure level 1 dcl 1-10 timeout 000106 automatic fixed bin(71,0) level 2 in structure "output_timeout_data" dcl 74 in procedure "timed_io_" set ref 59* timeout 000100 automatic fixed bin(71,0) level 2 in structure "input_timeout_data" dcl 73 in procedure "timed_io_" set ref 47* NAME DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. timeout_info_ptr automatic pointer dcl 1-16 NAMES DECLARED BY EXPLICIT CONTEXT. get_common 000063 constant label dcl 47 ref 41 timed_io_ 000024 constant entry external dcl 33 timed_io_$get_chars 000040 constant entry external dcl 37 timed_io_$get_line 000053 constant entry external dcl 43 timed_io_$put_chars 000127 constant entry external dcl 55 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 306 320 201 316 Length 506 201 12 152 105 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME timed_io_ 104 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME timed_io_ 000100 input_timeout_data timed_io_ 000106 output_timeout_data timed_io_ 000114 control_order timed_io_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc return ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. iox_$control NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 33 000023 35 000031 37 000032 40 000045 41 000050 43 000051 46 000060 47 000063 49 000066 50 000071 51 000073 52 000121 53 000124 55 000125 58 000134 59 000137 60 000142 61 000145 62 000147 63 000175 64 000200 ----------------------------------------------------------- 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