The requirements for the caller who specifies SREAD and SWRITE are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | Problem state and any PSW key |
Dispatchable unit mode: | Task or SRB |
Cross memory mode: | Any PASN, any HASN, any SASN Note: PASN=HASN=SASN
is required for a nonshared standard hiperspace for which an ALET
is not used (that is, the HSPALET parameter is omitted).
|
AMODE: | 31-bit |
ASC mode: | Primary or access register (AR) |
Interrupt status: | Enabled for I/O and external interrupts |
Locks: | No locks held |
Control parameters: | Must be in the caller's primary address space. If the caller's PSW key is not zero, the PSW key must match the storage key associated with the control parameters. |
If you code HSPALET, and you have an FRR recovery routine that gains control while HSPSERV is executing, your recovery routine cannot attempt retry at the time of error.
Before issuing the HSPSERV 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 standard form of the HSPSERV macro for standard hiperspaces is written as follows:
Syntax | Description |
---|---|
name | name: Symbol. Begin name in column 1. |
␢ | One or more blanks must precede HSPSERV. |
HSPSERV | |
␢ | One or more blanks must follow HSPSERV. |
SREAD | |
SWRITE | |
,STOKEN=stoken-addr | stoken-addr: RX-type address or register (2) - (12). |
,HSPALET=alet-addr | alet-addr: RX-type address or register (2) - (12). |
,NUMRANGE=n | n: Number from 1 to 50. |
,NUMRANGE=num-addr | num-addr: RX-type address or register (2) - (12). Default: NUMRANGE=1. |
,RANGLIST=list-addr | list-addr: RX-type address or register (2) - 12). |
,RELEASE=NO | Default: RELEASE=NO. |
,RELEASE=YES | |
,RETCODE=ret-addr | ret-addr: RX-type address or register (2) - (12). |
,RSNCODE=rsn-addr | rsn-addr: RX-type address or register (2) - (12). |
,MF=S | |
The parameters are explained as follows:
STOKEN and RANGLIST are required parameters on the SREAD request. HSPALET, NUMRANGE, RELEASE, RSNCODE, and RETCODE are optional parameters.
STOKEN and RANGLIST are required parameters on the SWRITE request. HSPALET, NUMRANGE, RETCODE, and RSNCODE are optional parameters.
The HSPALET parameter is optional except for the following case: If the caller accesses a shared hiperspace, is in problem state and has PSW key 8 - F, HSPALET is required.
Use of the HSPALET parameter requires that the caller provide a 144-byte save area in the caller's primary address space. AR/GPR 13 must provide addressability to this area regardless of the caller's ASC mode. GPR 13 must contain the address of the area and AR 13 must contain 0.
If you code HSPALET, do not code RELEASE=YES.
If you code HSPALET, and you have an FRR recovery routine that gains control while HSPSERV is executing, your recovery routine cannot attempt retry at the time of error.
If you omit NUMRANGE, HSPSERV reads or writes one entry in the range list.
Further restrictions on the areas in the address space and the hiperspace are described in Figure 1.
On return, only if the caller issued the HSPSERV macro with the HSPALET parameter, the range list values might be different from the input values if the system could not at first successfully complete the read or write operation. In that case, the system changes the range list values, but does not restore the input values when it finally returns control to the caller.
RELEASE=NO specifies that the system does not release the hiperspace pages after it completes the SREAD operation. Unless a subsequent SWRITE request changes the data, the same data will be available again on the next SREAD request. RELEASE=NO is the default.
RELEASE=YES specifies that, after the SREAD request, the system is to release the storage that backed the data in the hiperspace. If you code RELEASE=YES, do not code HSPALET.
HSPSERV might abnormally terminate with abend code X'01D'. See z/OS MVS System Codes for an explanation of abend code X'01D'.
When control returns from HSPSERV SREAD or HSPSERV SWRITE, GPR 15 (and ret-addr, if you coded RETCODE) contains one of the following hexadecimal return codes. GPR 0 (and rsn-addr, if you coded RSNCODE) contains one of the following hexadecimal reason codes.
Hexadecimal Return Code | Hexadecimal Reason Code | Meaning and Action |
---|---|---|
00 | 00 | Meaning: HSPSERV completed successfully. Action: None. |
08 | xxyy05xx | Meaning: System error. The system rejects
the request. A hiperspace page is unavailable. Action: Record the return and reason code and supply it to the appropriate IBM® support personnel. |
08 | xxyy06xx | Meaning: System error. The system rejects
the request. An address space page is unavailable. Action: Record the return and reason code and supply it to the appropriate IBM support personnel. |
0C | xx006xx | Meaning: System error. System failure because
of environmental problems. Action: Record the return and reason code and supply it to the appropriate IBM support personnel. |