GDSX (Extended General Device Support) Manual
Design and Development
Extended General Device Support (GDSX) Manual—529931-001
2-12
Calling Restrictions
Calling Restrictions
User code is compiled to produce an object file that is bound with TSCODE, so there
are restrictions to which user code must conform.
Multithreaded operation would not be possible within GDSX if user tasks called
Guardian I/O procedures in a waited manner. For example, if a DEVICE^HANDLER
task called a waited READ, the whole process, not just the one DEVICE^HANDLER
task, would come to a halt, and the other tasks could not be serviced during the
suspension.
Therefore, TSCODE provides you with a set of pseudo Guardian, Pathway/iTS, and
TMF procedure calls that, with some exceptions, have the same parameters, syntax,
meaning, and resultant capabilities as their Guardian, Pathway/iTS, and TMF
counterparts. These procedures comprise a layer of TSCODE software between
USCODE and Guardian systems that is virtually transparent to USCODE, while
allowing TSCODE to support multithreaded operation and keep track of each internal
I/O operation. Pseudo procedures determine whether an operation is to be handled
completely within GDSX or is to be handled outside GDSX.
Note that a number of Guardian procedures—NUMIN, NUMOUT, MYTERM, and
PROCESSHANDLE_DECOMPOSE_, for example—are resident system procedures
and do not cause the GDSX process to be suspended. Therefore, they can be called
by USCODE. As a rule, if a Guardian call would suspend not just a task but the whole
GDSX process, do not use it.
Following is a list of pseudo procedure calls supported by TSCODE. (Many TSCODE-
supported utility procedures do not have Guardian file-system counterparts, and are
not included here. See Section 8, “Service Routines,” for a description of all TSCODE-
supported procedures.) An X at the end of or in the middle of a procedure name
indicates that both local-memory and extended-memory procedures are available. For
example, ^AWAITIO[X] indicates that the ^AWAITIO and ^AWAITIOX procedures are
available.
Caution. The pseudo Guardian, Pathway/iTS, and TMF procedure calls must be used instead
of their counterparts.
** ^ABORTTRANSACTION ^READ[X]
^AWAITIO[X] ^READLOCK[X]
** ^BEGINTRANSACTION ^READUPDATE[X]
^CANCEL ^READUPDATELOCK[X]
^CANCELREQ ^RECEIVEINFO
^CANCELTIMEOUT ^REPLY[X]
** ^CLOSE ** ^RESUMETRANSACTION
^CONTROL ^SERVERCLASS_DIALOG_ABORT_