request_id OpenVMS usage:address type: longword (unsigned) access: read only mechanism: by reference Request identifier value supplied by the symbiont when it calls your input routine. The request_id argument is the address of a longword containing this request identifier value. If your input routine initiates an asynchronous operation (for example, a call to the $QIO system service), your input routine must copy the request identifier value specified by request_ id because this value must later be passed to the PSM$REPORT routine. See the description of the PSM$REPORT routine for more information. work_area OpenVMS usage:address type: longword (unsigned) access: write only mechanism: by reference Work area supplied by the symbiont for the use of your input routine. The symbiont supplies the address of this area when it calls your routine. The work_area argument is a longword into which the symbiont writes the address of the work area. The work area is a section of memory that your input routine can use for buffering and for other internal operations. The size of the work area allocated is specified by the work_size argument in the PSM$PRINT routine. If you do not specify work_ size in the call to PSM$PRINT, no work area is allocated. In a multithreaded symbiont, a separate work area is allocated for each thread. This work area is shared by all user routines. The work area is initialized to zero when the symbiont is first started. func OpenVMS usage:function_code type: longword (unsigned) access: read only mechanism: by reference Function code supplied by the symbiont when it calls your input routine. The func argument is the address of a longword containing this code. The function code specifies the reason the symbiont is calling your input routine or, in other words, the function that the symbiont expects your routine to perform at this time. Most function codes require or allow additional information to be passed in the call by means of the funcdesc and funcarg arguments. The description of each input function code, therefore, includes a description of how these two arguments are used with that function code. Following is a list of all the function codes that the symbiont can specify when it calls your input routine (function codes applicable only to format and output routines are explained in the descriptions of the USER-FORMAT-ROUTINE and USER-OUTPUT- ROUTINE, respectively); all function codes are defined by the $PSMDEF macro.