REQUEST=GETSTOR option of IARV64

REQUEST=GETSTOR allows you to create a memory object. To avoid an abend for exceeding MEMLIMIT, specify the COND=YES parameter.

Environment

The requirements for the caller are:

Environmental factor Requirement
Minimum authorization: Supervisor state or with PSW key 0-7.
To use the PAGEFRAMESIZE parameter, a caller can be in problem state with either one of the following authorizations:
  • APF-authorized
  • Authorized for read to IARRSM.LRGPAGES
Dispatchable unit mode: Task or SRB
Cross memory mode: Any PASN, any HASN, any SASN
Note: The problem state caller running in PSW key 8-15 can use GETSTOR/DETACH only when the primary address space is the home address space.
AMODE: 31- or 64-bit
ASC mode: Primary or access register (AR)
Interrupt status:
  • Enabled for I/O and external interrupts.
  • Disabled for 64-bit common memory objects allocated with TYPE=DREF.
  • Disabled for TYPE=PAGEABLE and the storage is in the first reference state.
Locks: A local lock may be held, subject to the following limitation:

When a local lock is held for a request (GETSTOR, SHAREMEMOBJ, DETACH, CHANGEGUARD, or DISCARDDATA) the lock must be for the address space specified or set as the default by the input ALETVALUE.

Control parameters: Control parameters must be in the primary address space and can reside both below and above the bar.

Programming requirements

None

Restrictions

This macro supports multiple versions. Some keywords are unique to certain versions. See PLISTVER parameter description.

Input register information

Before issuing the IARV64 macro, the caller does not have to place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.

Output register information

When control returns to the caller, the GPRs contain:
Register
Contents
0
Reason code, if GPR 15 is non-zero
1
Used as a work register by the system
2-13
Unchanged
14
Used as a work register by the system
15
Return code
When control returns to the caller, the ARs contain:
Register
Contents
0-1
Used as work registers by the system
2-13
Unchanged
14-15
Used as work registers by the system

Some callers depend on register contents remaining the same before and after issuing a service. If the system changes the contents of registers on which the caller depends, the caller must save them before issuing the service, and restore them after the system returns control.

Performance implications

None

Syntax

The REQUEST=GETSTOR option of the IARV64 macro is written as follows:

Syntax Description
   
   name name: symbol. Begin name in column 1.
   
One or more blanks must precede IARV64.
   
IARV64  
   
One or more blanks must follow IARV64.
   
REQUEST=GETSTOR  
   
  ,COND=NO Default: COND=NO
  ,COND=YES  
   

  ,LOCALSYSAREA=NO

Default: LOCALSYSAREA=NO

  ,LOCALSYSAREA=YES

 
   
  ,SEGMENTS='segments' segments: RS-type address or address in register (2) - (12).
    ,TYPE=DREF  
    ,TYPE=PAGEABLE Default: TYPE=PAGEABLE when one of the following is specified:
  • PAGEFRAMESIZE=PAGEABLE1MEG
  • PAGEFRAMESIZE=4K
  • PAGEFRAMESIZE=MAX and the memory object is backed with 4 KB-page frames.
When PAGEFRAMESIZE=DREF1MEG is specified, the default value is TYPE=DREF. If PAGEFRAMESIZE=1MEG or PAGEFRAMESIZE=MAX is specified and the memory object is backed with 1 MB-page frames, the 1 MB-pages backing this memory object are fixed.
    ,PAGEFRAMESIZE=4K Default: PAGEFRAMESIZE=4K
    ,PAGEFRAMESIZE=1MEG  
    ,PAGEFRAMESIZE=MAX  
    ,PAGEFRAMESIZE=PAGEABLE1MEG  
    ,PAGEFRAMESIZE=DREF1MEG  
   
  ,UNITS=units units: Size of the memory object, which is the number of units specified by UNITSIZE.
    ,UNITSIZE=1M Specifies a 1 MB unit size.
      ,PAGEFRAMESIZE=4K|1M If UNITSIZE=1M is specified, a PAGEFRAMESIZE of 4K or 1M must be specified. There is no default value.
    ,UNITSIZE=2G Specifies a 2 GB unit size.
      ,PAGEFRAMESIZE=4K|1M|2G If UNITSIZE=2G is specified, a PAGEFRAMESIZE of 4K, 1M or 2G must be specified. There is no default value.
    ,TYPE=FIXED  
    ,TYPE=DREF  
    ,TYPE=PAGEABLE  
   
  ,KEY=key key: RS-type address or address in register (2) - (12).
  ,KEY=CALLERKEY Default: KEY=CALLERKEY
   
  ,FPROT=YES Default: FPROT=YES
  ,FPROT=NO  
   
  ,MEMLIMIT=NO Default: MEMLIMIT=YES
  ,MEMLIMIT=YES  
   
   
  ,SVCDUMPRGN=YES Default: SVCDUMPRGN=YES
  ,SVCDUMPRGN=NO  
   
  ,DUMP=LIKERGN Default: DUMP=LIKERGN

   ,DUMPPRIORITY=99

