The PGFIXA macro makes virtual storage areas, below 16 megabytes, resident in central (also called real) storage and ineligible for page-out while the requesting task's address space is swapped into central storage. The PGFIXA function is available only to key zero and supervisor state users. The PGFIXA macro executes short-term, synchronous page fixes. The preferred area(s) of storage are intended for long term page fixes. A long term page fix in the V=R or nonpreferred areas may delay V=R functions or CONFIG STORAGE commands. All fix processing is assumed to be short-term and is complete when control is returned to the issuer of the macro.
PGFIXA does not prevent pages from being paged out when an entire address space is swapped out of central storage. Consequently, when using the PGFIXA macro, you cannot assume a constant real address mapping for fixed pages that are susceptible to swapping.
If the PGFIXA is successful, control is returned enabled to the user, all pages are fixed, and register 15 contains a return code of zero.
If the PGFIXA is unsuccessful, the user will be abended with a system completion code of X‘171’ or a system complete code of X‘028’. For X‘171’ abends, all pages processed up to, but not including the page causing the error, will be fixed. Register 10 will contain the address of the pages in error when the abend is issued. No pages will be fixed in the event of a X‘028’ abend.
The standard form of the PGFIXA macro is written as follows:
Syntax | Description |
---|---|
name | name: Symbol. Begin name in column 1. |
␢ | One or more blanks must precede PGFIXA. |
PGFIXA | |
␢ | One or more blanks must follow PGFIXA. |
,TYPE=L | |
,TYPE=R | Default: TYPE=R |
,SAVE=YES | Default: SAVE=YES |
,SAVE=NO | |
The parameters are explained as follows:
FIX1 PGFIXA TYPE=R,SAVE=NO
FIX2 PGFIXA TYPE=L