COMPILATION LISTING OF SEGMENT use_big_tape_blocks_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1211.5 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1982 * 4* * * 5* *********************************************************** */ 6 use_big_tape_blocks_: proc (code); 7 8 /* Determine whether caller has access to Multics facilities 9* (see dir, ent arrays) to provide for tape blocks larger than 10* 11888 bytes (See "tape_nstd_" I/O module, AX49. 11* The parameter "code" is returned in one of three categories: 12* 1) zero implies the caller has access, 13* 2) error_table_$big_ws_req the caller does not, 14* 3) any other value implies there was failure in attempting to 15* determine (a normal multics status code). 16* Include file "use_big_tape_blocks.incl.pl1" provides declarations 17* for dir, ent arrays. 18* 19* Author: Dave Ward 04/21/81 20**/ 21 dcl code fixed bin(35)parm; 22 code = 0; /* Assume caller has access. */ 23 call user_info_ (per, prj, act); 24 per_prj = rtrim (per)||"."||rtrim (prj)||".*"; 25 do i = 1 to hbound (dir, 1); 26 mode = 0; 27 call hcs_$get_user_effmode ( 28 dir (i), ent (i) /* (input) directory and entry name. */ 29 , per_prj /* (input) PERSON.PROJECT.* */ 30 , get_ring_ () 31 , mode /* (output). */ 32 , code /* (output) status. */ 33 ); 34 if code ^= 0 then return; /* Failure to determine. */ 35 if read then 36 if nex (i) then do; 37 if exec then return; /* Success, has access. */ 38 end; 39 else do; 40 if writ then return; /* Success, has access. */ 41 end; 42 end; 43 code = error_table_$big_ws_req; 44 return; /* Success, does not have access. */ 45 46 /* Variables for use_big_tape_blocks_: */ 47 /* IDENTIFIER ATTRIBUTES */ 48 dcl act char(32); 49 dcl error_table_$big_ws_req fixed bin(35) ext static; 50 dcl get_ring_ entry() returns(fixed bin(3)); 51 dcl hcs_$get_user_effmode entry (char(*), char(*), char(*), fixed bin, fixed bin(5), fixed bin(35)); 52 dcl i fixed bin; 53 dcl mode fixed bin(5); 54 dcl per char(22); 55 dcl per_prj char(32); 56 dcl prj char(9); 57 dcl user_info_ entry (char(*), char(*), char(*)); 58 59 dcl 1 mode2 aligned based(addr(mode)) 60 , 3 skip1 bit(32)unal 61 , 3 read bit( 1)unal 62 , 3 exec bit( 1)unal 63 , 3 writ bit( 1)unal 64 , 3 skip2 bit( 1)unal 65 ; 66 1 1 /* BEGIN INCLUDE FILE use_big_tape_blocks.incl.pl1 (Wardd Multics) 04/22/81 1141.6 mst Wed */ 1 2 1 3 /* Specification of resources needed to utilize "big" tape 1 4* blocks, i.e., over 11888 bytes. 1 5**/ 1 6 1 7 dcl 1 big_tape_blocks_resources dim(2) static int options(constant), 1 8 3 nex bit(1)init("1"b,"0"b), /* "1"b => need execute. */ 1 9 /* "0"b => need write. */ 1 10 3 dir char(8)init( 1 11 ">sl1", 1 12 ">sc1>rcp" 1 13 ), 1 14 3 ent char(13)init( 1 15 "rcp_sys_", 1 16 "workspace.acs" 1 17 ); 1 18 1 19 /* END INCLUDE FILE use_big_tape_blocks.incl.pl1 */ 67 68 end use_big_tape_blocks_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1042.1 use_big_tape_blocks_.pl1 >spec>on>7105>use_big_tape_blocks_.pl1 67 1 03/27/82 0424.8 use_big_tape_blocks.incl.pl1 >ldd>include>use_big_tape_blocks.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. act 000100 automatic char(32) unaligned dcl 48 set ref 23* big_tape_blocks_resources 000000 constant structure array level 1 packed unaligned dcl 1-7 code parameter fixed bin(35,0) dcl 21 set ref 6 22* 27* 34 43* dir 0(09) 000000 constant char(8) initial array level 2 packed unaligned dcl 1-7 set ref 25 27* ent 2(09) 000000 constant char(13) initial array level 2 packed unaligned dcl 1-7 set ref 27* error_table_$big_ws_req 000010 external static fixed bin(35,0) dcl 49 ref 43 exec 0(33) based bit(1) level 2 packed unaligned dcl 59 ref 37 get_ring_ 000012 constant entry external dcl 50 ref 27 27 hcs_$get_user_effmode 000014 constant entry external dcl 51 ref 27 i 000110 automatic fixed bin(17,0) dcl 52 set ref 25* 27 27 35* mode 000111 automatic fixed bin(5,0) dcl 53 set ref 26* 27* 35 37 40 mode2 based structure level 1 dcl 59 nex 000000 constant bit(1) initial array level 2 packed unaligned dcl 1-7 ref 35 per 000112 automatic char(22) unaligned dcl 54 set ref 23* 24 per_prj 000120 automatic char(32) unaligned dcl 55 set ref 24* 27* prj 000130 automatic char(9) unaligned dcl 56 set ref 23* 24 read 0(32) based bit(1) level 2 packed unaligned dcl 59 ref 35 user_info_ 000016 constant entry external dcl 57 ref 23 writ 0(34) based bit(1) level 2 packed unaligned dcl 59 ref 40 NAME DECLARED BY EXPLICIT CONTEXT. use_big_tape_blocks_ 000027 constant entry external dcl 6 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 35 37 40 hbound builtin function ref 25 rtrim builtin function ref 24 24 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 352 372 263 362 Length 564 263 20 155 67 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME use_big_tape_blocks_ 136 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME use_big_tape_blocks_ 000100 act use_big_tape_blocks_ 000110 i use_big_tape_blocks_ 000111 mode use_big_tape_blocks_ 000112 per use_big_tape_blocks_ 000120 per_prj use_big_tape_blocks_ 000130 prj use_big_tape_blocks_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs cat_realloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. get_ring_ hcs_$get_user_effmode user_info_ THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$big_ws_req LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 6 000024 22 000034 23 000036 24 000056 25 000140 26 000147 27 000150 34 000225 35 000230 37 000243 38 000246 40 000247 42 000252 43 000254 44 000260 ----------------------------------------------------------- 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