GDSX Manual
Service Routines
Extended General Device Support (GDSX) Manual–134303
8-60
^READ[X]
3. Checkpoints including both global data and task stack may be accomplished as 
follows:
INT I^GOT^CP^SEM;
 .
 .
I^GOT^CP^SEM := GET^CPSEM;
CALL Q^CP(...); !As many as required to checkpoint 
 !global data
IF ^CHECKPOINT( ) THEN
 BEGIN
 I^GOT^CP^SEM := 0;
 .
 Do takeover Processing
 .
 END
ELSE
IF I^GOT^CP^SEM THEN
 BEGIN
 CALL GIVE^CPSEM;
 I^GOT^CP^SEM := 0;
 END;
^READ[X]
The ^READ and ^READX procedures return data from an open file to the application 
process’s data area. 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. 
^READLOCK[X]
The ^READLOCK and ^READLOCKX procedures sequentially lock and read records 
in a disk file, exactly like the combination of LOCKREC and READ[X]. 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. 
^READUPDATE[X]
The ^READUPDATE AND ^READUPDATEX procedures are used by 
DEVICE^HANDLER tasks to read messages from the pseudo-$RECEIVE file, and by 
LINE^HANDLER tasks to read messages from the $RECEIVE-like file.
Except for the following considerations, the syntax, condition code settings, and 
considerations regarding these two procedures are the same as the counterparts in the 
Guardian Procedure Calls Reference Manual. 










