Use this system macro to obtain an available system work block (SWB)
storage block address.
Format
- label
- A symbolic name can be assigned to the macro statement.
- BLOCK=Rn
- This output parameter contains the SWB address after macro
completion.
- SAVREG
- The specified volatile registers will be saved by the macro in
the stack area or in the registers specified by the WKREG parameter. Up
to 3 registers can be specified. Those registers are R0, R1, R2.
If this keyword is omitted, none of the 3 registers will be saved. You
should not save a volatile register if you expect it to contain an output
parameter. The register will be overwritten with its original contents,
since the reload is the last thing performed by the macro.
- WKREG
- The specified symbolic register names are free to be used by the macro to
save the volatile registers coded on the SAVREG parameter.
Up to 3 registers can be specified, but the standard linkage registers R13
through R2 cannot be used here. This parameter is used in conjunction
with the SAVREG parameter to generate efficient code and enhance the
performance of the macro. The number of registers specified by WKREG
should be less than or equal to the number of registers specified by
SAVREG. If this parameter is omitted or not used to its maximum
capacity, code optimization is sacrificed.
Entry Requirements
- The program invoking this macro must be running with a storage protection
key of zero, and be in 31-bit addressing mode.
- The program can be executing in either the EVM or the SVM address
space.
Return Conditions
- Control is returned to the NSI.
- The TPF system is ended with a catastrophic error if there are no SWBs
available.
- The register specified in the BLOCK parameter contains the storage block
address.
Programming Considerations
- This macro can be run on any I-stream.
- The address returned in the register specified by the BLOCK parameter is a
31-bit address, and may point to an SWB allocated above the 16 megabyte
boundary. Code must be running in 31-bit mode to access data above the
31-bit boundary.
- System work blocks should replace I/O control blocks for all system
functions. Exceptions should be made only for extremely
performance-critical applications, such as DASD I/O operations.
Examples
None.