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
>>-+--------+--$DTETAB------------------------------------------>
'-symbol-'
>--TABLE--=--+-+---+--USER--+----------+--+---+-+--------------><
| '-(-' '-,NOENTRY-' '-)-' |
+-+---+--HASP--+----------+--+---+-+
| '-(-' '-,NOENTRY-' '-)-' |
+-END------------------------------+
'-DYNAMIC--------------------------'
Entry form
>>-+--------+--$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.
|