GDSX (Extended General Device Support) Manual
Service Routines
Extended General Device Support (GDSX) Manual—529931-001
8-60
Q^CP[X]
GOTSEM := PSEM(SEM); ! PREVIOUSLY INITIALIZED
! IN USER^INITIALIZE
CALL ^FILE_OPEN ( DISK^NAME, FILE^NUM, flags);
IF <> THEN
BEGIN
.
.
Call DEBUG; ! DO ERROR HANDLING
END;
CALL ^READ (FILE^NUM, area, readcnt);
IF <> THEN
BEGIN
CALL VSEM(SEM);
Call DEBUG; ! DO ERROR HANDLING
RETURN;
END;
CALL ^Awaitio(FILE^NUM,@area,cnt);
IF <> THEN
BEGIN
CALL VSEM(SEM);
Call DEBUG; ! DO ERROR HANDLING
END;
! We can only checkpoint user global variables with Q^CP
t := 0;
CALL GET^CPSEM;
t := Q^CP (area,10,FILE^NUM,1); !We checkpoint
!data read from the disk file and
!file number so the backup process
!user globals are in sync with the
!primary
IF t THEN
CALL DO^CP; ! A DO^CP is done to copy data to the
! the backup process.
CALL GIVE^CPSEM;
IF GOTSEM THEN CALL VSEM(SEM);
.
END;
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