Note: You must never modify an input field by altering the data that is pointed to by
the command-level parameter list. To do so would corrupt storage belonging
to the application program and would cause a failure when the program
attempted to reuse the field.
Modifying output fields: The technique described in “Modifying input fields” on
page 109 is not suitable for modifying output fields. (The results would be returned
to the new area instead of the application’s area, and would be invisible to the
application.)
An output field is modified by altering the data that is pointed to by the
command-level parameter list. In the case of an output field, you can modify the
application’s data in place, because the application is expecting the field to be
modified anyway.
Modifying the EID
It is not possible to modify the EID to make major changes to requests. It is not
possible, for example, to change an INQUIRE FILE request to a SET FILE request.
However, you can make minor changes to requests, such as to turn on the
existence bit for a variable that had not been specified on the current request. The
following paragraph lists the bits in the EID that can be modified. Any attempt to
modify any other part of the EID is ignored.
Your exit program can modify any bit in FCIS_BITS1, FCIS_BITS2, FCIS_BITS3,
FCIS_BITS4, FCIS_BITS5, FCIS_BITS6 and FCIS_BITS7, except for:
v The existence bit for the FILE keyword.
v The bits for the START, NEXT, and END keywords.
v Any bits described as “not used by file control”.
v Any bit corresponding to a keyword that is not applicable to the command being
executed. For example, the bit for the CLOSED keyword can be modified on a
SET FILE request but not on an INQUIRE FILE request, because CLOSED has
meaning only for a SET FILE request. See the descriptions in Table 5 on page
107 and Table 6 on page 108.
Your program can provide its own command-level parameter structure and EID, in
which case you should modify UEPCLPS and TS_ADDR0 respectively to point to
the new structures.
The EID is reset to its original value before return to the application program. That
is, changes to the EID are retained for the duration of the file control SPI request
only.
Note: If you modify the EID, you must be careful not to create inconsistent
parameters. For example, if the original request specified SET FILE OPEN
and your exit turned on the EID bit for CLOSED, the resulting SET FILE
request would specify both OPEN and CLOSED. In this case, the results of
the command would be unpredictable.
Use of the task token UEPTSTOK
UEPTSTOK provides the address of a 4-byte area that you can use to pass
information between successive file control requests in the same task. (By contrast,
UEPFATOK is usable only for the duration of a single file control request, because
its contents may be destroyed at the end of the request.) For example, if you need
to pass information between successive invocations of XFCAREQ exit, UEPTSTOK
provides a means of doing this.
110 Customization Guide