1 /* BEGIN INCLUDE FILE dm_fm_sys_pn_tbl.incl.pl1 */ 2 3 /* DESCRIPTION: 4 This include file contains the sys_pn_tbl structure, the 5 file_manager_'s System Pathname Table. Each file which can possibly 6 have a before image current must have an entry in this table. Every 7 time this table is modified it is force-written to disk, as its 8 correct contents are necessary for rolling back transactions by a 9 process other than the process which originally owned the transaction. 10 When an entry is inserted, it is force-written twice: the first time with 11 the entry filled in but with the "in_use" element set to indicate that the 12 entry is not yet in use; the second time with the "in_use" element set 13 to indicate that the entry is in use. This is done to avoid the possibility 14 of a failure while the entry is being written which could successfully 15 write the "in_use" but not all of the rest of the entry. "in_use" can have 16 one of three values: 0 - not in use; -1 - in use ; +1 - in use but the 17 file has been deleted. 18 */ 19 20 /* HISTORY: 21 Written by Jeffrey D. Ives, 10/11/82. 22 (Design by Andre Bensoussan and Jeffrey Ives.) 23 Modified: 24 10/30/84 by Matthew Pierret: Added DESCRIPTION and HISTORY sections, 25 *_IN_USE constants. Changed thread to in_use, pfuid to file_uid, 26 fsuid to file_system_uid. 27 */ 28 29 /* format: style2,ind3 */ 30 31 dcl fm_data_$sys_pn_tbl_name 32 char (32) ext; 33 dcl fm_data_$sys_pn_tbl_ptr 34 ptr ext; 35 36 dcl 1 sys_pn_tbl aligned based (fm_data_$sys_pn_tbl_ptr), 37 2 h, 38 3 version bit (36), 39 3 last_entry fixed bin, 40 3 lock fixed bin (71), 41 3 mbz (30) fixed bin (71), 42 2 e (4096), 43 3 in_use fixed bin, 44 3 open_count fixed bin, 45 3 file_uid bit (36), 46 3 file_system_uid bit (36), 47 2 paths (4096) char (168) unal; 48 49 dcl SYS_PN_TBL_VERSION_1 bit (36) aligned static options (constant) init ("162363353101"b3); 50 51 dcl ( 52 SPT_ENTRY_IN_USE init (-1), 53 SPT_ENTRY_IN_USE_BUT_DELETED 54 init (1), 55 SPT_ENTRY_NOT_IN_USE init (0) 56 ) fixed bin internal static options (constant); 57 58 /* END INCLUDE FILE dm_fm_sys_pn_tbl.incl.pl1 */