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.