The PGFIX 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. PGFIX ignores requests to fix storage in a system area that has the fixed attribute (for example, the LSQA and SQA). A FIX request for a page in the LSQA or SQA will not cause the page to be backed by central storage below 16 megabytes. A subsequent PGFREE is effective only if issued by the same task. The PGFIX function is available only to authorized users.
PGFIX does not prevent pages from being paged out when an entire address space is swapped out of central storage. Consequently, when using the PGFIX macro, you cannot assume a constant real address mapping for fixed pages that are susceptible to swapping.
The standard form of the PGFIX macro is written as follows:
Syntax | Description |
---|---|
name | name: Symbol. Begin name in column 1. |
␢ | One or more blanks must precede PGFIX. |
PGFIX | |
␢ | One or more blanks must follow PGFIX. |
R | |
L | |
,LA=list addr | list addr: A-type address, or register (1) or (2) - (12). |
,A=start addr | start addr: A-type address, or register (1) or (2) - (12). |
,ECB=ecb addr | ecb addr: A-type address, or register (0) or (2) - (12). |
,EA=end addr | end addr: A-type address, or register (2) - (12) or (15). |
Default: start addr + 1 | |
,LONG=Y | Default: LONG=Y |
,LONG=N | |
,RELEASE=N | Default: RELEASE=N |
,RELEASE=Y | Note: RELEASE=Y may only be specified with EA above. |
,RELATED=value | value: Any valid macro keyword specification. |
The parameters are explained as follows:
When PGFIX macro returns control to your program, GPR 15 contains a hexadecimal return code.
Return Code | Meaning |
---|---|
00 | Meaning: Operation completed normally; ECB posted complete. |
04 | Meaning: Operation abnormally terminated with a X‘171’ abend. Operation incomplete because of invalid address virtual subarea list entry; ECB posted complete. See z/OS MVS System Codes for a complete description of the register contents after a X‘171’ abend. |
08 | Meaning: Operation proceeding; ECB will be posted when all requested pages are fixed in central storage. |
10 | Meaning: Operation abnormally terminated with a X‘171’ abend. Virtual subarea list entry or ECB address invalid; no ECB is posted. See z/OS MVS System Codes for a complete description of the register contents after a X‘171’ abend. |
The ECB code is posted in the low-order 3 bytes of the ECB, and is right-justified.
PGFIX R,A=(R3),ECB=(R5)
PGFIX R,A=(R3),EA=(R4),ECB=ECB1
PGFIX R,A=(R3),EA=(R4),ECB=(R5),LONG=N,RELEASE=Y