The UEPCLPS exit-specific parameter
The UEPCLPS exit-specific parameter is included in both exit XTDEREQ and exit XTDEREQC. It contains the address of the command-level parameter structure.
The command-level parameter structure contains 8 addresses, TD_ADDR0 through TD_ADDR7. It is defined in the DSECT TD_ADDR_LIST, which you should copy into your exit program by including the statement COPY DFHTDUED.
The command-level parameter list is made up as follows:
- TD_ADDR0
- is the address of an 8-byte area called the EID, which is made
up as follows:
- TD_GROUP
- TD_FUNCT
- TD_BITS1
- TD_BITS2
- TD_EIDOPT5
- TD_EIDOPT6
- TD_EIDOPT7
- TD_GROUP
- Always X'08', indicating that this is a transient data request.
- TD_FUNCT
- One byte that defines the type of request:
- X'02'
- WRITEQ
- X'04'
- READQ
- X'06'
- DELETEQ.
- TD_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 keyword. If set, TD_ADDR1 is meaningful.
- X'40'
- Set if the request contains an argument for any of the INTO, SET, or FROM keywords. If set, TD_ADDR2 is meaningful.
- X'20'
- Set if the request contains an argument for the LENGTH keyword. If set, TD_ADDR3 is meaningful.
- X'02'
- Set if the request contains an argument for the SYSID keyword. If set, TD_ADDR7 is meaningful.
- TD_BITS2
- Two bytes not used by transient data.
- TD_EIDOPT5
- Indicates whether certain keywords were specified on the request.
- X'01'
- SET (and not INTO) was specified.
- TD_EIDOPT6
- One byte not used by transient data.
- TD_EIDOPT7
- Indicates whether certain functions, keywords or both were specified
on the request:
- X'40'
- WRITEQ specified
- X'80'
- READQ specified
- X'C0'
- READQ(nosuspend) specified
- X'04'
- DELETEQ specified.
- TD_ADDR1
- is the address of a 4-byte area containing the name from QUEUE.
- TD_ADDR2
- is the address of one of the following:
- A 4-byte address from SET (if the request is READQ and TD_EIDOPT5 indicates that this is SET).
- Data from INTO (if the request is READQ and TD_EIDOPT5 indicates that this is not SET). You cannot modify this bit in your user exit.
- Data from FROM (if the request is WRITEQ).
- TD_ADDR3
- is the address of one of the following:
- 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.
- TD_ADDR4
- is the address of a value intended for CICS® internal use only. It must not be used.
- TD_ADDR5
- is the address of a value intended for CICS internal use only. It must not be used.
- TD_ADDR6
- is the address of a value intended for CICS internal use only. It must not be used.
- TD_ADDR7
- is the address of an area containing the value of SYSID.
- TD_ADDR8
- is the address of a value intended for CICS internal use only. It must not be used.