GDSX Manual

Service Routines
Extended General Device Support (GDSX) Manual134303
8-89
^WRITE[X]
Events with corresponding constant values from 9-15 can also be defined by you,
and caused for a task with this procedure. Events 9, 10, 11, 12, 13, 14, 15
correspond with WAIT^EVENT mask bits 7, 6, 5, 4, 3, 2, 1, respectively. See the
description of the mask and event variables for the WAIT^EVENT procedure.
Example
CALL WAKE^TASK(HIS^TCB, E^IOC);
^WRITE[X]
The ^WRITE and ^WRITEX procedures write data from an array to an open file.
Because the working stack images of tasks are swapped to and from an extended data
segment during I/O operations, I/O must be performed to and from global buffers.
The syntax, condition code settings, and considerations regarding these two procedures
are the same as the counterparts in the Guardian Procedure Calls Reference Manual.
WRITE^ITC^MESSAGE[X]
The WRITE^ITC^MESSAGE and WRITE^ITC^MESSAGEX procedures initiate one-
way communication between any two tasks. Because the working stack images of tasks
are swapped to and from an extended data segment during I/O operations, I/O must be
performed to and from global buffers.
When calling this procedure, the sending task passes a pointer to a TCB for the task to
receive the message. The procedure allocates an IOCB, which is linked into the
receiving task’s ITC request queue if the task is a LINE^HANDLER task, or into the
receiving task’s pseudo-$RECEIVE file if the task is a DEVICE^HANDLER task. The
intertask I/O initiation is completed by causing the receiving task’s E^IMSG event
(assuming that, if the task is a DEVICE^HANDLER task, it has a current
^READUPDATE on its pseudo-$RECEIVE file, or if the task is a LINE^HANDLER
task, it has a current ^READUPDATE on its in-queue file).
If the receiving task is a LINE^HANDLER task, it detects the message by a call to
WAIT^EVENT, which returns E^IMSG. A call to ^LISTEN(1, 0, 0) returns the IOCB
address. After the message is processed, a call to DEALLOCATEIOCB releases the
IOCB.
Completion of I/O other than
$RECEIVE and intertask message
E^IOC 6 X
Resource is available E^RESOURCE 7
Device added, deleted, altered, started,
or stopped
E^CHANGE 8
Note. The sending task does not have to call ^AWAITIO[X] after it calls
WRITE^ITC^MESSAGE[X].
Event Description Literal Identifier
Literal
Constant
Associated
IOCB