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