/* BEGIN INCLUDE FILE: dm_fm_file_access_info.incl.pl1 */ /* DESCRIPTION: The file_access_info structure contains per-process information about a DM file. Each file_access_info structure is one entry in the file_access_table.e array. The entry can be in one of three states: not-in-use (file_access_info.entry_state is 0), in-use (entry_state is -1) or still in-use, but to be discarded at the end of the transaction (any number > 0). An entry needs to be discarded when the file is completely closed by the user. This last state is useful because it is better not to discard the entry when it is completely closed until the end of the current transaction, so that if the transaction is aborted, the file need not be re-opened to apply the before images. A list of entries to be discarded is maintained using the entry_state variable. The file can be in one of three states: exists (file_state = 1), does not exist (file_state = 0), and logically_deleted (file_state = 3). */ /* HISTORY: Written by Jeffrey D. Ives, 10/11/82. (Original design by Andre Bensoussan, 01/28/82.) Modified: 10/05/83 Jeffrey D. Ives: Added fields for lock advice and expanded seg_nums. 07/12/84 by Matthew Pierret: Re-named proc_ad to file_access_info. 12/17/84 by Matthew Pierret: Changed post_transaction_actions sub-structure to state, with entry_state (replacing thread) and the new file_state. Added a DESCRIPTION section. Added constants for possible file_state values. */ /* format: style2,^inddcls,dclind5 */ dcl 1 file_access_info aligned based (file_access_info_ptr), 2 state aligned, 3 entry_state fixed bin (17) unal, 3 file_state fixed bin (17) unal, 2 uid bit (36), 2 blocking_factor fixed bin (17) unal, 2 ring_brackets unal, 3 write fixed bin (3) unsigned unal, 3 read fixed bin (3) unsigned unal, 3 mbz_rb fixed bin (3) unsigned unal, 2 integrity_switches unal, 3 record_time_modified bit (1) unal, /* record time modified in ci_header and trailer */ 3 transaction bit (1) unal, /* permit access only during a transaction */ 3 lock bit (1) unal, /* lock control intervals before accessing them */ 3 bj bit (1) unal, /* put undo records in the before journal */ 3 aj bit (1) unal, /* put redo records in the after journal */ 3 mbz_is bit (4) unal, 2 last_transaction_id bit (36), 2 msf_ptr ptr unal, 2 pn_tbl_idx fixed bin (17) unal, 2 lock_advice fixed bin (17) unal, 2 opens fixed bin (17) unal, 2 seg_0_num bit (18) unal, 2 seg_nums (27) fixed bin (12) uns unal; dcl file_access_info_ptr ptr init (null ()); dcl ( FILE_ACCESS_INFO_IN_USE init (-1), FILE_ACCESS_INFO_NOT_IN_USE init (0), FILE_DOES_NOT_EXIST init (0), FILE_EXISTS init (1), FILE_LOGICALLY_DELETED init (3) ) fixed bin internal static options (constant); /* END INCLUDE FILE: dm_fm_file_access_info.incl.pl1 */ */ ----------------------------------------------------------- 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 */