Envoy Application Programming Manual

Table Of Contents
File-System Procedures
Envoy Application Programming Manual427159-001
C-2
File Number Parameters
WRITE[X]
WRITEREAD[X]
Regardless of whether you are using wait or nowait I/O, the following procedure calls
must complete processing before control passes to the next instruction or statement:
CANCEL
CHANGELIST
CLOSE
DEFINELIST
DEVICEINFO
FILEINFO
HALTPOLL
OPEN
SETMODE
An Envoy I/O process is characterized by direct control. Only one I/O request per line
may be pending at any time and that request must be completed before another is
accepted for the same line. If a request is made while a nowait I/O operation is pending
on the specified line, the request is rejected with a condition code of CCL (FILEINFO
error code 27 or 28).
A WRITEREAD call generates two separate I/O requests: a WRITE followed by a
READ. The READ request is not queued until the associated WRITE has completed
processing.
File Number Parameters
All file-system procedures except OPEN and DEVICEINFO refer to the desired
communications line by way of a file number parameter returned from the OPEN call
that opened the line. The OPEN and DEVICEINFO calls refer to the line by its
configured file name. Example C-1
shows the use of the file number parameter:
Tag Parameters
Several of the file-system procedure calls include a tag parameter you can use to identify
a particular nowait I/O request. Some of the Compaq data communications products
other than Envoy allow you to queue multiple nowait I/O requests for a single line. For
those products, the tag is indeed a necessary identification mechanism. With Envoy, you
can still find creative uses for the tag. You could, for example, use a tag value of 1 to
identify READ requests and a tag of 2 to identify WRITE requests.
To use tags, you simply supply a unique double-word integer value in each nowait I/O
call and the name of a double-word integer variable in each AWAITIO call. Upon return
from the AWAITIO procedure, the tag variable specified in the AWAITIO call contains
Example C-1. Use of the File Number Parameter
INT file^name [0:11] := [”$LINE3”, 9 * [” “]], file^number;
CALL OPEN (file^name,file^number);
CALL SETMODE (file^number,18,10);