The UEPCLPS exit-specific parameter
The UEPCLPS exit-specific parameter is included in both exit XTSEREQ and exit XTSEREQC. It is the address of the command-level parameter structure.
The command-level parameter structure contains 8 addresses, TS_ADDR0 through TS_ADDR7. It is defined in the DSECT TS_ADDR_LIST, which you should copy into your exit program by including the statement COPY DFHTSUED.
The command-level parameter list is made up as follows.
Note: The relationship between arguments, keywords, data
types, and input/output types is summarized for the temporary storage
commands in the following tables:
- TS_ADDR0
- is the address of a 9-byte area called the EID, which is made
up as follows:
- TS_GROUP
- TS_FUNCT
- TS_BITS1
- TS_BITS2
- TS_EIDOPT5
- TS_EIDOPT6
- TS_EIDOPT7
- TS_EIDOPT8
- TS_GROUP
- Always X'0A', indicating that this is a temporary storage request.
- TS_FUNCT
- One byte that defines the type of request:
- X'02'
- WRITEQ
- X'04'
- READQ
- X'06'
- DELETEQ
- TS_BITS1
- Existence bits that define which arguments were specified. To
obtain the argument associated with a keyword, you need to use the
appropriate address from the command-level parameter structure. Before
using this address, you must check the associated existence bit. If
the existence bit is set off, the argument was not specified in the
request and the address should not be used.
- X'80'
- Set if the request contains an argument for the QUEUE or QNAME keyword. If set, TS_ADDR1 is meaningful.
- X'40'
- Set if the request contains an argument for any of the FROM, INTO, or SET keywords. If set, TS_ADDR2 is meaningful.
- X'20'
- Set if the request contains an argument for the LENGTH keyword. If set, TS_ADDR3 is meaningful.
- X'10'
- Set if the request contains an argument for the NUMITEMS keyword. If set, TS_ADDR4 is meaningful.
- X'08'
- Set if the request contains an argument for the NUMITEMS or ITEM keyword. If set, TS_ADDR5 is meaningful.
- X'02'
- Set if the request contains an argument for the SYSID keyword. If set, TS_ADDR7 is meaningful.
- TS_BITS2
- Two bytes not used by temporary storage.
- TS_EIDOPT5
- Indicates whether certain keywords were specified on the request.
- X'80'
- QNAME was specified (otherwise QUEUE). You can modify this bit in your user exit if you want.
- TS_EIDOPT6
- One byte not used by temporary storage.
- TS_EIDOPT7
- Indicates whether certain functions and/or keywords were specified
on the request.
- X'10'
- WRITEQ NOSUSPEND specified.
- X'80'
- WRITEQ MAIN or READQ ITEM specified.
- X'04'
- WRITEQ REWRITE or READQ NUMITEMS specified.
- TS_EIDOPT8
- Indicates whether certain keywords were specified on the request.
- X'80'
- ITEM was specified (otherwise NUMITEMS).
- TS_ADDR1
- is the address of area containing 8-byte name from QUEUE. or 16-byte name from QNAME. To determine which of these is applied, see the TS_BITS2 field.
- TS_ADDR2
- is the address of one of the following:
- A 4-byte address from SET (if the request is READQ and TS_EIDOPT5 indicates that this is SET).
- Data from INTO (if the request is READQ and TS_EIDOPT5 indicates that this is not SET).
- Data from FROM (if the request is WRITEQ).
- TS_ADDR3
- is the address of the halfword value of LENGTH (if the request
is READQ or WRITEQ). Warning: For requests that specify INTO, do not change the value of LENGTH to a value greater than that specified by the application. To do so causes a storage overlay in the application.
- TS_ADDR4
- is the address of the halfword value of NUMITEMS (if the request is READQ).
- TS_ADDR5
- is the address of one of the following:
- The halfword value of NUMITEMS (if the request is WRITEQ)
- The halfword value of ITEM (if the request is READQ or WRITEQ).
- TS_ADDR6
- is the address of a value intended for CICS® internal use only. It must not be used.
- TS_ADDR7
- is the address of an area containing the value of SYSID.