Default: DUMPPRIORITY=99

   ,DUMPPRIORITY=dumppriority

 
  ,DUMP=LIKELSQA  
  ,DUMP=NO  
  ,DUMP=BYOPTIONVALUE  
    ,OPTIONVALUE=option option: RS-type address or address in register (2) - (12).
   
  ,CONTROL=UNAUTH Default: CONTROL=UNAUTH
  ,CONTROL=AUTH  
   
  ,MOTKNSOURCE=USER Default: MOTKNSOURCE=USER

   ,MOTKN=motkn

Default: MOTKN

    ,MOTKNCREATOR=USER

Default: MOTKNCREATOR=USER

    ,MOTKNCREATOR=SYSTEM

 

     ,USERTKN=NO_USERTKN

Default: USERTKN=NO_USERTKN

     ,USERTKN=usertkn

usertkn: RS-type address or address in register (2) - (12).
  ,MOTKNSOURCE=SYSTEM  

     ,OUTMOTKN=outmotkn

Outmotkn: RS-type address or address in register (2) - (12).
  ,USERTKN=usertkn usertkn: RS-type address or address in register (2) - (12).
  ,USERTKN=NO_USERTKN Default: USERTKN=NO_USERTKN
   
  ,GUARDSIZE=guardsize guardsize: RS-type address or address in register (2) - (12).
  ,GUARDSIZE=0 Default: GUARDSIZE=0
  ,GUARDSIZE64=guardsize64 guardsize64: RS-type address or address in register (2) - (12).
  ,GUARDSIZE64=0 Default: GUARDSIZE64=0
   
  ,GUARDLOC=LOW Default: GUARDLOC=LOW
  ,GUARDLOC=HIGH  
   
  ,TTOKEN=ttoken ttoken: RS-type address or address in register (2) - (12).
  ,TTOKEN=NO_TTOKEN Default: TTOKEN=NO_TTOKEN
   
  ,ALETVALUE=aletvalue aletvalue: RS-type address or address in register (2) - (12).
  ,ALETVALUE=0 Default: ALETVALUE=0
   
  ,ORIGIN=origin origin: RS-type address or address in register (2) - (12).
   
  ,DETACHFIXED=NO Default: DETACHFIXED=NO
  ,DETACHFIXED=YES  
   
  ,RETCODE=retcode retcode: RS-type address or register (2) - (12).
   
  ,RSNCODE=rsncode rsncode: RS-type address or register (2) - (12).
   
  ,PLISTVER=IMPLIED_VERSION Default: PLISTVER=IMPLIED_VERSION
  ,PLISTVER=MAX  
  ,PLISTVER=0, 1, 2, 3, 4,5  
   
  ,MF=S Default: MF=S
  ,MF=(L,list addr) list addr: RS-type address or register (1) - (12).
  ,MF=(L,list addr,attr)  
  ,MF=(L,list addr,0D)  
  ,MF=(E,list addr)  
  ,MF=(E,list addr,COMPLETE)  
   

Parameters

The parameters are explained as follows:

