DSPSERV EXTEND (Extend Data Space) Macro

DSPSERV EXTEND requests the system to increase the current size of the data space.

Use the EXTEND function only for a data space that was created with an initial size smaller than the maximum size.

Before you can reference storage beyond the current size, you must use EXTEND to increase the storage that is currently available. If you reference data space storage beyond the current size, the system rejects the request and terminates the caller with a cancel code.

A caller with nonzero PSW key can extend the data space that it owns. A key-0 program can extend any data space that it owns and other data spaces of the caller 's partition.

The system rejects the request if the extended size would:
  • Exceed the maximum size as specified by the BLOCKS operand of DSPSERV CREATE when the data space was created.
  • Extend the installation limit for the accumulated size of all data spaces. This limit is either the system default or can be set by the SYSDEF job control command.
  • Be smaller than 1 or greater than 524287 blocks.

Format

Read syntax diagramSkip visual syntax diagramnameDSPSERV EXTEND,STOKEN= stoken_addr,BLOCKS=sizesize_addr,NUMBLKS= numblks_addr,MF=S,MF=(L, lstaddr,0D, attr),PLISTVER=0,PLISTVER=1,MF=(E, lstaddrCOMPLETE)

Requirements for the caller

AMODE:
31
RMODE:
24 or ANY
ASC Mode:
Primary or AR (if SYSSTATE ASCENV=AR)

Parameters

STOKEN=stoken-addr
Specifies the address of the 8-byte STOKEN for the data space (returned from DSPSERV CREATE).
BLOCKS=size | size-addr
Defines the amount of storage (in number of 4 K-blocks) by which the current size of the data space is to be increased. size-addr specifies the address of an area where the size is specified.
Note: The amount of storage that is taken from VSIZE is always the number of 4 K-blocks you specify for extension, rounded up to the next multiple of 8, if necessary. For example, if you specify 10 blocks, the system rounds this number to 16 and takes 64 K from VSIZE.
NUMBLKS=numblks-addr
Specifies the address of a 4-byte area where the system returns the size by which the data space was extended.
MF=S
Specifies the standard form of the macro, which is used to place the parameters into an inline parameter list. This is also the default if the MF parameter is omitted.
MF=(L,...
Specifies the list form of the macro, which is used to construct a non-executable control program parameter list.

lstaddr specifies the address of the area that the system is to use for the parameter list.

attr is an optional 1- to 60-character input string, which can contain any value that is valid on an assembler DS pseudo-op. You can use this parameter to force boundary alignment of the parameter list. If you do not code attr, the system provides a value of 0D, which forces the parameter list to a doubleword boundary.

PLISTVER=0|1 specifies which parameter list the system is to generate. 0 produces a 56-character parameter list; 1 (which is always recommended) produces a 60-character list.

No other parameters can be specified, if the list form of the macro is chosen.

MF=(E,...
Specifies the execute form of the macro, which uses the parameter list that is generated by the list form of the macro.

lstaddr specifies the address of the parameter list. This address must not be in a data space. If the caller of the macro is in 24-bit mode, the address of the parameter list must not be above the 16 MB line.

COMPLETE specifies that the system is to check for required parameters and supply optional parameters that are not specified.

Return Codes in Register 15

00
Successful completion
08
R0=X'xx050200': Extending the data space would cause the data space limits (as specified in the SYSDEF job control command) to be exceeded.
08
R0=X'xx050201': No system GETVIS storage available (page manager).
08
R0=X'xx050202': No virtual storage available (page manager).
08
R0=X'xx050203': No real storage available (page manager).