GDSX Manual
Service Routines
Extended General Device Support (GDSX) Manual–134303
8-3
Intertask Communication
GET_PROCESS_HANDLES_NODE_
MAKE_PROCESS_HANDLE_NULL_
PROCESS_HANDLE_IS_NULL_
Intertask Communication
TSCODE provides a set of procedures to support communication between TSCODE and
USCODE, as well as communication among user tasks. These procedures make it
possible for a DEVICE^HANDLER task to communicate with a device on a line as if
there were no LINE^HANDLER task involved. They also provide a mechanism for a
LINE^HANDLER to efficiently handle several different types of asynchronous events.
The procedures supported are:
GET^ITC^FCB WRITE^ITC^MESSAGE[X]
ITC^OPENX SEND^ITC^MSG[X]
^LISTEN WAIT^EVENT
NOTIFY^IO^COMPLETION WAKE^TASK
IOCB Maintenance
The following procedures allow USCODE to acquire and release I/O control blocks for
I/O operations:
ALLOCATEIOCB
DEALLOCATEIOCB
List Manipulation
You can define and maintain linked lists by means of the following procedures:
DELETE^[X]ITEM
INIT^[X]LIST
INSERT^[X]ITEM
Pool Management
Because the working stack images of tasks are swapped to and from an extended data
segment, I/O operations must be performed by means of global buffers, and large
amounts of data local to tasks are best maintained somewhere other than the tasks’ stack
images. To facilitate the efficient use of memory by both TSCODE and USCODE,
TSCODE provides local memory pools and extended data segment memory pools, as
well as the following memory pool management procedures:
BOUNDS^CHECK GETEXTPOOL PUTEXTPOOL
CHANGE^BUFF^OWNER[X] GETEXTPOOLX PUTLOCALPOOL
CHECK^BUFFER^BOUNDS GETLOCALPOOL
Semaphore Control
The purpose of a semaphore is to ensure the serial access of a shared resource. A task is
considered to have acquired a resource when it owns the semaphore associated with the