name
An optional symbol, starting in column 1, that is the name on the IARV64 macro invocation. The name must conform to the rules for an ordinary assembler language symbol.
REQUEST=GETSTOR
A required parameter. REQUEST=GETSTOR creates a private memory object if LOCALSYSAREA=YES is not specified. If LOCALSYSAREA=YES is specified, then a system memory object is returned. The storage obtained in the system area using the LOCALSYSAREA keyword will not be copied during Fork processing. The use of local system area storage does not preclude checkpoint from succeeding. At completion, the memory object is created in the address space you indicate.
,COND=NO
,COND=YES
An optional input parameter that specifies whether the request is unconditional or conditional. If you code COND=YES and there is insufficient storage to satisfy the request, instead of the request being abnormally ended, the request will complete, but a return code will be set to indicate that the request could not be completed successfully. In all cases, the request will be abnormally ended for invalid requests, including violation of environmental restrictions. The default is COND=NO.
,COND=NO
The request is unconditional. The request is abnormally ended when the request cannot be satisfied.
,COND=YES
The request is conditional. The request is not abnormally ended for resource unavailability.
,LOCALSYSAREA=NO
,LOCALSYSAREA=YES
An optional input parameter that specifies whether this is an explicit allocation request for 64-bit virtual storage in local system area. The localsysarea parameter can be used only by callers running in supervisor state or with a PSW key 0-7. The default is LOCALSYSAREA= NO.
,LOCALSYSAREA=NO
The request will not be satisfied from the local system area.
,LOCALSYSAREA=YES
The request is to be satisfied from the local system area. The storage obtained with this keyword will not be copied during Fork processing. The use of local system area storage does not preclude checkpoint from succeeding.
,KEY=key
,KEY=CALLERKEY
An optional input parameter that specifies the storage key to be assigned to the memory object. The key must be in bits 0-3 of the specified byte. Bits 4-7 are ignored. The KEY parameter can be used only by callers running in supervisor state or with a PSW key 0-7; with the following exception: a PSW key 8 caller can specify a storage key of the memory object to be key 9.

If the key is not specified, the storage key of the memory object is the same as the caller's PSW key. The default is CALLERKEY.

To code: Specify the RS-type address, or address in register (2)-(12), of a one-byte field.

,FPROT=YES
,FPROT=NO
An optional input parameter that specifies whether the memory object should be fetch-protected. The default is FPROT=YES.
,FPROT=YES
The entire memory object is fetch-protected. A program must have a PSW key that matches the storage key of the memory object (or have PSW key 0) to reference data in the memory object.
,FPROT=NO
The memory object is not fetch-protected.
,MEMLIMIT=YES
,MEMLIMIT=NO
An optional input parameter that specified whether the allocation of the 64-bit memory object is to count towards the address space MEMLIMIT. The default is MEMLIMIT=YES.
,MEMLIMIT=YES
The 64-bit private memory object contributes towards the address space MEMLIMIT.
,MEMLIMIT=NO
The 64-bit private memory object is not counted against the address space MEMLIMIT. MEMLIMIT=NO can only be specified by authorized callers in supervisor state or key 0-7.
,SEGMENTS=segments

SEGMENTS and UNITS are mutually exclusive keys. This set is required; only one key can be specified.

A required input parameter that specifies the size of the memory object requested, in megabytes. This must be a nonzero value. The amount of storage requested that is not in the guard state is charged against the MEMLIMIT for the address space where the memory object is to be created.

To code: Specify the RS-type address, or address in register (2)-(12), of a doubleword field.

