GDSX (Extended General Device Support) Manual
Design and Development
Extended General Device Support (GDSX) Manual—529931-001
2-14
Intertask Communication
USCODE, TSCODE provides local memory pools and extended data segment memory
pools, as well as the following memory pool management procedures:
In order to be consistent with TSCODE, when managing the available global memory
pools, USCODE should use these procedures rather than another means. For further
information on these procedures see Section 8, Service Routines For further
information on memory pools, see Memory Pools on page 2-24.
Although it is not generally advisable, USCODE can use its own extended segment
through calls to ALLOCATESEGMENT and USESEGMENT. The segment IDs
available to USCODE range from 0 through 1023. Such a segment cannot be
checkpointed with a call to ^CHECKPOINT(2), so this kind of space should be
considered temporary working storage.
Intertask Communication
TSCODE provides a set of procedures to support communication between TSCODE
and USCODE, and communication among user tasks. These procedures make it
possible for a DEVICE^HANDLER task to communicate with other DEVICE^HANDLER
or LINE^HANDLER tasks, and for a LINE^HANDLER task to communicate with other
LINE^HANDLER tasks.
The procedures also provide a mechanism for a LINE^HANDLER to efficiently handle
several different types of asynchronous events. The WRITE^ITC^MESSAGE[X]
procedure supports communication between any two user tasks. The procedures
supported are:
In order to be consistent with TSCODE, when doing intertask communication,
USCODE should use these procedures rather than another means. For further
information on these procedures, see Section 8, Service Routines
GETEXTPOOL
GETEXTPOOLX
GETLOCALPOOL
PUTEXTPOOL
PUTLOCALPOOL
Caution. TSCODE expects that if USCODE changes the segment ID from m to n, immediately
after USCODE next relinquishes control, the segment ID has been restored to m. Therefore,
once a user task is using its own segment, it must not relinquish control until the previous
segment ID has been restored.
GET^ITC^FCB SEND^ITC^MSG[X]
ITC^OPENX WAIT^EVENT
^LISTEN WAKE^TASK
NOTIFY^IO^COMPLETION WRITE^ITC^MESSAGE[X]