z/OS JES2 Macros
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


$DTETAB – Build and map the DTE tables

z/OS JES2 Macros
SA32-0996-00

Use the $DTETAB macro instruction to build the DTE tables accessed by the $GETABLE service.

Use $DTETAB to map and generate DTE table entries.

$DTETAB entries are used to define the start of a user table ($DTETAB TABLE=USER...) or a JES2 table ($DTETAB TABLE=HASP...), the end of a table ($DTETAB TABLE=END) or an entry in a table ($DTETAB NAME=ANANIA...).

Note: The format description that follows breaks the macro into a boundary form (the form that starts or ends a table) and an entry form (the form that defines each table entry).

Format description

The following formats apply:

Boundary form

Read syntax diagramSkip visual syntax diagram
>>-+--------+--$DTETAB------------------------------------------>
   '-symbol-'            

>--TABLE--=--+-+---+--USER--+----------+--+---+-+--------------><
             | '-(-'        '-,NOENTRY-'  '-)-' |   
             +-+---+--HASP--+----------+--+---+-+   
             | '-(-'        '-,NOENTRY-'  '-)-' |   
             +-END------------------------------+   
             '-DYNAMIC--------------------------'   

Entry form

Read syntax diagramSkip visual syntax diagram
>>-+--------+--$DTETAB--NAME--=--subtask-name------------------->
   '-symbol-'                                   

>--+--------------------+--+------------------------------+----->
   '-,ID--=--subtask-id-'  '-,EPNAME--=--entry-point-name-'   

>--+-------------------------------+---------------------------->
   '-,EPLOC--=--+-field----------+-'   
                +-(field,MODMAP)-+     
                +-(address,UCT)--+     
                +-(label,ENTRY)--+     
                +-(label,ADDR)---+     
                +-(label,VCON)---+     
                '-(label,PADDR)--'     

>--+------------------------------+----------------------------->
   '-,HEAD--=--+-field----------+-'   
               +-(address,HCT)--+     
               +-(address,UCT)--+     
               +-(label,ADDR)---+     
               '-(offset,TOKEN)-'     

>--+--------------------------------+--------------------------->
   '-,HEADTK--=--+-name-----------+-'   
                 +-(name,SYSTEM)--+     
                 +-(name,SUBSYS)--+     
                 +-(name,HOME)----+     
                 +-(name,PRIMARY)-+     
                 '-(name,TASK)----'     

>--+--------------------------------+--+------------------+----->
   |              .-0-------------. |  |          .-NO--. |   
   '-,WORKLEN--=--+-work-area-len-+-'  '-,GEN--=--+-YES-+-'   

>--+-------------------+--+-------------------+----------------->
   |           .-NO--. |  |           .-NO--. |   
   '-,REQD--=--+-YES-+-'  '-,STAE--=--+-YES-+-'   

>--+--------------------+--------------------------------------><
   |            .-YES-. |   
   '-,SZERO--=--+-NO--+-'   

