CONTROL BLOCK NAME = DFHTDUEC
DESCRIPTIVE NAME = CICS TS EXEC argument list for Transient
Data user exits.
Licensed Materials - Property of IBM
Restricted Materials of IBM
5655-Y04
(C) Copyright IBM Corp. 1992, 1993
Although provided in a general library, DFHTDUED is not
to be used as a general programming interface. Refer to
product documentation to determine intended usage.
The following fields are part of the Product-sensitive
Programming Interface.
TD_ADDR0
TD_ADDR1
TD_ADDR2
TD_ADDR3
TD_ADDR4
TD_ADDR5
TD_ADDR6
TD_ADDR7
TD_GROUP
TD_FUNCT
TD_BITS1
TD_EIDOPT5
TD_EIDOPT6
TD_EIDOPT7
TD_QUEUE
TD_WRITEQ_QUEUE
TD_READQ_QUEUE
TD_DELETEQ_QUEUE
TD_READQ_SET
TD_READQ_INTO
TD_WRITEQ_FROM
TD_LENGTH
TD_WRITEQ_LENGTH
TD_READQ_LENGTH
TD_SYSID
TD_WRITEQ_SYSID
TD_READQ_SYSID
TD_DELETEQ_SYSID
All equates for values of EIBRCODE, EIBRESP and EIBRESP2
form part of the General-purpose Programming Interface.
All remaining fields used in defining the Exec Parameter
List are product sensitive and may vary between CICS
releases.
FUNCTION =
To define the EXEC parameter list for Transient Data
requests, for use by global user exit programs at exit
points XTDEREQ and XTDEREQC.
On entry to the XTDEREQ and XTDEREQC User Exits, the EXEC
parameter list is pointed to by UEPCLPS.
The EXEC parameter list for Transient Data consists of
eight addresses.
The eight addresses are defined by TD_ADDR0 to TD_ADDR7.
This DSECT defines these addresses and the areas that
they point to.
On entry to the XTDEREQ and XTDEREQC User Exits, the copy
of EIBRCODE is pointed to by UEPRCODE, the copy of EIBRESP
is pointed to by UEPRESP and the copy of EIBRESP2 is
pointed to by UEPRESP2.
This DSECT also contains equates for values of EIBRCODE,
EIBRESP and EIBRESP2 used by Transient Data.
LIFETIME = Lifetime of the TD command request
STORAGE CLASS = As the storage being mapped is the translated
source in the user's application program, the
storage may be either above or below the line.
LOCATION = (1) EXEC Parameter List is addressed by UEPCLPS.
(2) Fields copied from the EIB are addressed by
UEPRCODE, UEPRESP and UEPRESP2.
(3) The token for use in communicating between
XTDEREQ and XTDEREQC is addressed by UEPTDTOK.
INNER CONTROL BLOCKS =
TD_ADDR_LIST declares the EXEC addresses.
TD_EID defines the EID pointed to by TD_ADDR0.
NOTES :
DEPENDENCIES = S/370 ESA
RESTRICTIONS = None
MODULE TYPE = Control Block definition
-----------------------------------------------------------------
EXTERNAL REFERENCES =
None.
DATA AREAS =
None.
CONTROL BLOCKS =
None.
GLOBAL VARIABLES (Macro pass) =
None.
-----------------------------------------------------------------
The command parameter list is a list of addresses
which reference the argument values for this this EXEC CICS
command. The addresses are only valid if the argument is
applicable to this command.
For example, address 1 is of the TD QUEUE name for all TD
commands, whereas the address 2 is of the FROM data area on
WRITEQ commands, the SET address or INTO data area for READQ
commands, and is not valid for DELETEQ commands.
The existance bits in the EID component (TD_BITS1) specify
those addresses that are valid, and the flagword bits
(TD_EIDOPT5 - TD_EIDOPT7) specify the keywords that were given
in the EXEC CICS TD command.
Therefore, you can deduce the useage of each address by testing
these bits in conjunction with the command function(TD_FUNCT).
Table 1.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
32 |
TD_ADDR_LIST |
TD_ADDR_LIST consists of |
(0) |
ADDRESS |
4 |
TD_ADDR0 |
the EID |
(4) |
ADDRESS |
4 |
TD_ADDR1 |
QUEUE name |
(8) |
ADDRESS |
4 |
TD_ADDR2 |
FROM data area (WRITEQ) |
INTO data area (READQ)
SET address (READQ)
|
(C) |
ADDRESS |
4 |
TD_ADDR3 |
LENGTH value |
(10) |
ADDRESS |
4 |
TD_ADDR4 |
Reserved |
(14) |
ADDRESS |
4 |
TD_ADDR5 |
Reserved |
(18) |
ADDRESS |
4 |
TD_ADDR6 |
Reserved |
(1C) |
ADDRESS |
4 |
TD_ADDR7 |
SYSID |
TD_EID (addressed by TD_ADDR0) gives the command function, and
contains the existence and flagword bits.
Note: Equates for TD_GROUP, TD_FUNCT, EIBRCODE, EIBRESP and
EIBRESP2 values are defined at the end of this data structure.
Table 2.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
8 |
TD_EID |
(0) |
CHARACTER |
1 |
TD_GROUP |
'08'X for TD |
(1) |
CHARACTER |
1 |
TD_FUNCT |
'02'X for WRITEQ |
'04'X for READQ
'06'X for DELETEQ
-----------------------------------------------------------------
The existence bits (TD_BITS1) specify the parameters that are
valid for this command.
For example, TD_EXIST7 set on indicates that TD_ADDR7 is valid,
meaning that it addresses a SYSID value.
TD_ADDR0 is always valid and has no existence bit.
TD_EXIST3 may be modified by a user exit program invoked for
a READQ command with the SET option.
TD_EXIST7 may be modified by a user exit program invoked for
any TD request.
None of the other bits may be modified.
-----------------------------------------------------------------
|
(2) |
BIT(8) |
1 |
TD_BITS1 |
(2) |
1... .... |
|
TD_EXIST1 |
(2) |
1... .... |
|
TD_QUEUE_V |
(2) |
1... .... |
|
TD_WRITEQ_QUEUE_V |
(2) |
1... .... |
|
TD_READQ_QUEUE_V |
(2) |
1... .... |
|
TD_DELETEQ_QUEUE_V |
(2) |
.1.. .... |
|
TD_EXIST2 |
(2) |
.1.. .... |
|
TD_WRITEQ_FROM_V |
(2) |
.1.. .... |
|
TD_READQ_SET_INTO_V |
(2) |
..1. .... |
|
TD_EXIST3 |
(2) |
..1. .... |
|
TD_LENGTH_V |
(2) |
..1. .... |
|
TD_WRITEQ_LENGTH_V |
(2) |
..1. .... |
|
TD_READQ_LENGTH_V |
(2) |
...1 11.. |
|
* |
Reserved |
(2) |
.... ..1. |
|
TD_EXIST7 |
(2) |
.... ..1. |
|
TD_SYSID_V |
(2) |
.... ..1. |
|
TD_WRITEQ_SYSID_V |
(2) |
.... ..1. |
|
TD_READQ_SYSID_V |
(2) |
.... ..1. |
|
TD_DELETEQ_SYSID_V |
(2) |
.... ...1 |
|
* |
Reserved |
(3) |
BIT(16) |
2 |
* |
Reserved |
-----------------------------------------------------------------
The next 3 bytes (TD_EIDOPT5 - TD_EIDOPT7) are the flagword
bits.
A user exit program at XTDEREQ can set the TD_READQ_NOSUSPEND_X
bit for all READQ requests, and may test (but may NOT modify)
the TD_READQ_SET_X bit for all READQ requests.
These bits have no meaning for WRITEQ or DELETEQ commands.
-----------------------------------------------------------------
|
(5) |
BIT(8) |
1 |
TD_EIDOPT5 |
(5) |
1111 111. |
|
* |
Reserved |
(5) |
.... ...1 |
|
TD_READQ_SET_X |
SET specified. |
(6) |
BIT(8) |
1 |
TD_EIDOPT6 |
(6) |
BIT(8) |
1 |
* |
Reserved |
(7) |
BIT(8) |
1 |
TD_EIDOPT7 |
(7) |
11.. .... |
|
* |
Reserved |
(7) |
..1. .... |
|
TD_READQ_NOSUSPEND_X |
NOSUSPEND specified. |
(7) |
...1 1111 |
|
* |
Reserved |
The following definitions are for the rest of the arguments in
the EXEC parameter list, addressed by TD_ADDR1 - TD_ADDR7 in
TD_ADDR_LIST.
Table 3.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
8 |
TD_DATA1 |
(0) |
CHARACTER |
8 |
TD_QUEUE |
the QUEUE name |
(0) |
CHARACTER |
8 |
TD_WRITEQ_QUEUE |
(0) |
CHARACTER |
8 |
TD_READQ_QUEUE |
(0) |
CHARACTER |
8 |
TD_DELETEQ_QUEUE |
Table 4.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
4 |
TD_DATA2 |
(0) |
ADDRESS |
4 |
TD_READQ_SET |
the SET address |
(0) |
CHARACTER |
* |
TD_READQ_INTO |
the INTO area |
(0) |
CHARACTER |
* |
TD_WRITEQ_FROM |
the FROM area |
Table 5.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
2 |
TD_DATA3 |
(0) |
HALFWORD |
2 |
TD_LENGTH |
the data LENGTH |
(0) |
HALFWORD |
2 |
TD_WRITEQ_LENGTH |
(0) |
HALFWORD |
2 |
TD_READQ_LENGTH |
Table 6.
Offset Hex |
Type |
Len |
Name (Dim) |
Description |
(0) |
STRUCTURE |
4 |
TD_DATA7 |
(0) |
CHARACTER |
4 |
TD_SYSID |
the SYSID name |
(0) |
CHARACTER |
4 |
TD_WRITEQ_SYSID |
(0) |
CHARACTER |
4 |
TD_READQ_SYSID |
(0) |
CHARACTER |
4 |
TD_DELETEQ_SYSID |
Table 7.
Len |
Type |
Value |
Name |
Description |
Equate for TD_GROUP.
All Transient Data requests have group code '08'
|
1 |
HEX |
08 |
TD_TRANDATA_GROUP |
Equates for TD_FUNCT values.
|
1 |
HEX |
02 |
TD_WRITEQ |
Writeq |
1 |
HEX |
04 |
TD_READQ |
Readq |
1 |
HEX |
06 |
TD_DELETEQ |
Deleteq |
Start of General Use Programming Interface.
Equates for EIBRCODE values used by Transient Data.
|
1 |
HEX |
00 |
TD_OK_EIBRCODE |
1 |
HEX |
01 |
TD_QZERO_EIBRCODE |
1 |
HEX |
02 |
TD_QIDERR_EIBRCODE |
1 |
HEX |
04 |
TD_IOERR_EIBRCODE |
1 |
HEX |
08 |
TD_NOTOPEN_EIBRCODE |
1 |
HEX |
10 |
TD_NOSPACE_EIBRCODE |
1 |
HEX |
C0 |
TD_QBUSY_EIBRCODE |
1 |
HEX |
D0 |
TD_SYSIDERR_EIBRCODE |
1 |
HEX |
D1 |
TD_ISCINVREQ_EIBRCODE |
1 |
HEX |
D6 |
TD_NOTAUTH_EIBRCODE |
1 |
HEX |
D7 |
TD_DISABLED_EIBRCODE |
1 |
HEX |
E0 |
TD_INVREQ_EIBRCODE |
1 |
HEX |
E1 |
TD_LENGERR_EIBRCODE |
Equates for EIBRESP values used by Transient Data.
|
1 |
DECIMAL |
0 |
TD_OK_EIBRESP |
1 |
DECIMAL |
23 |
TD_QZERO_EIBRESP |
1 |
DECIMAL |
44 |
TD_QIDERR_EIBRESP |
1 |
DECIMAL |
17 |
TD_IOERR_EIBRESP |
1 |
DECIMAL |
19 |
TD_NOTOPEN_EIBRESP |
1 |
DECIMAL |
18 |
TD_NOSPACE_EIBRESP |
1 |
DECIMAL |
25 |
TD_QBUSY_EIBRESP |
1 |
DECIMAL |
53 |
TD_SYSIDERR_EIBRESP |
1 |
DECIMAL |
54 |
TD_ISCINVREQ_EIBRESP |
1 |
DECIMAL |
70 |
TD_NOTAUTH_EIBRESP |
1 |
DECIMAL |
84 |
TD_DISABLED_EIBRESP |
1 |
DECIMAL |
16 |
TD_INVREQ_EIBRESP |
1 |
DECIMAL |
22 |
TD_LENGERR_EIBRESP |
Equates for EIBRESP2 values used by Transient Data.
|
1 |
DECIMAL |
0 |
TD_OK_EIBRESP2 |
OK |
1 |
DECIMAL |
101 |
TD_NOTAUTH_EIBRESP2 |
NOTAUTH *-*-**-**-**-**-**-**-**-**-* *-*-**-**-**-**-**-**-**-**-* *-*-* End of General Use **-* *-* Programming Interface *-* *-*-*-**-**-**-**-**-**-*-*-* |