GDSX Manual
Service Routines
Extended General Device Support (GDSX) Manual–134303
8-59
Q^CP[X]
 INT flags,t;
 INT DISK^NAME [0:11];
 INT readcnt := 20, 
 cnt := 0;
 INT GOTSEM := 0;
 DISC^NAME ':=' ["$DISK1 SUBVOLA FILEA "];
 flags := 1;
 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;










