DFHETC and DFHETL
DFHEIP routes all terminal control requests to DFHETC (the EXEC interface processor for terminal control). DFHETC handles BUILD_ATTACH, EXTRACT, and POINT_TC requests itself. It routes all other requests relating to an MRO or LU6.1 session to DFHZARQ except for FREE_TC and ALLOCATE_TC requests, which are routed to DFHZISP. It routes all other requests relating to an LU6.2 session to DFHETL except for ALLOCATE_TC, which is routed to DFHZISP.
DFHETL performs the following actions:
- Maps an application request into a form suitable for the DFHZCP and DFHZCC application request modules. This includes mapping application data into GDS records.
- Detects errors and returns error codes to the application.
- Unmaps data from GDS records.
- Maintains state indicators.
For ISSUE CONFIRMATION, CONNECT PROCESS, EXTRACT PROCESS, ISSUE ERROR,
ISSUE ABEND, and ISSUE SIGNAL commands, DFHETL:
- Maps application requests into DFHLUC macro calls.
- Updates state indicators in the TCTTE (for example, the TCTTE indicator that shows that a CONNECT PROCESS command has been issued).
For SEND and CONVERSE commands, DFHETL:
- Obtains storage for the processing of outbound application data.
- Creates attach FMHs, if appropriate.
- Calls DFHZARL to transmit data.
For RECEIVE commands, DFHETL:
- Obtains storage for the processing of inbound data.
- Calls DFHZARL to receive inbound data.
- Extracts inbound FMHs, as appropriate.
- Unmaps inbound data.
- Validates LLs and rejects them if not valid.
- Manages the passing of data back to the application.
- If the application issues a RECEIVE NOTRUNCATE request to receive only part of the chain, retains the residual data for subsequent RECEIVE requests. DFHETL receives one complete chain of data at a time from DFHZARL.
For WAIT commands, DFHETL calls DFHZARL.
For FREE commands, DFHETL:
- Checks that the terminal is in the correct state to be freed.
- Frees the storage used to hold RECEIVE data and the ETCB.
- Calls DFHZISP to free the session.