The UEPCLPS exit-specific parameter

The UEPCLPS exit-specific parameter is the address of the command-level parameter structure, and is included in exits XFCREQ and XFCREQC.

The command-level parameter structure contains 12 addresses, FC_ADDR0 through FC_ADDRB. It is defined in the DSECT FC_ADDR_LIST, which you should copy into your exit program by including the statement COPY DFHFCEDS.

The command-level parameter list is made up as follows:

FC_ADDR0
is the address of a 9-byte area called the EID, which is made up as follows:
  • FC_GROUP
  • FC_FUNCT
  • FC_BITS1
  • FC_BITS2
  • FC_EIDOPT5
  • FC_EIDOPT6
  • FC_EIDOPT7
  • FC_EIDOPT8
The name of the DSECT mapping the EID is FC_EID.
FC_GROUP
Always X'06', indicating that this is a file control request.
FC_FUNCT
One byte that defines the type of request:
X'02'
READ
X'04'
WRITE
X'06'
REWRITE
X'08'
DELETE
X'0A'
UNLOCK
X'0C'
STARTBR
X'0E'
READNEXT
X'10'
READPREV
X'12'
ENDBR
X'14'
RESETBR
FC_BITS1
Existence bits that define which keywords that contain values were specified. To obtain the value 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 keyword was not specified in the request and the address should not be used.
X'80'
Set if the request contains the keyword FILE. If set, FC_ADDR1 is meaningful.
X'40'
Set if the request contains any of the keywords INTO, SET, or FROM. If set, FC_ADDR2 is meaningful.
X'20'
Set if the request specifies LENGTH or NUMREC, or if a STARTBR, RESETBR, or ENDBR request specifies REQID. If set, FC_ADDR3 is meaningful.
X'10'
Set if the request specifies RIDFLD. If set, FC_ADDR4 is meaningful.
X'08'
Set if the request specifies KEYLENGTH. If set, FC_ADDR5 is meaningful.
X'04'
Set if the request is READNEXT or READPREV and specifies REQID. If set, FC_ADDR6 is meaningful.
X'02'
Set if the request specifies SYSID. If set, FC_ADDR7 is meaningful.
X'01'
Not used by file control.
FC_BITS2
Second set of existence bits.
X'20'
Set if the request specifies TOKEN. If set, FC_ADDRB is meaningful.
FC_EIDOPT5
Indicates whether certain keywords that do not take values were specified on the request.
X'04'
MASSINSERT specified.
X'02'
RRN specified.
X'01'
SET (and not INTO) was specified.
Note: Your program must test for keywords at the bit level, because there may be more than one of these keywords present.
FC_EIDOPT6
Indicates whether certain keywords that do not take values were specified on the request.
X'80'
RBA specified.
X'40'
GENERIC specified.
X'20'
GTEQ specified.
X'10'
UNCOMMITTED specified.
X'08'
CONSISTENT specified.
X'04'
REPEATABLE specified.
X'01'
NOSUSPEND specified (on READ, READNEXT, READPREV, WRITE, DELETE, or REWRITE).
Note:
  1. If the read integrity bits (for UNCOMMITTED, CONSISTENT, and REPEATABLE) are off (zero) on the command, the read integrity options specified on the file resource definition are used. If you need to know what these are, you can issue an EXEC CICS® INQUIRE FILE command.
  2. Your program must test for keywords at the bit level, because there may be more than one of these keywords present.
FC_EIDOPT7
Indicates whether certain keywords that do not take values were specified on the request.
X'04'
UPDATE specified. This setting is meaningful only for READ requests. For other requests, X'04' may or may not be set.
X'01'
Either DEBREC or DEBKEY specified (see FC_EIDOPT8). This setting is meaningful only for READ requests. For other requests, X'01' may or may not be set.
Note: Your program must test for keywords at the bit level, because there may be more than one of these keywords present.
FC_EIDOPT8
Indicates whether certain keywords that do not take values were specified on the request.
X'80'
DEBKEY specified.
X'40'
DEBREC specified.
X'20'
TOKEN specified.
X'08'
XRBA specified. If the XRBA bit is on, FC_RIDFLD (described in DSECT DFHFCEDS) points to an 8-byte extended relative byte address (XRBA).
FC_ADDR1
is the address of an 8-byte area containing the name specified on the FILE keyword.
FC_ADDR2
is the address of one of the following:
  • A 4-byte address returned for SET (if the request is READ, READNEXT, or READPREV, and if FC_EIDOPT5 indicates that this is SET).
  • Data returned for INTO (if the request is READ, READNEXT, or READPREV, and if FC_EIDOPT5 indicates that this is not SET).
  • Data from FROM (if the request is WRITE or REWRITE).
FC_ADDR3
is the address of one of the following:
  • The halfword value of LENGTH (if the request is READ, WRITE, REWRITE, READNEXT, or READPREV).

    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.

  • The returned halfword value of NUMREC (if the request is DELETE).
  • The halfword value of REQID (if the request is STARTBR, RESETBR, or ENDBR).
FC_ADDR4
is the address of an area containing the value of the RIDFLD keyword.
FC_ADDR5
is the address of the halfword value of KEYLENGTH.
FC_ADDR6
is the address of the halfword value of REQID (if the request is READNEXT or READPREV).
FC_ADDR7
is the address of an area containing the value of SYSID.
FC_ADDR8
is the address of a value intended for CICS internal use only. It must not be used.
FC_ADDR9
is the address of a value intended for CICS internal use only. It must not be used.
FC_ADDRA
is the address of a value intended for CICS internal use only. It must not be used.
FC_ADDRB
is the address of the fullword value of TOKEN (if the request is READ, READNEXT, READPREV, REWRITE, DELETE, or UNLOCK).