,PAGEFRAMESIZE=4K
,PAGEFRAMESIZE=1MEG
,PAGEFRAMESIZE=MAX
,PAGEFRAMESIZE=PAGEABLE1MEG
,PAGEFRAMESIZE=DREF1MEG
An optional input parameter that specifies the size of the page frames to back the virtual storage mapped by the allocated memory object.
,PAGEFRAMESIZE=4K
The memory object is backed by 4 KB-page frames, if available. This is the default value.
,PAGEFRAMESIZE=1MEG
The memory object is backed by 1 MB-page frames, if available.
,PAGEFRAMESIZE=MAX
The memory object is backed by the largest page frame size that is supported and available. Otherwise, the object is backed by 4 KB-page frames. 1 MB-page frames are backed at allocation and cannot be paged out to AUX. 4 KB-page frames are backed at first reference and can be paged out to AUX as long as TYPE=DREF is not specified.
,PAGEFRAMESIZE=PAGEABLE1MEG
The memory object is backed by pageable 1 MB-page frames at first reference, unless none are available. If none are available, the object is backed by 4 KB-page frames.
,PAGEFRAMESIZE=DREF1MEG
The memory object is backed by Dref 1 MB-page frames at first reference, unless none are available. If none are available, the object is backed by 4 KB-page frames.
,TYPE=PAGEABLE
,TYPE=DREF
An optional input parameter that specifies the type of storage that is requested. The default value is TYPE=PAGEABLE when one of the following parameters is specified:
  • PAGEFRAMESIZE=4K
  • PAGEFRAMESIZE=PAGEABLE1MEG
  • PAGEFRAMESIZE=MAX and the memory object is backed with 4 KB-page frames.

The default value is TYPE=DREF when PAGEFRAMESIZE=DREF1MEG is specified. If PAGEFRAMESIZE=1MEG or PAGEFRAMESIZE=MAX is specified and the memory object is backed with 1 MB-page frames, the 1 MB-pages backing this memory object are fixed.

Note:
  1. When the memory object is backed by 4 KB-page frames, the 4 KB-pages backing this memory object are pageable if TYPE=DREF is not specified, or are fixed if TYPE=DREF is specified. The 4 KB-pages are backed at first reference and can only be paged out to AUX if TYPE=DREF is not specified.
  2. When the memory object is backed by 1 MB-page frames as a result of PAGEFRAMESIZE=PAGEABLE1MEG or PAGEFRAMESIZE=DREF1MEG being specified, the 1 MB-pages backing this memory object are pageable if PAGEABLE1MEG is specified or fixed if DREF1MEG is specified. Pageable 1 MB-pages are backed at first reference and can be paged out to AUX. DREF 1 MB-pages are backed at first reference and are fixed—they cannot be paged out to AUX.
  3. When the memory object is backed by 1 MB-page frames because PAGEFRAMESIZE=1MEG or PAGEFRAMSIZE=MAX has been specified, the 1 MB-pages backing this memory object are fixed. Pages are backed at allocation time and cannot be paged out to AUX.
,UNITS=units

UNITS and SEGMENTS are mutually exclusive keys. This set is required; only one key can be specified.

A required input parameter that specifies the size of the memory object as a number of units specified by the UNITSIZE parameter. This must be a nonzero value. The amount of storage requested that is not in the guard state is counted towards the MEMLIMIT for the address space where the memory object will be created. UNITS belongs to a set of mutually exclusive keys. This set is required; only one key can be specified.

,TYPE=PAGEABLE
,TYPE=DREF
,TYPE=FIXED
A required input parameter that specifies the type of requested storage.
,TYPE=PAGEABLE
Pages backing this memory object are pageable. Pages are backed at first reference and can be paged out to auxiliary storage. Virtual address ranges within the memory object can be explicitly fixed after allocation by using the IARV64 REQUEST=PAGEFIX request. TYPE=PAGEABLE is not valid with PAGEFRAMESIZE=2G.
,TYPE=DREF
Pages are backed in real memory at first reference, unless DREF storage is not available, in which case the program is ABENDed. Once backed, pages belonging to memory objects of TYPE=DREF remain in real storage and are never paged out to auxiliary storage. The memory object can be referenced while running disabled. The DREF attribute applies to the entire memory object. TYPE=DREF is not valid with PAGEFRAMESIZE=2G.
,TYPE=FIXED
Pages are backed in real storage immediately, unless fixed storage is not immediately available, in which case the request fails. Pages belonging to memory objects of TYPE=FIXED remain in real storage and are never be paged out to auxiliary storage. The memory object can be referenced while running disabled. The FIXED attribute applies to the entire memory object when it is allocated. TYPE=FIXED is not valid with PAGEFRAMESIZE=4K.

To code: Specify the RS-type address, or address in register (2)-(12), of a doubleword field.

