OSI/TS Management Programming Manual
Sample Programs
056786 Tandem Computers Incorporated C–5
END; ! send^spi^cmd
?PAGE
! ***********************************************************
! * reset^spi^buf *
! ***********************************************************
! This procedure resets the SPI buffer position.
PROC reset^spi^buf;
BEGIN
 INT init^buffer;
 ! Reset SPI buffer length.
 os4^buf[1] := zos4^val^buflen;
 ! Reset position to initial position of SPI buffer.
 init^buffer := zspi^val^initial^buffer;
 spi^err := SSPUTTKN(os4^buf,
 zspi^tkn^initial^position,init^buffer);
 IF spi^err THEN
 CALL DEBUG;
END; ! reset^spi^buf
! ***********************************************************
! * build^cmd^buf *
! ***********************************************************
PROC build^cmd^buf(cmd, obj^type, obj^name);
 INT cmd, ! command number
 obj^type, ! object type
 .obj^name; ! object name
BEGIN
 ! Initialize an SPI buffer.
 spi^err := SSINIT(os4^buf,zos4^val^buflen,zos4^val^ssid,
 zspi^val^cmdhdr,cmd,obj^type);
 IF spi^err THEN
 CALL DEBUG;
 ! Put object-name token in buffer.
 spi^err := SSPUTTKN(os4^buf,zcom^tkn^objname,obj^name);
 IF spi^err THEN
 CALL DEBUG;
 ! Put manager token in buffer.
 tkn^value[0] ':=' ["\ $TT01 "];
 spi^err := SSPUTTKN(os4^buf,zspi^tkn^manager,tkn^value);
 IF spi^err THEN
 CALL DEBUG;
 ! Put MAXRESP token in buffer.
 tkn^value[0] := -1;
 spi^err := SSPUTTKN(os4^buf,zspi^tkn^maxresp,tkn^value);
 IF spi^err THEN










