NQUE - Enq/Deq EXEC Parameter List

      CONTROL BLOCK NAME = DFHNQUEC
      DESCRIPTIVE NAME = CICS TS EXEC argument list for ENQ/DEQ
                                       user exits.
           Licensed Materials - Property of IBM
            Restricted Materials of IBM 
           5655-Y04
           (C) Copyright IBM Corp. 1997 
         Although provided in a general library, DFHNQUED 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.
                     NQ_ADDR0
                     NQ_ADDR1
                     NQ_ADDR2
                     NQ_ADDR3
                     NQ_GROUP
                     NQ_FUNCT
                     NQ_BITS1
                     NQ_BITS2
                     NQ_EIDOPT5
                     NQ_EIDOPT6
                     NQ_EIDOPT7
                     NQ_EIDOPT8
                     NQ_ENQ
                     NQ_DEQ
                     NQ_RESOURCE
                     NQ_LENGTH
                     NQ_MAXLIFETIME
         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 ENQ/DEQ
           requests, for use by global user exit programs at exit
           points XNQEREQ and XNQEREQC.
           On entry to the XNQEREQ and XNQEREQC User Exits, the EXEC
           parameter list is pointed to by UEPCLPS.
           The EXEC parameter list for ENQ/DEQ consists of four
           addresses.
           The four addresses are defined by NQ_ADDR0 to NQ_ADDR3.
           This DSECT defines these addresses and the areas that
           they point to.
           On entry to the XNQEREQ and XNQEREQC 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 ENQ/DEQ.
      LIFETIME = Lifetime of the NQ 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
                       XNQEREQ and XNQEREQC is addressed by UEPNQTOK.
      INNER CONTROL BLOCKS =
           NQ_ADDR_LIST declares the EXEC addresses.
           NQ_EID defines the EID pointed to by NQ_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 EXEC CICS
      command. The addresses are only valid if the argument is
      applicable to this command.
      The existence bits in the EID component (NQ_BITS1) specify
      those addresses that are valid, and the flagword bits
      (NQ_EIDOPT5 - NQ_EIDOPT7) specify the keywords that were given
      in the EXEC CICS command.
      Therefore, you can deduce the useage of each address by testing
      these bits in conjunction with the command function(NQ_FUNCT).
Table 1.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 16 NQ_ADDR_LIST NQ_ADDR_LIST consists of
(0) ADDRESS 4 NQ_ADDR0 the EID
(4) ADDRESS 4 NQ_ADDR1 RESOURCE
(8) ADDRESS 4 NQ_ADDR2 LENGTH
(C) ADDRESS 4 NQ_ADDR3 MAXLIFETIME
      NQ_EID (addressed by NQ_ADDR0) gives the command function, and
      contains the existence and flagword bits.
      Note: Equates for NQ_GROUP, NQ_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 NQ_EID
(0) CHARACTER 1 NQ_GROUP '12'X for ENQ/DEQ
(1) CHARACTER 1 NQ_FUNCT '04'X for ENQ
                                         '06'X for DEQ
   -----------------------------------------------------------------
    The existence bits (NQ_BITS1) specify the parameters that are
    valid for this command.
    For example, NQ_EXIST2 set on indicates that NQ_ADDR2 is valid,
    meaning that it addresses a LENGTH value.
    NQ_ADDR0 is always valid and has no existence bit.
   -----------------------------------------------------------------
(2) BIT(8) 1 NQ_BITS1
(2) 1... ....   NQ_EXIST1
(2) 1... ....   NQ_RESOURCE_V
(2) .1.. ....   NQ_EXIST2
(2) .1.. ....   NQ_LENGTH_V
(2) ..1. ....   NQ_EXIST3
(2) ..1. ....   NQ_MAXLIFETIME_V
(2) ...1 1111   * Reserved
(3) BIT(16) 2 * Reserved
   -----------------------------------------------------------------
    The next 3 bytes (NQ_EIDOPT5 - NQ_EIDOPT7) are the flagword
    bits.
    A user exit program at XNQEREQ can set the NQ_NOSUSPEND_X
    bit for an ENQ command.
   -----------------------------------------------------------------
(5) BIT(8) 1 NQ_EIDOPT5
(5) BIT(8) 1 * Reserved
(6) BIT(8) 1 NQ_EIDOPT6
(6) BIT(8) 1 * Reserved
(7) BIT(8) 1 NQ_EIDOPT7
(7) 1111 1...   * Reserved
(7) .... .1..   NQ_NOSUSPEND_X NOSUSPEND specified.
(7) .... ..11   * Reserved
      The following definitions are for the rest of the arguments in
      the EXEC parameter list, addressed by NQ_ADDR1 - NQ_ADDR3 in
      NQ_ADDR_LIST.
Table 3.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE * NQ_DATA1
(0) CHARACTER * NQ_RESOURCE the RESOURCE
Table 4.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 2 NQ_DATA2
(0) HALFWORD 2 NQ_LENGTH the LENGTH
Table 5.
Offset Hex Type Len Name (Dim) Description
(0) STRUCTURE 4 NQ_DATA3
(0) FULLWORD 4 NQ_MAXLIFETIME the MAXLIFETIME

Constants

Table 6.
Len Type Value Name Description
    Equate for NQ_GROUP.
    All ENQ/DEQ requests have group code '12'
1 HEX 12 NQ_ENQDEQ_GROUP
    Equates for NQ_FUNCT values.
1 HEX 04 NQ_ENQ Enq
1 HEX 06 NQ_DEQ Deq
       Start of General Use Programming Interface.
       Equates for EIBRCODE values used by Enq/Deq.
1 HEX 00 NQ_OK_EIBRCODE
1 HEX E0 NQ_INVREQ_EIBRCODE
1 HEX E1 NQ_LENGERR_EIBRCODE
1 HEX 32 NQ_ENQBUSY_EIBRCODE
       Equates for EIBRESP values used by Enq/Deq.
1 DECIMAL 0 NQ_OK_EIBRESP
1 DECIMAL 16 NQ_INVREQ_EIBRESP
1 DECIMAL 22 NQ_LENGERR_EIBRESP
1 DECIMAL 55 NQ_ENQBUSY_EIBRESP
       Equates for EIBRESP2 values used by Enq/Deq
1 DECIMAL 0 NQ_OK_EIBRESP2 OK
1 DECIMAL 1 NQ_LENGERR_EIBRESP2 LENGERR
1 DECIMAL 2 NQ_INVREQ_EIBRESP2 INVREQ *-*-**-**-**-**-**-**-**-**-* *-*-**-**-**-**-**-**-**-**-* *-*-* End of General Use **-* *-* Programming Interface *-* *-*-*-**-**-**-**-**-**-*-*-*