COMPILATION LISTING OF SEGMENT gtss_mcfc_init_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 12/10/84 1356.1 mst Mon Options: optimize map 1 /* *********************************************************** 2* * * 3* * * 4* * Copyright, (C) Honeywell Information Systems Inc., 1981 * 5* * * 6* * * 7* *********************************************************** */ 8 9 gtss_mcfc_init_: proc (rs); 10 11 /* Set gtss_ext_$mcfc (data base values for 12* multiple caller file control). Required 13* before any calls made to gtss_mcfc_. 14* Record callers lock id. 15* Set default mcfc wait time (30 seconds). 16* Return rs "true" if successful, else "false" 17* (i.e. => can be called as active function. 18* 19* Author: Dave Ward 08/08/79 20* Change: Dave Ward 11/28/79 Use object referencing directory. 21* Change: Ron Barstad 02/07/83 Remove false reference to >exl... for mcfc files 22**/ 23 dcl rs char(*)var parm; 24 label_to_locate_this_object: 25 call hcs_$fs_get_path_name ( 26 codeptr (label_to_locate_this_object) 27 , dir_for_this_object 28 , 0 29 , "" 30 , c 31 ); 32 if c ^= 0 then do; 33 call com_err_ ( 34 c 35 , "gtss_mcfc_init_" 36 , "Could not obtain directory of mcfc data base." 37 ); 38 rs = "false"; 39 return; 40 end; 41 42 do i = 1 to hbound (mcfc_ptr, 1); 43 /* Set pointers to multiple caller file control 44* (mcfc) data structures. 45**/ 46 call hcs_$initiate ( 47 dir_for_this_object 48 , "GTSS.MCFC."||mcfc_name (i) 49 , "" /* Null reference name. */ 50 , 0 /* Segment no. not reserved. */ 51 , 1 /* Not a copy. */ 52 , mcfc_ptr (i) 53 , c 54 ); 55 if c ^= 0 then 56 if c ^= error_table_$segknown then do; 57 call com_err_ ( 58 c 59 , "gtss_mcfc_init_" 60 , "Could not obtain GTSS.MCFC.(FILES NAMES CALLERS_(1 2 3 4))." 61 ); 62 rs = "false"; 63 return; 64 end; 65 end; 66 67 /* Obtain caller's (unique) 68* lock identifier. 69**/ 70 call get_lock_id_ (gtss_ext_$mcfc.multics_lock_id); 71 72 /* Set default wait time for mcfc callers. 73* The number of real-time seconds a process 74* is put to sleep awaiting use of mcfc. 75**/ 76 gtss_ext_$mcfc.wait_time = 30; 77 78 rs = "true"; 79 return; 80 81 /* Variables for gtss_mcfc_init_: 82* IDENTIFIER ATTRIBUTES */ 83 dcl c fixed bin(35); 84 dcl codeptr builtin; 85 dcl com_err_ entry options(variable); 86 dcl dir_for_this_object char(168); 87 dcl error_table_$segknown fixed bin (35)ext; 88 dcl get_lock_id_ entry(bit(36)aligned); 89 dcl hcs_$fs_get_path_name entry (ptr, char (*), fixed bin, char (*), fixed bin (35)); 90 dcl hcs_$initiate entry(char(*),char(*),char(*),fixed bin(1),fixed bin(2),ptr,fixed bin(35)); 91 dcl i fixed bin; 92 dcl mcfc_ptr (6)ptr aligned based(addr(gtss_ext_$mcfc.files_ptr)); 93 94 dcl mcfc_name (6)char(9)var static int options(constant) init( 95 /* 1 */ "FILES" 96 ,/* 2 */ "NAMES" 97 ,/* 3 */ "CALLERS_1" 98 ,/* 4 */ "CALLERS_2" 99 ,/* 5 */ "CALLERS_3" 100 ,/* 6 */ "CALLERS_4" 101 ); 102 1 1 /* BEGIN INCLUDE FILE gtss_ext_.incl.pl1 */ 1 2 /* 1 3* Created: (Wardd Multics) 05/20/78 1307.6 mst Sat 1 4* Modified: Ward 1981 add suspended_process dcl 1 5* Modified: Ron Barstad 83-07-21 Fixed level number on mcfc to 3 1 6* Modified: Ron Barstad 83-07-25 Fixed derail range in statistics to 4js3 number 1 7**/ 1 8 dcl gtss_ext_$aem fixed bin static ext /* >0 Print "additional" error information. */; 1 9 dcl gtss_ext_$bad_drl_rtrn static ext label /* Default for drl_rtrn. */; 1 10 dcl gtss_ext_$db (72)bit(1)unal static ext; 1 11 dcl gtss_ext_$deferred_catalogs_ptr ptr ext; 1 12 dcl gtss_ext_$dispose_of_drl static ext label /* quit handlers for some derails use this label to abort */; 1 13 dcl gtss_ext_$drl_rtrn (4)static ext label /* where to return at subsystem end */; 1 14 dcl gtss_ext_$drm_path char(168)static ext /* gtss_expand_pathname_stores drm_path */; 1 15 dcl gtss_ext_$drun_jid char (5) static ext /* valid only for DRUN executing under absentee */; 1 16 dcl gtss_ext_$event_channel fixed bin (71) static ext /* used for DABT signals */; 1 17 dcl gtss_ext_$finished static ext label /* Return to gtss for normal conclusion. */; 1 18 dcl gtss_ext_$gdb_name char(8)ext /* Name H* module to debug. */; 1 19 dcl gtss_ext_$get_line entry(ptr,ptr,fixed bin(21),fixed bin(21),fixed bin(35))variable ext /* Build mode input procedure. */; 1 20 dcl gtss_ext_$gtss_slave_area_seg (4) ext static ptr /* pointer to gtss slave area segment */; 1 21 dcl gtss_ext_$hcs_work_area_ptr ptr ext static /* Temp seg for acl lists. */; 1 22 dcl gtss_ext_$homedir char (64) static ext /* user's home dir */; 1 23 dcl gtss_ext_$last_k_was_out bit (1)aligned ext static /* "1"b => last tty output was output. */; 1 24 dcl gtss_ext_$pdir char (168) varying ext static /* pathname of process directory */; 1 25 dcl gtss_ext_$popup_from_pi static ext label /* transfer to this label after pi simulates popup primitive */; 1 26 dcl gtss_ext_$process_type fixed bin (17) static ext; 1 27 dcl gtss_ext_$put_chars entry(ptr,ptr,fixed bin(24),fixed bin(35)) variable ext /* Terminal output procedure. */; 1 28 dcl gtss_ext_$restart_from_pi static ext label /* transfer to this label after pi restores machine conditions */; 1 29 dcl gtss_ext_$restart_seg_ptr ptr static ext /* points to DRUN restart file when exec under absentee */; 1 30 dcl gtss_ext_$sig_ptr ext static ptr /* saved ptr to signal_ */; 1 31 dcl gtss_ext_$stack_level_ fixed bin ext static; 1 32 dcl gtss_ext_$suspended_process bit(1) ext static; 1 33 dcl gtss_ext_$SYstarstar_file_no fixed bin (24) static ext; 1 34 dcl gtss_ext_$user_id char (26)var ext; 1 35 dcl gtss_ext_$work_area_ptr ptr ext; 1 36 1 37 dcl 1 gtss_ext_$CFP_bits aligned static external 1 38 , 3 no_input_yet bit (1) unaligned /* used in gtss_CFP_input_, gtss_read_starCFP_ */ 1 39 , 3 rtn_bits bit (4) unaligned /* used in gtss_CFP_input_, gtss_CFP_output_ */ 1 40 , 3 cpos_called bit (1) unaligned /* used in gtss_CFP_input_, gtss_drl_t_cfio_, gtss_abandon_CFP_ */ 1 41 , 3 cout_called bit (1) unaligned /* used in gtss_read_starCFP_, gtss_abandon_CFP_ */ 1 42 , 3 build_mode bit (1) unaligned /* used in gtss_build_, gtss_dsd_process_ */ 1 43 ; 1 44 1 45 dcl 1 gtss_ext_$com_reg aligned static ext, 1 46 3 tsdmx, 1 47 4 dst fixed bin (18) unsigned unaligned, 1 48 4 dit fixed bin (18) unsigned unaligned, 1 49 3 tsdpt fixed bin (36) unsigned unaligned, 1 50 3 tsddt fixed bin (36) unsigned unaligned, 1 51 3 tsdid bit (72) unaligned, 1 52 3 tsdsd bit (36) unaligned, 1 53 3 tsdst fixed bin (36) unsigned unaligned, 1 54 3 tsdjb fixed bin (35) unaligned, 1 55 3 tsdgt, 1 56 4 ust_loc fixed bin (18) unsigned unaligned, 1 57 4 gating_ctl fixed bin (18) unsigned unaligned, 1 58 3 tcdfr bit (36) unaligned; 1 59 1 60 dcl 1 gtss_ext_$flags aligned static ext 1 61 , 3 dispose_of_drl_on_pi bit (01) unal /* 1 => drl that should be aborted after quit-pi sequence */ 1 62 , 3 drl_in_progress bit (01) unal /* 1 => drl handler executing; 0 => gcos code executing */ 1 63 , 3 popup_from_pi bit (01) unal /* 1 => derail processor will simulate Gcos break instead of returning */ 1 64 , 3 unfinished_drl bit (01) unal /* 1 => subsystem is handling breaks and quit was raised during a drl */ 1 65 , 3 ss_time_limit_set bit (01) unal /* 1 => exec time limit set for subsystem */ 1 66 , 3 timer_ranout bit (01) unal /* 1 => user is executing timer runout code */ 1 67 , 3 gtss_com_err_sw bit (01) unal /* 1 => stop com_err_ string from going to terminal */ 1 68 , 3 available bit (65) unal 1 69 ; 1 70 1 71 1 72 dcl 1 gtss_ext_$statistics aligned static ext, /* Derail usage statistics */ 1 73 3 total_time (-10:71)fixed bin (71), 1 74 3 count (-10:71)fixed bin (17); 1 75 1 76 /* Declaration of Available File Table 1 77* */ 1 78 dcl 1 gtss_ext_$aft aligned ext, /* aft structure */ 1 79 1 80 3 start_list (0:102) fixed bin (24), /* >0 => 1st aft_entry row to start of next entry chain. */ 1 81 1 82 3 aft_entry (20), 1 83 4 altname char (8), /* altname name for attaching this file */ 1 84 4 next_entry fixed bin (24), /* Next aft_entry in hash chain. */ 1 85 4 previous_add fixed bin (24), /* Previously added entry. */ 1 86 4 next_add fixed bin (24), /* Entry added after this one. */ 1 87 4 used bit (1) unal, /* "1"b => aft_entry contains AFT value. */ 1 88 4 forced bit(1) unal, /* "1"b => gtss_verify_access_ forced access on this file. */ 1 89 1 90 3 free_space fixed bin (24), /* Index of start of free space list for aft entries. */ 1 91 3 first_added fixed bin (24), /* >0 => start of chain in add order. */ 1 92 3 last_added fixed bin (24) /* >0 => end of chain in added order. */; 1 93 1 94 dcl gtss_ext_$ppt ptr ext /* switch name for tapein drl */; 1 95 /** Data structure to provide access to installed 1 96* subsystems fast library load. 1 97* **/ 1 98 dcl 1 gtss_ext_$fast_lib aligned ext 1 99 , 3 fast_lib_fcb ptr /* Pointer to msf fcb. */ 1 100 , 3 fast_lib_ncp fixed bin (24) /* Number of components. */ 1 101 , 3 comp_ptr (0:9)ptr /* Pointer to component. */ 1 102 , 3 comp_wds (0:9)fixed bin (24) /* Component length (words). */ 1 103 ; 1 104 1 105 /* Pointers to segments to regulate multipler 1 106* callers to files. Same segments are used to regulate 1 107* all simulator callers. 1 108**/ 1 109 dcl 1 gtss_ext_$mcfc aligned ext, 1 110 3 multics_lock_id bit(36), 1 111 3 wait_time fixed bin, 1 112 3 files_ptr ptr, 1 113 3 names_ptr ptr, 1 114 3 callers_ptr (0:3)ptr 1 115 ; 1 116 1 117 /* END INCLUDE FILE gtss_ext_.incl.pl1 */ 103 104 end /* gtss_mcfc_init_ */; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 12/10/84 1044.3 gtss_mcfc_init_.pl1 >spec>on>7105>gtss_mcfc_init_.pl1 103 1 09/09/83 1713.8 gtss_ext_.incl.pl1 >ldd>include>gtss_ext_.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. c 000100 automatic fixed bin(35,0) dcl 83 set ref 24* 32 33* 46* 55 55 57* codeptr builtin function dcl 84 ref 24 24 com_err_ 000010 constant entry external dcl 85 ref 33 57 dir_for_this_object 000101 automatic char(168) unaligned dcl 86 set ref 24* 46* error_table_$segknown 000012 external static fixed bin(35,0) dcl 87 ref 55 files_ptr 2 000022 external static pointer level 2 dcl 1-109 set ref 42 46 get_lock_id_ 000014 constant entry external dcl 88 ref 70 gtss_ext_$mcfc 000022 external static structure level 1 dcl 1-109 hcs_$fs_get_path_name 000016 constant entry external dcl 89 ref 24 hcs_$initiate 000020 constant entry external dcl 90 ref 46 i 000153 automatic fixed bin(17,0) dcl 91 set ref 42* 46 46* mcfc_name 000000 constant varying char(9) initial array dcl 94 ref 46 mcfc_ptr based pointer array dcl 92 set ref 42 46* multics_lock_id 000022 external static bit(36) level 2 dcl 1-109 set ref 70* rs parameter varying char dcl 23 set ref 9 38* 62* 78* wait_time 1 000022 external static fixed bin(17,0) level 2 dcl 1-109 set ref 76* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. gtss_ext_$CFP_bits external static structure level 1 dcl 1-37 gtss_ext_$SYstarstar_file_no external static fixed bin(24,0) dcl 1-33 gtss_ext_$aem external static fixed bin(17,0) dcl 1-8 gtss_ext_$aft external static structure level 1 dcl 1-78 gtss_ext_$bad_drl_rtrn external static label variable dcl 1-9 gtss_ext_$com_reg external static structure level 1 dcl 1-45 gtss_ext_$db external static bit(1) array unaligned dcl 1-10 gtss_ext_$deferred_catalogs_ptr external static pointer dcl 1-11 gtss_ext_$dispose_of_drl external static label variable dcl 1-12 gtss_ext_$drl_rtrn external static label variable array dcl 1-13 gtss_ext_$drm_path external static char(168) unaligned dcl 1-14 gtss_ext_$drun_jid external static char(5) unaligned dcl 1-15 gtss_ext_$event_channel external static fixed bin(71,0) dcl 1-16 gtss_ext_$fast_lib external static structure level 1 dcl 1-98 gtss_ext_$finished external static label variable dcl 1-17 gtss_ext_$flags external static structure level 1 dcl 1-60 gtss_ext_$gdb_name external static char(8) unaligned dcl 1-18 gtss_ext_$get_line external static entry variable dcl 1-19 gtss_ext_$gtss_slave_area_seg external static pointer array dcl 1-20 gtss_ext_$hcs_work_area_ptr external static pointer dcl 1-21 gtss_ext_$homedir external static char(64) unaligned dcl 1-22 gtss_ext_$last_k_was_out external static bit(1) dcl 1-23 gtss_ext_$pdir external static varying char(168) dcl 1-24 gtss_ext_$popup_from_pi external static label variable dcl 1-25 gtss_ext_$ppt external static pointer dcl 1-94 gtss_ext_$process_type external static fixed bin(17,0) dcl 1-26 gtss_ext_$put_chars external static entry variable dcl 1-27 gtss_ext_$restart_from_pi external static label variable dcl 1-28 gtss_ext_$restart_seg_ptr external static pointer dcl 1-29 gtss_ext_$sig_ptr external static pointer dcl 1-30 gtss_ext_$stack_level_ external static fixed bin(17,0) dcl 1-31 gtss_ext_$statistics external static structure level 1 dcl 1-72 gtss_ext_$suspended_process external static bit(1) unaligned dcl 1-32 gtss_ext_$user_id external static varying char(26) dcl 1-34 gtss_ext_$work_area_ptr external static pointer dcl 1-35 NAMES DECLARED BY EXPLICIT CONTEXT. gtss_mcfc_init_ 000113 constant entry external dcl 9 label_to_locate_this_object 000126 constant label dcl 24 ref 24 24 NAMES DECLARED BY CONTEXT OR IMPLICATION. addr builtin function ref 42 46 hbound builtin function ref 42 STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 534 560 427 544 Length 750 427 24 154 104 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME gtss_mcfc_init_ 194 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME gtss_mcfc_init_ 000100 c gtss_mcfc_init_ 000101 dir_for_this_object gtss_mcfc_init_ 000153 i gtss_mcfc_init_ THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM. alloc_cs call_ext_out_desc call_ext_out return shorten_stack ext_entry_desc THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM. com_err_ get_lock_id_ hcs_$fs_get_path_name hcs_$initiate THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. error_table_$segknown gtss_ext_$mcfc LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC LINE LOC 9 000110 24 000126 32 000162 33 000164 38 000216 39 000230 42 000231 46 000237 55 000325 57 000333 62 000364 63 000376 65 000377 70 000401 76 000410 78 000414 79 000426 ----------------------------------------------------------- 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