,UNITSIZE=1M
,UNITSIZE=2G
A required input parameter that specifies the size for the UNITS parameter: either 1M or 2 GB.
,UNITSIZE=1M
Specifies that the memory object is in one-megabyte (1 MB) units. For example, a request for UNITS=3 with UNITSIZE=1M is a request for three megabytes of virtual storage starting on a 1 MB boundary. When UNITSIZE=1M is specified, one of the following PAGEFRAMESIZE values must also be specified:
PAGEFRAMESIZE=4K
PAGEFRAMESIZE=1M
A required input parameter that specifies the size of the page frames used to back the virtual storage mapped by the allocated memory object.
PAGEFRAMESIZE=4K
Specifies to back the memory object with 4 KB-page frames of the specified TYPE, when TYPE=PAGEABLE or TYPE=DREF is requested. TYPE=FIXED is not supported.
PAGEFRAMESIZE=1M
Specifies to back the memory object by one-megabyte (1 MB) page frames of the specified TYPE. If 1 MB-page frames are not supported or not available, the system attempts to back the memory object at a smaller page frame size of the specified TYPE, when TYPE=PAGEABLE or TYPE=DREF is requested. A TYPE=FIXED request fails if there are no available pages in the requested PAGEFRAMESIZE.
,UNITSIZE=2G
Specifies that the memory object is in two-gigabyte (2G) units. For example, a request for UNITS=3 with UNITSIZE=2G is a request for six gigabytes of virtual storage starting on a 2 GB boundary.
PAGEFRAMESIZE=4K|1M|2G
A required input parameter that specifies the size of the page frames that back the virtual storage mapped by the allocated memory object.
PAGEFRAMESIZE=4K
Specifies to back the memory object by 4 KB-page frames of the specified TYPE, when TYPE=PAGEABLE or TYPE=DREF is requested. TYPE=FIXED is not supported with this value.
PAGEFRAMESIZE=1M
Specifies to back the memory object by one-megabyte (1 MB) page frames of the specified TYPE. If 1 MB-page frames are not supported or not available when TYPE=PAGEABLE or TYPE=DREF is requested, the system attempts to back the memory object using a smaller page frame size of the specified TYPE. A TYPE=FIXED request fails if there are no available pages in the requested PAGEFRAMESIZE.
PAGEFRAMESIZE=2G
Specifies to back the memory object by two-gigabyte (2 GB) FIXED page frames. PAGEFRAMESIZE=2G is valid only when TYPE=FIXED is specified. If 2 GB page frames are not supported or not available, the request fails.
,SVCDUMPRGN=YES
,SVCDUMPRGN=NO

SVCDUMPRGN and DUMP are mutually exclusive keys. This set is optional; only one key may be specified.

An optional input parameter that specifies whether the memory object should be included in an SVC dump when region is requested. The default is SVCDUMPRGN=YES.for TYPE=PAGEABLE. If neither the SVCDUMPRGN keyword nor the DUMP keyword is specified the defaults that apply are as described under the defaults for the DUMP keyword.

,SVCDUMPRGN=YES
The memory object should be included in an SVC dump when RGN is specified on SDATA. This is equivalent to DUMP=LIKERGN.
,SVCDUMPRGN=NO
The memory object should not be included in an SVC dump when RGN is specified on SDATA.
,DUMP=LIKERGN
,DUMP=LIKELSQA
,DUMP=NO
,DUMP=BYOPTIONVALUE

DUMP and SVCDUMPRGN are mutually exclusive keys. This set is optional; only one key may be specified.

An optional input parameter that specifies whether the 64-bit private memory object will be included in an SVC dump when RGN or LSQA is specified on SDATA. When TYPE=PAGEABLE is specified on IARV64 GETSTOR the default is DUMP=LIKERGN. When TYPE=DREF is specified on IARV64 GETSTOR the default is DUMP=LIKELSQA. For memory objects backed with large pages the default is DUMP=NO.

