COMPILATION LISTING OF SEGMENT set_mrds_temp_dir Compiled by: Multics PL/I Compiler, Release 28e, of February 14, 1985 Compiled at: Honeywell Multics Op. - System M Compiled on: 04/18/85 1014.7 mst Thu Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 /* ****************************************************** 10* * * 11* * * 12* * Copyright (c) 1972 by Massachusetts Institute of * 13* * Technology and Honeywell Information Systems, Inc. * 14* * * 15* * * 16* ****************************************************** */ 17 18 /* HISTORY: 19* 20* Originally written by Jim Gray - - August 1979 21* 22**/ 23 24 set_mrds_temp_dir: smtd: procedure (); 25 26 /* DESCRIPTION: 27* 28* this is a command level interface, that is used to 29* set the value of a pathname to a directory that will be 30* used for temporary storage needed by the resultant database 31* model created during database open time. 32* normally the process directory is used for this temporary 33* storage, but for large databases, a directory with more quota 34* may be required, thus the need for this interface to 35* specify that directory, and override the [pd] default. 36* NOTE: the temp dir may be changed between calls to mrds_dsl_open. 37**/ 38 39 /* PARAMETERS: 40* 41* relative_path - - (input) the pathname, relative or absolute, 42* of the directory under which temporary storage is to be placed. 43* 44* error_messages - - (output) via com_err_ in case a problem is discovered 45* with the given pathname. 46* 47**/ 48 49 /* check for correct number of arguments */ 50 51 call cu_$arg_count (nargs); 52 if nargs ^= 1 then 53 call com_err_ (error_table_$wrong_no_of_args, caller_name, "^/^a ^d ^a", 54 "The number of arguments =", nargs, "was not 1, the temporary directory pathname."); 55 else do; 56 57 /* get the pathname argument */ 58 59 call cu_$arg_ptr (1, arg_ptr, arg_len, error_code); 60 if error_code ^= 0 then 61 call com_err_ (error_code, caller_name, "^/^a", 62 "Unable to obtain the temporary directory pathname argument."); 63 else do; 64 65 /* pathname obtained, use the subroutine entry to set it */ 66 67 on sub_error_ ; /* ignore sub_err_ messages */ 68 69 call mrds_dsl_resultant_storage$set (relative_path, error_code); 70 if error_code = 0 then ; 71 else call com_err_ (error_code, caller_name, "^/^a^a^a", 72 "Unable to set the temporary directory to the pathname """, relative_path, """."); 73 74 end; 75 76 end; 77 78 declare com_err_ entry options (variable); /* reports errors */ 79 declare mrds_dsl_resultant_storage$set entry (char (*), fixed bin (35)); /* sets temp dir */ 80 declare sub_error_ condition; /* signaled by calls to sub_err_ in set routine */ 81 declare error_code fixed bin (35); /* error status encoding */ 82 declare caller_name char (20) init ("set_mrds_temp_dir"); /* name of calling routine */ 83 declare cu_$arg_count entry (fixed bin); /* gets number of arguments */ 84 declare cu_$arg_ptr entry (fixed bin, ptr, fixed bin (21), fixed bin (35)); /* gets char(*) argument */ 85 declare arg_ptr ptr; /* points to relative path argument */ 86 declare arg_len fixed bin (21); /* length of input argument */ 87 declare relative_path char (arg_len) based (arg_ptr); /* temp dir path input */ 88 declare nargs fixed bin; /* current arg count */ 89 declare error_table_$wrong_no_of_args fixed bin (35) ext; /* arg count not 1 */ 90 91 end; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 04/18/85 0906.3 set_mrds_temp_dir.pl1 >special_ldd>online>mrds.pbf-04/18/85>set_mrds_temp_dir.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. arg_len 000116 automatic fixed bin(21,0) dcl 86 set ref 59* 69 69 71 71 arg_ptr 000114 automatic pointer dcl 85 set ref 59* 69 71 caller_name 000107 automatic char(20) initial unaligned dcl 82 set ref 52* 60* 71* 82* com_err_ 000010 constant entry external dcl 78 ref 52 60 71 cu_$arg_count 000014 constant entry external dcl 83 ref 51 cu_$arg_ptr 000016 constant entry external dcl 84 ref 59 error_code 000106 automatic fixed bin(35,0) dcl 81 set ref 59* 60 60* 69* 70 71* error_table_$wrong_no_of_args 000020 external static fixed bin(35,0) dcl 89 set ref 52* mrds_dsl_resultant_storage$set 000012 constant entry external dcl 79 ref 69 nargs 000117 automatic fixed bin(17,0) dcl 88 set ref 51* 52 52* relative_path based char unaligned dcl 87 set ref 69* 71* sub_error_ 000100 stack reference condition dcl 80 ref 67 NAMES DECLARED BY EXPLICIT CONTEXT. set_mrds_temp_dir 000127 constant entry external dcl 24 smtd 000117 constant entry external dcl 24 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 516 540 403 526 Length 724 403 22 147 113 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME smtd 152 external procedure is an external procedure. on unit on line 67 64 on unit STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME smtd 000106 error_code smtd 000107 caller_name smtd 000114 arg_ptr smtd 000116 arg_len smtd 000117 nargs smtd THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. call_ext_out_desc call_ext_out return enable ext_entry int_entry THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ cu_$arg_count cu_$arg_ptr mrds_dsl_resultant_storage$set THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$wrong_no_of_args LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 82 000111 24 000116 51 000135 52 000144 59 000217 60 000236 67 000273 69 000310 70 000330 71 000333 91 000402 ----------------------------------------------------------- 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