SPI Programming Manual (G06.24+, H06.03+, J06.03+)

SPI Programming Examples
SPI Programming Manual427506-006
E-85
Example E-20: Routines for C Requesters and
Servers
Example E-20: Routines for C Requesters and Servers
This C code contains common routines used by the C requester and server example
programs.
Source File
SECRUTLC
BEGIN
l^await^done := true;
server^up := false;
l^recoverable^err := false; ! Set default value
IF file^error = 201 THEN l^recoverable^err := true;
IF file^error = 211 THEN l^recoverable^err := true;
IF file^error = 6 THEN ! System message
BEGIN
start^buffer ':=' req^buffer FOR read^count BYTES;
IF start^buffer.msgcode = -5 THEN ! STOP message
l^recoverable^err := true;
IF start^buffer.msgcode = -6 THEN ! ABEND message
l^recoverable^err := true;
END; -- of IF file^error = 6
sline ':=' "File system error (" -> @sp;
CALL numout (sp, file^error, 10, 3);
sp [3] ':=' ") on WRITEREAD to the SERVER" -> @sp;
CALL writex (term, sline, @sp '-' @sline);
IF <> THEN CALL get^file^error (term);
IF l^recoverable^err THEN
BEGIN
DO
BEGIN
CALL restart^server;
END
UNTIL server^up := true;
CALL cancel (srvr^file^num); ! Cancel the IO
END ELSE ! IF l^recoverable^err ELSE
BEGIN
CALL debug;
END; -- of IF l^recoverable^err
END; -- of IF file^error = 40
END ELSE ! IF < ELSE
BEGIN
l^op^done := true;
l^await^done := true;
END; -- of IF <
END
UNTIL l^await^done = true;
END
UNTIL l^op^done = true;
END; ! -- of PROC write^read^server;
Example E-19. TAL File: SETRUTIL Supporting Code (page4of4)