RequestBlockList (PSHVBLOCK) - input
A linked
list of shared variable request blocks (SHVBLOCK). Each shared variable
request block in the linked list is a separate variable access request.
The SHVBLOCK has the following form: SHVBLOCKdatastructure
typedef struct shvnode { struct shvnode *shvnext; RXSTRING shvname; RXSTRING shvvalue; ULONG shvnamelen; ULONG shvvaluelen; UCHAR shvcode; UCHAR shvret; } SHVBLOCK;
shvnext
RXSHV_SET
RXSHV_SYSET
RXSHV_FETCH
RXSHV_SYFET
RXSHV_DROPV
RXSHV_SYDRO
RXSHV_PRIV
If shvname is an empty RXSTRING (strptr is NULL), the REXX interpreter allocates and returns an RXSTRING to hold the variable name. If the REXX interpreter allocates the RXSTRING, an RXSHV_TRUNC condition cannot occur. However, RXSHV_MEMFL errors are possible for these operations. If an RXSHV_MEMFL condition occurs, memory is not allocated for that request block. The RexxVariablePool caller must release the storage with DosFreeMem.
Note: The RexxVariablePool does not add a terminating null character to the variable name.
RXSHV_SET
RXSHV_SYSET
RXSHV_SYFET
RXSHV_PRIV
RXSHV_NEXT
If shvvalue is an empty RXSTRING (strptr is NULL), the REXX interpreter allocates and returns an RXSTRING to hold the variable value. If the REXX interpreter allocates the RXSTRING, an RXSHV_TRUNC condition cannot occur. However, RXSHV_MEMFL errors are possible for these operations. If an RXSHV_MEMFL condition occurs, memory is not allocated for that request block. The RexxVariablePool caller must release the storage with DosFreeMem.
Note: The RexxVariablePool does not add a terminating null character to the variable value.
RXSHV_SYDRO
RXSHV_SET
RXSHV_SYSET
RXSHV_SYFET
RXSHV_SYDRO
EXITNAME
The REXX interpreter maintains an internal pointer to its list of variables. The variable pointer is reset to the first REXX variable whenever:
RXSHV_OK
The REXX interpreter processes each request block in the order provided; RexxVariablePool returns to the caller after the last block is processed or after a severe error (such as an out-of-memory condition).
The RexxVariablePool function return code is a composite return code for the entire set of shared variable requests. The return codes for all of the individual requests are ORed together to form the composite return code. Individual shared variable request return codes are returned in the request shared variable blocks.