COMPILATION LISTING OF SEGMENT fm_per_system_init_ Compiled by: Multics PL/I Compiler, Release 28d, of October 4, 1983 Compiled at: Honeywell Multics Op. - System M Compiled on: 01/03/85 1652.1 mst Thu Options: optimize list 1 /* *********************************************************** 2* * * 3* * Copyright, (C) Honeywell Information Systems Inc., 1983 * 4* * * 5* *********************************************************** */ 6 7 /* DESCRIPTION 8* 9* This module creates the file_manager_'s UID-pathname table during 10* the first part of a Data Management System's initialization. This 11* used to reside in fm_combos_.pl1 and was pulled out to not conflict 12* with the per-process initialization first reference traps. 13**/ 14 15 /* HISTORY: 16*Written by Jeffrey D. Ives, 02/23/83. 17*Modified: 18*08/06/83 by Lee A. Newcomb: removed obsolete code args. from calls 19* to dm_per_system_ entries. 20*05/30/84 by Lee A. Newcomb: fixed formatting to pass audit. 21**/ 22 23 /* format: style4,indattr,ifthenstmt,ifthen,idind33,^indcomtxt */ 24 25 fm_per_system_init_: 26 proc (p_code); 27 28 /* START OF DECLARATIONS */ 29 /* Parameter */ 30 31 dcl 32 p_code fixed bin (35) parameter; 33 34 /* Automatic */ 35 36 dcl 37 seg_ptr ptr automatic; 38 39 /* Based */ 40 /* Builtins */ 41 /* Conditions */ 42 /* Constants */ 43 /* Entries */ 44 45 dcl 46 dm_per_system_$create entry (char (*), ptr); 47 48 /* External Static */ 49 /* Internal Static */ 50 51 /* END OF DECLARATIONS */ 52 53 54 call dm_per_system_$create ("fm_sys_pn_tbl", seg_ptr); 55 56 seg_ptr -> sys_pn_tbl.h.version = SYS_PN_TBL_VERSION_1; 57 p_code = 0; 58 59 return; 60 /* BEGIN INCLUDE FILE dm_fm_sys_pn_tbl.incl.pl1 */ 1 2 1 3 /* DESCRIPTION: 1 4* This include file contains the sys_pn_tbl structure, the 1 5* file_manager_'s System Pathname Table. Each file which can possibly 1 6* have a before image current must have an entry in this table. Every 1 7* time this table is modified it is force-written to disk, as its 1 8* correct contents are necessary for rolling back transactions by a 1 9* process other than the process which originally owned the transaction. 1 10* When an entry is inserted, it is force-written twice: the first time with 1 11* the entry filled in but with the "in_use" element set to indicate that the 1 12* entry is not yet in use; the second time with the "in_use" element set 1 13* to indicate that the entry is in use. This is done to avoid the possibility 1 14* of a failure while the entry is being written which could successfully 1 15* write the "in_use" but not all of the rest of the entry. "in_use" can have 1 16* one of three values: 0 - not in use; -1 - in use ; +1 - in use but the 1 17* file has been deleted. 1 18**/ 1 19 1 20 /* HISTORY: 1 21*Written by Jeffrey D. Ives, 10/11/82. 1 22* (Design by Andre Bensoussan and Jeffrey Ives.) 1 23*Modified: 1 24*10/30/84 by Matthew Pierret: Added DESCRIPTION and HISTORY sections, 1 25* *_IN_USE constants. Changed thread to in_use, pfuid to file_uid, 1 26* fsuid to file_system_uid. 1 27**/ 1 28 1 29 /* format: style2,ind3 */ 1 30 1 31 dcl fm_data_$sys_pn_tbl_name 1 32 char (32) ext; 1 33 dcl fm_data_$sys_pn_tbl_ptr 1 34 ptr ext; 1 35 1 36 dcl 1 sys_pn_tbl aligned based (fm_data_$sys_pn_tbl_ptr), 1 37 2 h, 1 38 3 version bit (36), 1 39 3 last_entry fixed bin, 1 40 3 lock fixed bin (71), 1 41 3 mbz (30) fixed bin (71), 1 42 2 e (4096), 1 43 3 in_use fixed bin, 1 44 3 open_count fixed bin, 1 45 3 file_uid bit (36), 1 46 3 file_system_uid bit (36), 1 47 2 paths (4096) char (168) unal; 1 48 1 49 dcl SYS_PN_TBL_VERSION_1 bit (36) aligned static options (constant) init ("162363353101"b3); 1 50 1 51 dcl ( 1 52 SPT_ENTRY_IN_USE init (-1), 1 53 SPT_ENTRY_IN_USE_BUT_DELETED 1 54 init (1), 1 55 SPT_ENTRY_NOT_IN_USE init (0) 1 56 ) fixed bin internal static options (constant); 1 57 1 58 /* END INCLUDE FILE dm_fm_sys_pn_tbl.incl.pl1 */ 60 61 62 end fm_per_system_init_; SOURCE FILES USED IN THIS COMPILATION. LINE NUMBER DATE MODIFIED NAME PATHNAME 0 01/03/85 1151.0 fm_per_system_init_.pl1 >spec>temp>famis1>fm_per_system_init_.pl1 60 1 01/03/85 1005.2 dm_fm_sys_pn_tbl.incl.pl1 >spec>temp>famis1>dm_fm_sys_pn_tbl.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. SYS_PN_TBL_VERSION_1 000000 constant bit(36) initial dcl 1-49 ref 56 dm_per_system_$create 000010 constant entry external dcl 45 ref 54 h based structure level 2 dcl 1-36 p_code parameter fixed bin(35,0) dcl 31 set ref 25 57* seg_ptr 000100 automatic pointer dcl 36 set ref 54* 56 sys_pn_tbl based structure level 1 dcl 1-36 version based bit(36) level 3 dcl 1-36 set ref 56* NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED. SPT_ENTRY_IN_USE internal static fixed bin(17,0) initial dcl 1-51 SPT_ENTRY_IN_USE_BUT_DELETED internal static fixed bin(17,0) initial dcl 1-51 SPT_ENTRY_NOT_IN_USE internal static fixed bin(17,0) initial dcl 1-51 fm_data_$sys_pn_tbl_name external static char(32) unaligned dcl 1-31 fm_data_$sys_pn_tbl_ptr external static pointer dcl 1-33 NAME DECLARED BY EXPLICIT CONTEXT. fm_per_system_init_ 000013 constant entry external dcl 25 THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION. STORAGE REQUIREMENTS FOR THIS PROGRAM. Object Text Link Symbol Defs Static Start 0 0 104 116 45 114 Length 304 45 12 151 37 0 BLOCK NAME STACK SIZE TYPE WHY NONQUICK/WHO SHARES STACK FRAME fm_per_system_init_ 80 external procedure is an external procedure. STORAGE FOR AUTOMATIC VARIABLES. STACK FRAME LOC IDENTIFIER BLOCK NAME fm_per_system_init_ 000100 seg_ptr fm_per_system_init_ 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. dm_per_system_$create NO EXTERNAL VARIABLES ARE USED BY THIS PROGRAM. CONSTANTS 000000 aa 162363353101 000001 aa 464000000000 000002 aa 524000000015 000003 aa 404000000043 000004 aa 146 155 137 163 fm_s 000005 aa 171 163 137 160 ys_p 000006 aa 156 137 164 142 n_tb 000007 aa 154 000 000 000 l BEGIN PROCEDURE fm_per_system_init_ ENTRY TO fm_per_system_init_ STATEMENT 1 ON LINE 25 fm_per_system_init_: proc (p_code); 000010 at 000001000003 000011 ta 000010000000 000012 da 000033300000 000013 aa 000120 6270 00 eax7 80 000014 aa 7 00034 3521 20 epp2 pr7|28,* 000015 aa 2 01045 2721 00 tsp2 pr2|549 ext_entry 000016 aa 000002000000 000017 aa 000000000000 STATEMENT 1 ON LINE 54 call dm_per_system_$create ("fm_sys_pn_tbl", seg_ptr); 000020 aa 777764 2370 04 ldaq -12,ic 000004 = 146155137163 171163137160 000021 aa 6 00102 7571 00 staq pr6|66 000022 aa 777764 2370 04 ldaq -12,ic 000006 = 156137164142 154000000000 000023 aa 6 00104 7571 00 staq pr6|68 000024 aa 6 00102 3521 00 epp2 pr6|66 000025 aa 6 00110 2521 00 spri2 pr6|72 000026 aa 6 00100 3521 00 epp2 pr6|64 seg_ptr 000027 aa 6 00112 2521 00 spri2 pr6|74 000030 aa 777752 3520 04 epp2 -22,ic 000002 = 524000000015 000031 aa 6 00114 2521 00 spri2 pr6|76 000032 aa 777747 3520 04 epp2 -25,ic 000001 = 464000000000 000033 aa 6 00116 2521 00 spri2 pr6|78 000034 aa 6 00106 6211 00 eax1 pr6|70 000035 aa 010000 4310 07 fld 4096,dl 000036 la 4 00010 3521 20 epp2 pr4|8,* dm_per_system_$create 000037 aa 0 00622 7001 00 tsx0 pr0|402 call_ext_out_desc STATEMENT 1 ON LINE 56 seg_ptr -> sys_pn_tbl.h.version = SYS_PN_TBL_VERSION_1; 000040 aa 777740 2350 04 lda -32,ic 000000 = 162363353101 000041 aa 6 00100 7551 20 sta pr6|64,* sys_pn_tbl.version STATEMENT 1 ON LINE 57 p_code = 0; 000042 aa 6 00032 3735 20 epp7 pr6|26,* 000043 aa 7 00002 4501 20 stz pr7|2,* p_code STATEMENT 1 ON LINE 59 return; 000044 aa 0 00631 7101 00 tra pr0|409 return STATEMENT 1 ON LINE 62 end fm_per_system_init_; END PROCEDURE fm_per_system_init_ ----------------------------------------------------------- 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