,DUMP=LIKERGN
The 64-bit private memory object is included in an SVC dump when RGN is specified on SDATA.
,DUMPPRIORITY=99
,DUMPPRIORITY=dumppriority
An optional input parameter that specifies the dump priority of the memory object. This must be a non-zero value in the range of 1 to 99, with 1 being the highest priority and 99 being the lowest. The default is DUMPPRIORITY=99.
,DUMPPRIORITY=99
The dump priority of the memory object is 99 which is the lowest priority.
,DUMPPRIORITY=dumppriority
This parameter is the name (RS-type), or address in register (2)-(12), of an optional byte input that specifies the dump priority of the memory object. This must be a non-zero value in the range of 1 to 99, with 1 being the highest priority and 99 being the lowest.
,DUMP=LIKELSQA
The 64-bit private memory object is included in an SVC dump when LSQA is specified on SDATA.
,DUMP=NO
The 64-bit private memory object is not included in an SVC dump when either RGN or LSQA is specified on SDATA.
DUMP=BYOPTIONVALUE
The 64-bit private memory object is dumped according to the option specified by the OPTIONVALUE keyword.
,OPTIONVALUE=optionvalue
This parameter is the name of a required one-byte integer input that contains one of the dump option values as specified by the bit constants.
,CONTROL=UNAUTH
,CONTROL=AUTH
An optional input parameter that specifies when the memory object should be eligible for the certain other services.

This is a permanent attribute of the memory object and cannot be altered by other services. The default is CONTROL=UNAUTH.

,CONTROL=UNAUTH
The memory object can be freed by an unauthorized caller that owns the memory object. The memory object is NOT eligible for PAGEFIX.
,CONTROL=AUTH
The memory object can be freed only by an authorized caller. The memory object is eligible for PAGEFIX and PAGEUNFIX (note that PAGEFIX and PAGEUNFIX still require an authorized caller). AUTH can be used only by callers running in supervisor state or with PSW key 0-7.
MOTKNSOURCE=USER
MOTKNSOURCE=SYSTEM
An optional input parameter that indicates who provided (or will provide) the memory object token.
MOTKNSOURCE=USER

The user provides the memory object token.

The following is a set of mutually exclusive keys. This set is optional; only one key may be specified.

MOTKN=motkn

This parameter belongs to a set of mutually exclusive keys. It is the name of an optional doubleword integer input that identifies the user token to be associated with the memory object. This can be used on a later DETACH request to free all memory objects associated with this value.

  • To request a system-generated token, use:
    IARV64 REQUEST(GETCOMMON) MOTKNSOURCE(SYSTEM) OUTMOTKN(mytoken)
  • Use the returned token on subsequent IARV64 GETCOMMON requests, in order to associate other memory objects with the same token:
    IARV64 REQUEST(GETCOMMON) MOTKNSOURCE(USER) MOTKN(mytoken)

To avoid inadvertent collisions in the values specified, the left word (bits 0-31) of the user token must be binary zeros for a problem state program. The system enforces this requirement. The right word (bits 32-63) should represent the virtual address of some storage related to the caller, which could be a control block address, an entry point address, and so on, which is used as an application choice.

The convention for supervisor state program is that the left word (bits 0-31) should represent an address of some storage related to the caller. The system enforces the rule that the left word is nonzero for supervisor state callers. The format for the right word (bits 32-63) is a choice left to the caller.

If you specify no user token, the default is that no user token is supplied to associate this memory object with others.

MOTKNCREATOR=USER
MOTKNCREATOR=SYSTEM
This parameter is an optional input parameter that indicates who created the memory object token
MOTKNCREATOR=USER
The memory object token is user-created.
MOTKNCREATOR=SYSTEM
The memory object token is system-created.
USERTKN=usertkn
USERTKN=NO_USERTKN
This parameter belongs to a set of mutually exclusive keys. It is the name of an optional doubleword integer input that is a synonym for MOTKN. You can use either USERTKN or MOTKN interchangeably.
MOTKNSOURCE=SYSTEM
The system provides the memory object token.
OUTMOTKN=xoutmotkn
This parameter is the name of a required doubleword integer output that identifies the user token to be associated with the memory object to be created by the system.
,USERTKN=usertkn
,USERTKN=NO_USERTKN
An optional input parameter that identifies the user token to be associated with the memory object. This can be used on a later DETACH request to free all memory objects associated with this value.

