1 /*  START OF:       io_page_tables.incl.pl1                   *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */
 2 
 3 
 4 
 5 
 6 /****^  HISTORY COMMENTS:
 7   1) change(2022-10-29,Swenson), approve(2022-10-29,MCR10124),
 8      audit(2022-10-29,None), install(2022-10-29,MR12.8-1046):
 9      Fixed typo in comment. io_page_table.pl1 should be ioi_page_table.pl1.
10                                                    END HISTORY COMMENTS */
11 
12 
13 
14 /* Definition of the I/O page table segment.  For details of how this is manipulated, see ioi_page_table.pl1. */
15 /* Written April 1983 by Chris Jones */
16 /* Modified 1985-01-02, BIM: removed include of hc_lock. */
17 
18 /* format: style4,delnl,insnl,indattr,ifthen,dclind10 */
19 dcl       io_page_table_seg$     external;
20 
21 dcl       io_page_table_seg_ptr  ptr;
22 
23 dcl       1 io_page_tables       aligned based (io_page_table_seg_ptr),
24             2 lock               like hc_fast_lock,         /* (0) standard fast lock */
25             2 free_64_ptx        fixed bin (9) unsigned unaligned,
26                                                             /* (3) index of first free 64 word pt */
27             2 free_256_ptx       fixed bin (9) unsigned unaligned,
28                                                             /* (3) pointer to first free 256 word pt */
29             2 n_pages_wired      fixed bin (9) unsigned unaligned,
30                                                             /* (3) how many pages are in use now */
31             2 pad1               bit (9) unaligned,
32             2 pt_info            (5:256),                   /* (4) one for each page table */
33               3 size             bit (1) unaligned,
34               3 in_use           bit (1) unaligned,
35               3 pad1             bit (25) unaligned,
36               3 next_pt          fixed bin (9) unsigned unaligned;
37 
38 /* This include file requires hc_fast_lock.incl.pl1 */
39 
40 dcl       ioptp                  ptr;
41 dcl       io_page_table_size     fixed bin;
42 
43 dcl       1 page_table           (0:io_page_table_size - 1) aligned based (ioptp),
44             2 ptw                like io_ptw;
45 
46 %include io_ptw;
47 
48 dcl       IO_PAGE_TABLE_LOCK_EVENT
49                                  char (4) static options (constant) init ("iopt");
50 dcl       MAX_IO_PAGE_TABLE_SEG_PAGES
51                                  fixed bin (9) static options (constant) init (16);
52 dcl       PT_64_SIZE             bit (1) static options (constant) init ("0"b);
53 dcl       PT_256_SIZE            bit (1) static options (constant) init ("1"b);
54 dcl       PTS_PER_PAGE           fixed bin static options (constant) init (16);
55 dcl       SMALL_PT_SIZE          fixed bin (19) static options (constant) init (65536);
56 
57 /*  END OF:         io_page_tables.incl.pl1                   *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  */