REQUEST=CHANGEACCESS requests that the view type for segments within the specified 64-bit shared memory objects can be changed.
The requirements for the caller are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | The caller must be running in supervisor state or with PSW key 0-7. |
Dispatchable unit mode: | Task or SRB |
Cross memory mode: | Any PASN, any HASN, any SASN. |
AMODE: | 31- or 64-bit |
ASC mode: | Primary or access register (AR) |
Interrupt status: | Enabled for I/O and external interrupts |
Locks: | No locks may be held. |
Control parameters: | Control parameters must be in the primary address space and can reside both below and above the bar. |
None.
This macro supports multiple versions. Some keywords are unique to certain versions. See PLISTVER parameter description.
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.
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.
None
The REQUEST=CHANGEACCESS 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=CHANGEACCESS | |
,VIEW=READONLY | Default: VIEW=READONLY |
,VIEW=SHAREDWRITE | |
,VIEW=HIDDEN | |
,RANGLIST=ranglist | ranglist: RS-type address or address in register (2) - (12). |
,NUMRANGE=numrange | numrange: RS-type address or address in register (2) - (12). |
,NUMRANGE=1 | Default: NUMRANGE=1 |
,ALETVALUE=aletvalue | aletvalue: RS-type address or address in register (2) - (12). |
,ALETVALUE=0 | Default: ALETVALUE=0 |
,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 or 4 | |
,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) |
|
The parameters are explained as follows:
IARV64 REQUEST=CHANGEACCESS requests that the view type for segments within the specified 64-bit shared memory objects can be changed.
For 64-bit shared memory objects when CHANGEACCESS=LOCAL was specified or defaulted on the REQUEST=GETSHARED, only the address space specified by the ALET is affected.
For 64-bit shared memory objects when the CHANGEACCESS=GLOBAL is specified, all address spaces currently sharing the memory object are affected. Subsequent IARV64 SHAREMEMOBJ requests for this memory object will also be affected by this CHANGEACCESS when CHANGEACCESS=GLOBAL is specified (until the next CHANGEACCESS invocation).
The memory object specified must be a 64-bit shared memory object. For example, it is the result of a GETSHARED invocation
CHANGEACCESS requests for memory objects that are CHANGEACCESS=LOCAL require that the target space have interest in the shared memory object. For example, a SHAREMEMOBJ for the target space must have been done before the CHANGEACCESS request. Memory objects with CHANGEACCESS=GLOBAL support CHANGEACCESS requests without prior SHAREMEMOBJ requests.
To code: Specify the RS-type address, or address in register (2)-(12), of an eight-byte pointer field.
The value specified must be no greater than 16. The default is 1.
To code: Specify the RS-type address, or address in register (2)-(12), of a fullword field.
The only supported values are 0 (primary) and 2 (home).
To code: Specify the RS-type address, or address in register (2)-(12), of a fullword field.
To code: Specify the RS-type address of a fullword field, or register (2)-(12).
To code: Specify the RS-type address of a fullword field, or register (2)-(12).
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.
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.