To avoid inadvertent collisions in the values specified, the left word (bits 0-31) of the user token must be binary zeros for a problem state program. The system enforces this requirement. The right word (bits 32-63) should represent the virtual address of some storage related to the caller, which could be a control block address, an entry point address, and so on, which is used as an application choice.

The convention for supervisor state program is that the left word (bits 0-31) should represent an address of some storage related to the caller. The system enforces the rule that the left word is nonzero for supervisor state callers. The format for the right word (bits 32-63) is a choice left to the caller.

If you specify NO_USERTKN, the default is that no user token is supplied to associate this memory object with others. The default is NO_USERTKN.

To code: Specify the RS-type address, or address in register (2)-(12), of a doubleword field.

,GUARDSIZE=guardsize
,GUARDSIZE=0

GUARDSIZE and GUARDSIZE64 are mutually exclusive keys. This set is optional; only one key may be specified. A fullword integer input parameter that indicates the number of megabytes of guard area to be created at the high or low end of the memory object. Guard areas cannot be referenced and when referenced will cause a program check. Guard area does not count against the MEMLIMIT. A guard area can be reduced through CHANGEGUARD CONVERT=FROMGUARD.

GUARDSIZE must not be larger than the size of the memory object. The default is 0.

To code: Specify the RS-type address, or address in register (2)-(12), of a fullword field.

,GUARDSIZE64=guardsize64
,GUARDSIZE64=0

GUARDSIZE64 belongs to a set of mutually exclusive keys. This set is optional; only one key may be specified. A doubleword integer input parameter that indicates the number of megabytes of guard area to be created at the high or low end of the memory object. Guard areas cannot be referenced and when referenced will cause a program check. Guard area does not count against the MEMLIMIT. A guard area can be reduced through CHANGEGUARD CONVERT=FROMGUARD.

GUARDSIZE64 must not be larger than the size of the memory object. The default is 0.

To code: Specify the RS-type address, or address in register (2)-(12), of a doubleword field.

,GUARDLOC=LOW
,GUARDLOC=HIGH
An optional input parameter that specifies whether the guard location is at the low virtual end of the memory object or the high virtual end. The default is GUARDLOC=LOW.
,GUARDLOC=LOW
The guard areas are created starting from the origin of the memory object, that is, from the low virtual end.
,GUARDLOC=HIGH
The guard areas are created at the end of the memory object, that is, at the high virtual end.
,TTOKEN=ttoken
,TTOKEN=NO_TTOKEN
An optional input parameter that identifies the task to assume ownership of the memory object. The TTOKEN is returned by the TCBTOKEN macro.

If TTOKEN is specified, the task identified by the TTOKEN becomes the owner of the memory object. If TTOKEN is not specified, the currently dispatched task becomes the owner of the memory object. The task identified by the TTOKEN must be in the address space specified or defaulted by the ALETVALUE keyword.

The TTOKEN parameter must be used by an caller that is an SRB.

When the TTOKEN parameter is used by problem state program with PSW key 8 - 15, the target task must represent the calling task OR the jobstep task for the calling task OR the mother task. A caller cannot assign ownership to a task above the jobstep task.

A memory object will be freed when its owning task terminates.

If the TTOKEN parameter is not specified, and the caller is a task (rather than an SRB), the currently dispatched task will become the owner of the memory object. An SRB will be abnormally ended if the TTOKEN parameter does not specify a valid TTOKEN. The default is NO_TTOKEN.

To code: Specify the RS-type address, or address in register (2)-(12), of a 16 character field.

,ALETVALUE=aletvalue
,ALETVALUE=0
An optional input parameter that indicates the ALET of the address space in which the memory object is to be created.

The only supported values are 0 (primary) and 2 (home). The ALETVALUE parameter can be used only by callers running in supervisor state or with PSW key 0-7. The default is 0.

To code: Specify the RS-type address, or address in register (2)-(12), of a fullword field.

,ORIGIN=origin
A required output parameter that contains the lowest address of the memory object. Note that when GUARDLOC=LOW is specified, the lowest address will point to a guard area which will cause an ABEND if referenced. For GUARDLOC=LOW the first usable area is the origin plus the size of the guard area.