NAME=
Specifies the subtask name that HASP messages use to identify the subtask to the operator.
ID=
Specifies the subtask identifier used in the $DTE DSECT.
EPNAME=
Specifies the entry point name used by $DTEDYNA for the MVS™ IDENTIFY macro call.
EPLOC=
Specifies the offset into the specified control block and, optionally, the control block name from which the entry point address is obtained, entry, address and VCON. The control block name defaults to either MODMAP (if this macro is used to build a HASP DTE table) or UCT (if this macro is used to build a USER DTE table). If the ‘control block name’ is specified here it overrides either default value.
Specify EPLOC as follows:
field
Specifies a MODMAP field if this is the Hasp table or a UCT field if this is the USER TABLE.
(field,MODMAP)
Explicitly specifies a MODMAP field.
(field,UCT)
Explicitly specifies a UCT field.
(label,ENTRY)
Indicates that 'label' is the name of the subtask entry point routine defined using the $ENTRY.
(label,ADDR)
Specifies a label in the current module .
(label,VCON)
Specifies a label in the external module.
(label,PADDR)
Specifies a routine whose address is in the $PADDR.
HEAD=
Specifies the offset, control block name, address and token of the subtask type chain head. The control block name defaults to either HCT (if this macro is used to build a HASP DTE table) or UCT (if this macro is used to build a USER DTE table).
Specify HEAD as follows:
field
Specifies a HCT field if this is the HASP table or a UCT field if this is the USER table.
(field,HCT)
Explicitly specifies a HCT field.
(field,UCT)
Explicitly specifies a UCT field.
(label,ADDR)
Specifies a label in the current module.
(offset,TOKEN)
Indicates that HEAD field CB address is in MVS name/token pair. HEADTK= must be specified.
HEADTK=
Specifies the NAME associated with a name/token pair (created using the IEANTCR callable service). The name/token pair contains the address of the control block that contains the HEAD field. NAMEs can be up to 16 bytes long (and must match the name specified on a IEANTCR call). The first 4 bytes of the token are assumed to be the control block address. The remaining 12 bytes of the token are not used.

The control block address (from the token) is combined with the offset specified on HEAD= to determine the DTE pointer. HEADTK= is required, and only allowed, if HEAD=(offset,TOKEN) was specified.

NAME/TOKEN pairs can be created at various levels. JES2 supports tokens at the SYSTEM, TASK, or HOME level.

The second operand on HEADTK= specifies the level passed on the IEANTRT service call.
HEADTK=(name,SYSTEM)
Indicates SYSTEM level.
HEADTK=(name,SUBSYS)
Indicates SYSTEM level with the last 4 bytes of the 16-byte name replaced by the subsystem id.
HEADTK=(name,HOME)
Indicates HOME level.
HEADTK=(name,PRIMARY)
Indicates PRIMARY.
HEADTK=(name,TASK)
Indicates TASK level.
HEADTK=name
Defaults to TASK level .
WORKLEN=
Specifies the length of the subtask work area extension. If specified, this length is added to the DTE length (DTELEN) when $DTEDYNA obtains DTE storage. WORKLEN=0 (no storage) is the default.
GEN=
Specifies whether (YES) or not (NO) the subtask is ATTACHed during IRMVS processing. YES indicates that the DTE1FLAG flag, DTE1AUTO is set on to indicate subtask ATTACH. GEN=NO is the default.
REQD=
Specifies whether this subtask is essential to system operation and what needs to be done when the subtask abnormally terminates.
YES
A non-recoverable abend is issued by the subtask (that is, CALLRTM RETRY=NO,...) that will cause the JES2 maintask to be terminated with an abend $Z03.
TYPE
A non-recoverable abend will only be issued by the last remaining subtask of this type to cause the JES2 maintask to be terminated with an abend $Z03.
NO
The subtask is not required.
STAE=
Specifies whether (YES) or not (NO) the subtask is DETACHed if STAE is specified on the DETACH macro. YES indicates that the DTE1FLAG flag, DTE1STAE is set on to indicate subtask DETACH. STAE=NO is the default.
SZERO=
Specifies whether (YES) or not (NO) the DTEFLAG1 flag, DTESUB0, is set on at the MVS ATTACH call. YES indicates that the DTEFLAG1 flag, DTE1SUB0 is set on. SZERO=YES is the default.
TABLE=
Specifies either the beginning of a USER or HASP DTE table (TABLE=USER or TABLE=HASP, respectively) or the end of a previously specified table (TABLE=END). The NOENTRY operand indicates that the ENTRY statement will not be generated for this specific DTE table. If TABLE= is specified, all other keywords on this macro are ignored. DYNAMIC specifies that this is a dynamic table.

Environment

  • JES2 main task or during JES2 initialization or termination.
  • $WAIT is not applicable – this macro generates a DSECT or a static table entry; it does not generate executable code.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014