1 /*  BEGIN INCLUDE FILE:       dm_bj_ppt.incl.pl1  */
 2 /*
 3 Layout of the per-process before journal table and entries.
 4 
 5 Written by Andre Bensoussan June/July 1982
 6 Modified:
 7 09/29/82 by Lee A. Newcomb:  To make two default oid cells, pad ppte's
 8             to account for all used space, and use dm_system_data_ for
 9             determining dimension of bj_ppt.e.
10 */
11 /* format: style4,indattr,idind33,^indcomtxt */
12 
13 dcl  BJ_PPT_VERSION_1                 fixed bin int static options (constant) init (1);
14 dcl  BJ_PPTE_VERSION_1                fixed bin int static options (constant) init (1);
15 
16 dcl  bj_ppt_ptr                       ptr;
17 
18 dcl  1 bj_ppt                         based (bj_ppt_ptr) aligned,
19        2 version                      fixed bin,
20        2 max_n_entries                fixed bin,            /* should be = dm_system_data_$bj_max_n_journals */
21        2 n_entries_used               fixed bin,            /* # of BJs open in this process */
22        2 highest_ix_used              fixed bin,            /* max. # of BJs ever opened in this process */
23        2 default_bj,                                        /* for selecting a txn def. BJ by write_before_mark protocol */
24          3 user_set_oid               bit (36),             /* explicit user setting via $set_default_bj */
25          3 last_opened_oid            bit (36),             /* implicit if no user setting, set by open and close */
26                                                             /* if both zero, use system default BJ */
27        2 process_id                   bit (36),             /* so we don't have to keep calling for it. */
28        2 process_ix                   fixed bin,            /* index into bj_check_in_table */
29        2 mod_list_area                (100) fixed bin (35), /* for keeping track of ppt mods, not curr. used */
30 
31        2 e                            dim (dm_system_data_$bj_max_n_journals refer (bj_ppt.max_n_entries))
32                                       like bj_ppte;         /* an entry for each BJ open in this process */
33                                                             /* always make sure bj_ppt.e is on a even word boundary */
34 
35 /* now specify the format of each per-process BJ table entry */
36 
37 dcl  bj_ppte_ptr                      ptr;
38 
39 dcl  1 bj_ppte                        based (bj_ppte_ptr) aligned,
40        2 version                      fixed bin,            /* better be the same for all entries in a bj_ppt */
41        2 bj_uid                       bit (36),             /* UID of the BJ page file */
42        2 pf_oid                       bit (36),             /* OID of the BJ page file */
43        2 n_opening                    fixed bin,            /* how many openings this process has done for this BJ */
44        2 bj_pste_ptr                  ptr,                  /* "link" to per-system BJ table entry */
45        2 open_time                    fixed bin (71);       /* used to fill in bj_ppt.default_bj.last_opened_oid */
46                                                             /* if the last opened BJ is closed */
47 
48 /* END INCLUDE FILE:          bj_ppt.incl.pl1     */