*COPY CORE 00001000 PUSH PRINT 00001200 AIF ('&SYSPARM' NE 'SUP').COR01 00001400 PRINT OFF,NOGEN 00001600 .COR01 ANOP 00001800 CORTABLE DSECT 00002000 SPACE 1 00003000 *** CORTABLE - REAL STORAGE ALLOCATION TABLE 00004000 * 00005000 * 0 +-----------------------+-----------------------+ 00006000 * | CORFPNT | CORBPNT | 00007000 * 8 +-----+-----------------+-----------------------+ 00008000 * | C*1 | CORSWPNT | CORPGPNT | 00009000 * 10 +-----+-----------------+-----------------------+ 00010000 * 00011000 *** CORTABLE - REAL STORAGE ALLOCATION TABLE 00012000 SPACE 1 00023000 CORFPNT DS 1F POINTER TO NEXT CORTABLE ENTRY IN QUEUE 00024000 CORBPNT DS 1F POINTER TO PREVIOUS ENTRY IN QUEUE 00025000 CORSWPNT DS 1F POINTER TO SWAPTABLE FOR PAGE 00026000 CORPGPNT DS 1F POINTER TO PAGTABLE FOR PAGE 00027000 SPACE 1 00028000 ORG CORSWPNT 00029000 CORFLAG DS 1X C*1 CORTABLE ENTRY STATUS FLAGS 00030000 SPACE 1 00031000 * ENTRY DEFINITION IF PAGE IS LOCKED 00032000 ORG CORBPNT 00033000 CORLCNT DS 1F PAGE LOCK COUNT FOR CORIOLCK 00034000 SPACE 1 00035000 * ENTRY DEFINITION IF PAGE IS IN TRANSIT 00036000 ORG CORFLAG 00037000 CORCODE DS 1X C*1 DASD OP-CODE FOR DMKPAGIO 00038000 SPACE 1 00039000 * BITS DEFINED IN CORFLAG 00040000 CORIOLCK EQU X'80' PAGE LOCKED FOR IO - CORLCNT GT ZERO 00041000 CORCFLCK EQU X'40' PAGE LOCKED BY CONSOLE FUNCTION 00042000 CORFLUSH EQU X'20' PAGE IS IN FLUSH LIST 00043000 CORFREE EQU X'10' PAGE IS IN FREE LIST 00044000 CORSHARE EQU X'08' PAGE IS SHARED 00045000 CORRSV EQU X'04' PAGE IS RESERVED 00046000 CORCP EQU X'02' PAGE BELONGS TO CP 00047000 CORDISA EQU X'01' PAGE DISABLED - NOT AVAILABLE 00048000 * ENTRY DEFINITION FOR PAGE OWNERSHIP @V407511 00048100 ORG CORFPNT @V407511 00048200 CORVM DS 1F POINTER TO VMBLOK OF PAGE OWNER @V407511 00048300 EJECT 00049000 SWPTABLE DSECT 00050000 SPACE 1 00051000 *** SWPTABLE - SWAP TABLE FOR VIRTUAL MACHINE PAGING 00052000 * 00053000 * -8 +-----------------------+-----------------------+ 00054000 * | SWPVM |S*7| SWPPAG | 00055000 * 0 +-----------------------+-----------------------+ 00056000 * | S*1 | S*2 | S*3 | S*4 | SWPCYL | S*5 | S*6 | 00057000 * 8 +-----------------------+-----------------------+ 00058000 * | | | | | | | | 00059000 * +-----+-----+-----+-----+-----------+-----+-----+ 00060000 * | | | | | | | | 00061000 * +-----+-----+-----+-----+-----------+-----+-----+ 00062000 * 00063000 *** SWPTABLE - SWAP TABLE FOR VIRTUAL MACHINE PAGING 00064000 SPACE 1 00069000 SWPVM DS 1F POINTER TO VMBLOK 00070000 SWPFLAG2 DS 1X S*7 SWAP TABLE FLAG2 BITS @V407511 00070100 ORG SWPFLAG2 @V407511 00070200 SWPPAG DS 1F POINTER TO PAGTABLE 00071000 SWPFLAG DS 1X S*1 SWAP TABLE FLAG BITS 00072000 SWPVPAGE DS 1X S*2 VIRTUAL PAGE NUMBER WITHIN SEGMENT 00073000 SWPKEY1 DS 1X S*3 VIRTUAL STORAGE KEY, 1ST 2048 BYTES 00074000 SWPKEY2 DS 1X S*4 VIRTUAL STORAGE KEY, 2ND 2048 BYTES 00075000 SWPCYL DS 1H DASD CYLINDER ADDRESS 00076000 SWPDPAGE DS 1X S*5 DASD PAGE NUMBER ON CYLINDER 00077000 SWPCODE DS 1X S*6 RDEVBLOK DEVICE CODE 00078000 SPACE 1 00079000 * BITS DEFINED IN SWPFLAG 00080000 SWPTRANS EQU X'80' PAGE IN TRANSIT 00081000 SWPRECMP EQU X'40' PAGE PERMANENTLY ASSIGNED 00082000 SWPALLOC EQU X'20' PAGE ENQUEUED FOR ALLOCATION 00083000 SWPSHR EQU X'10' PAGE SHARED 00084000 SWPREF1 EQU X'08' FIRST HALF PAGE REFERENCED 00085000 SWPCHG1 EQU X'04' FIRST HALF PAGE CHANGED 00086000 SWPREF2 EQU X'02' SECOND HALF PAGE REFERENCED 00087000 SWPCHG2 EQU X'01' SECOND HALF PAGE CHANGED 00088000 SPACE 00088100 * BITS DEFINED IN SWPFLAG2 @V407511 00088200 SWPAPP EQU X'80' ATTACHED PROCESSORS SHARED @V407511 00088300 * PAGE AND SWAP TABLES @V407511 00088400 EJECT 00089000 SEGTABLE DSECT 00090000 SPACE 1 00091000 *** SEGTABLE - TRANSLATION SEGMENT TABLE 00092000 * 00093000 * 0 +-----+-----------------+-----+-----------------+ 00094000 * | S*1 | SEGPAGE | | | 00095000 * 8 +-----+-----------------+-----+-----------------+ 00096000 * | | | | | 00097000 * +-----+-----------------+-----+-----------------+ 00098000 * | | | | | 00099000 * +-----+-----------------+-----+-----------------+ 00100000 * 00101000 *** SEGTABLE - TRANSLATION SEGMENT TABLE 00102000 SPACE 1 00107000 SEGPAGE DS 1F POINTER TO PAGE TABLE - PAGTABLE 00108000 SPACE 1 00109000 ORG SEGPAGE 00111000 SEGPLEN DS BL.4 S*1 PAGE TABLE LENGTH (NO. PAGES - 1) 00112000 SPACE 00114000 * BITS DEFINED IN SEGPAGE+3 00114100 SEGINV EQU X'01' SEGMENT INVALID FLAG @V408246 00114200 SEGMIG EQU X'10' SEGMENT MIGRATED (IF POINTER = 0)@V408246 00114300 SEGENQ EQU X'40' SEGMENT ENQUEUED (IF POINTER = 0)@V408246 00114400 PAGTABLE DSECT 00115000 SPACE 1 00116000 *** PAGTABLE - TRANSLATION PAGE TABLE 00117000 * 00118000 * -10 +-----------------------+-----------------------+ 00118100 * | PAGSTMP | PAGACT | PAGTOT | 00118200 * -8 +-----------------------+-----------------------+ 00119000 * | PAGSHR | PAGSWP | 00120100 * 0 +-----------------------+-----------------------+ 00121000 * | PAGCORE | | | | 00122000 * +-----------+-----------+-----------+-----------+ 00123000 * | | | | | 00124000 * +-----------+-----------+-----------+-----------+ 00125000 * 00126000 *** PAGTABLE - TRANSLATION PAGE TABLE 00127000 SPACE 1 00136000 PAGSTMP DS F PAGE TABLE TIME STAMP @V408246 00136100 PAGACT DS H COUNT OF ACTIVE STE'S FOR THIS @V408246 00136200 * SEG. 00136300 PAGTOT DS H COUNT OF TOTAL STE'S FOR THIS @V408246 00136400 * SEG. 00136500 PAGSHR DS 1F POINTER TO NAME TABLE (SHRTABLE) 00137100 PAGSWP DS 1F POINTER TO SWPTABLE 00138000 PAGCORE DS 1H REAL PAGE ADDRESS 00139000 SPACE 1 00140000 * BITS DEFINED IN PAGCORE+1 00141000 PAGINVAL EQU X'08' PAGTABLE ENTRY INVALID 00142000 PAGREF EQU X'01' PAGE HAS BEEN REFERENCED 00143000 SPACE 00143100 * EQUATES USED IN AP SUPPORT FOR SHARED SEGMENTS @V407511 00143200 PAGTSWP EQU (PAGCORE-PAGSTMP+16*L'PAGCORE) LENGTH OF A @V407511 00143300 * FULL 16 ENTRY PAGE TABLE @V407511 00143400 PAGBMP EQU (PAGTSWP+(SWPFLAG-SWPVM)+16*(SWPCODE-SWPFLAG+1)+8) @V407511 00143500 * LENGTH OF A CONTIGUOUS PAGE AND @V407511 00143600 * SWAP TABLE @V407511 00143700 EJECT 00144000 POP PRINT 00145000 SPACE 00146000