To code: Specify the RS-type address, or address in register (2)-(12), of an eight-byte pointer field.

DETACHFIXED=NO
DETACHFIXED=YES
An optional input parameter that specifies whether the memory object can be detached when it contains fixed pages at the time of the DETACH request. The default value for DETACHFIXED is NO.
DETACHFIXED=NO
The memory object will not be detached if it has any fixed pages when it is being detached.
DETACHFIXED=YES
The memory object will be detached even if some or all the pages pages of that memory object are fixed.
,RETCODE=retcode
An optional output parameter into which the return code is to be copied from GPR 15.

To code: Specify the RS-type address of a fullword field, or register (2)-(12).

,RSNCODE=rsncode
An optional output parameter into which the reason code is to be copied from GPR 0.

To code: Specify the RS-type address of a fullword field, or register (2)-(12).

,PLISTVER=IMPLIED_VERSION
,PLISTVER=MAX
,PLISTVER=0, 1, 2
An optional input parameter that specifies the version of the macro. PLISTVER determines which parameter list the system generates. PLISTVER is an optional input parameter on all forms of the macro, including the list form. When using PLISTVER, specify it on all macro forms used for a request and with the same value on all of the macro forms. The values are:
  • IMPLIED_VERSION, which is the lowest version that allows all parameters specified on the request to be processed. If you omit the PLISTVER parameter, IMPLIED_VERSION is the default.
  • MAX, if you want the parameter list to be the largest size currently possible. This size might grow from release to release and affect the amount of storage that your program needs.

    If you can tolerate the size change, IBM® recommends that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form, when both are assembled with the same level of the system. In this way, MAX ensures that the parameter list does not overwrite nearby storage.

  • 0, supports all parameters except those specifically referenced in higher versions.
  • 1, supports both the following parameters and parameters from version 0:
    • CONVERTSIZE64
    • CONVERTSTART
    • GUARDSIZE64
    • GETSHARED
  • 2, supports both the following parameters and parameters from version 0 and 1:
    • GETCOMMON
    • PAGEPROTECT
    • PAGEUNPROTECT
To code: Specify one of the following:
  • IMPLIED_VERSION
  • MAX
  • A decimal value of 0, 1 or 2.
,MF=S
,MF=(L,list addr)
,MF=(L,list addr,attr)
,MF=(L,list addr,0D)
,MF=(E,list addr)
,MF=(E,list addr,COMPLETE)
,MF=(M,list addr)
,MF=(M,list addr,COMPLETE)
,MF=(M,list addr,NOCHECK)
An optional input parameter that specifies the macro form.

Use MF=S to specify the standard form of the macro, which builds an inline parameter list and generates the macro invocation to transfer control to the service. MF=S is the default.

Use MF=L to specify the list form of the macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. Only the PLISTVER parameter may be coded with the list form of the macro.

Use MF=E to specify the execute form of the macro. Use the execute form together with the list form of the macro for applications that require reentrant code. The execute form of the macro stores the parameters into the storage area defined by the list form, and generates the macro invocation to transfer control to the service.

Use MF=M together with the list and execute forms of the macro for service routines that need to provide different options according to user-provided input. Use the list form to define a storage area; use the modify form to set the appropriate options; then use the execute form to call the service.

Use the modify and execute forms in the following order:
  • Use MF=(M,list_addr,COMPLETE), specifying appropriate parameters, including all required ones.
  • Use MF=(M,list_addr,NOCHECK), specifying the parameters you want to change.
  • Use MF=(E,list_addr,NOCHECK), to execute the macro.
,list addr
The name of a storage area to contain the parameters. For MF=S and MF=E, this can be an RS-type address or an address in register (1)-(12).
,attr
An optional 1- to 60-character input string that you use to force boundary alignment of the parameter list. Use a value of 0F to force the parameter list to a word boundary, or 0D to force the parameter list to a doubleword boundary. If you do not code attr, the system provides a value of 0D.
,COMPLETE
Specifies that the system is to check for required parameters and supply defaults for omitted optional parameters.
NOCHECK
Specifies that the system is not to check for required parameters and is not to supply defaults for omitted optional parameters.