SVC 120 (0A78)
GETMAIN / FREEMAIN macro - is type 1, gets LOCAL lock.
Calls module IGVVSM31, entry point IGC120.
Note:
- SVC 120 can be used to GETMAIN storage whose address is above 16 M bytes.
- The interface provided by this macro can be called in either 24-bit or 31-bit addressing mode. All values and addresses will be treated as 31-bit values and addresses.
GTF data is:
- R15
- Bytes as follows:
0 Flags: X... .... RESERVED. .1.. .... KEY was specified. ..1. .... AR 15 is in use. ..0. .... AR 15 is not in use. ...1 .... LOC=(nnn,64) was specified. Storage can be backed above the bar..... 1... CHECKZERO=YES was specified. .... 0... CHECKZERO=NO was specified explicitly, or by default. .... .1.. TCBADDR was specified on STORAGE OBTAIN or RELEASE. .... ..00 OWNER=HOME was specified explicitly, or by default. .... ..01 OWNER=PRIMARY was specified. .... ..10 OWNER=SECONDARY was specified. .... ..11 OWNER=SYSTEM was specified. 1 Key of storage to be obtained/freed for subpools 229, 230, 231, 241, or 249 for a branch entry only. 2 Subpool number of storage to be obtained/freed. 3 Option byte: 0... .... Reserved - Ignored, should be zero. .1.. .... Storage can be backed anywhere. ..00 .... Storage should have residency of caller. ..01 .... Storage address must be 24 bits. ..11 .... Storage address valid to full 31 bits. .... 1... Request is variable. .... .1.. Storage should be on page boundary. .... ..1. Request is unconditional. .... ...1 Request is a FREEMAIN. - R0
- The number of bytes of storage to be obtained or freed (Zero for a subpool FREEMAIN).
- R1
- The address of the area to be freed (Zero for GETMAIN requests).
Register contents on return:
- R1
- Address of the allocated virtual storage area if the request was for a GETMAIN.
- R15
- 00 - Storage available if the request was for a GETMAIN; storage
freed if the request was for a FREEMAIN.
04 - Storage not available if request was for a GETMAIN; storage status unchanged if request was for a FREEMAIN.