The UEPCLPS exit-specific parameter

The UEPCLPS exit-specific parameter is included in both exit XNQEREQ and exit XNQEREQC, and contains the address of the command-level parameter structure. The command-level parameter structure contains four addresses, NQ_ADDR0 through NQ_ADDR3. It is defined in the DSECT NQ_ADDR_LIST, which you should copy into your exit program by including the statement COPY DFHNQUED.

The command-level parameter list is made up as follows.
NQ_ADDR0
is the address of a 9-byte area called the EID, which is made up as follows:
  • NQ_GROUP
  • NQ_FUNCT
  • NQ_BITS1
  • NQ_BITS2
  • NQ_EIDOPT5
  • NQ_EIDOPT6
  • NQ_EIDOPT7
  • NQ_EIDOPT8
NQ_GROUP
Always X'12', indicating that this is a task control request.
NQ_FUNCT
One byte that defines the type of request:
X'04'
ENQ
X'06'
DEQ
NQ_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 RESOURCE keyword. If set, NQ_ADDR1 is meaningful.
X'40'
Set if the request contains an argument for the LENGTH keyword. If set, NQ_ADDR2 is meaningful.
X'20'
Set if the request contains an argument for the MAXLIFETIME keyword. If set, NQ_ADDR3 is meaningful.
NQ_BITS2
Two bytes not used by the enqueue domain.
NQ_EIDOPT5
One byte not used by the enqueue domain.
NQ_EIDOPT6
One byte not used by the enqueue domain.
NQ_EIDOPT7
One byte not used by the enqueue domain.
NQ_EIDOPT8
Indicates whether certain keywords were specified on the request.
X'04'
NOSUSPEND was specified.
X'02'
DEQ was specified.
X'01'
ENQ was specified.
NQ_ADDR1
is the address of an area containing the value from RESOURCE.
NQ_ADDR2
is the address of the halfword value of LENGTH.
NQ_ADDR3
is the address of the fullword value of MAXLIFETIME.

The relationship between arguments, keywords, data types, and input/output types is summarized for the enqueue commands in Table 1.