SPI Programming Manual (H06.24+, J06.13+)
SPI Concepts and Protocol
SPI Programming Manual—427506-007
2-2
Requester Sends a Command Message
An entire command must always be sent in one command message. SPI does not
support commands continued across multiple messages, nor does it support multiple
commands per message. However, a command can be applied to multiple objects.
If the requester needs to perform the same command on several objects, the
subsystem might accept commands with multiple object-name tokens, each with a
different object name as its value, or it might accept special forms of object names
(such as object-name templates that contain wild cards) that specify a collection of
objects. Not all subsystems support these features, and each subsystem has its own
rules for acceptable object name forms.
Requester Sends a Command Message
The requester then uses a language-dependent mechanism, usually involving the file
system, to send the command and receive the response. In TAL, for example, a
requester program calls the WRITEREAD procedure.
Server Validates the Received Message
When it receives the command message, the server resets the buffer and then verifies
that the message is an SPI command message, that it is long enough to be a valid
message but not so long that it overflows the read buffer, and that the used portion of
the buffer is not longer than the buffer length recorded in the message header. The
server then verifies that it is the intended recipient of the message by checking for its
SSID in the message header, and checks that no field in an extensible structured token
has a version greater than its own. Finally, the server examines the buffer’s contents
for missing, required, invalid, and unrecognized tokens and token values.
Server Applies the Command to Objects
If the message is a valid command, the server locates the target object, applies the
command to that object, and composes a response record describing the outcome of
that processing. If the command is directed to more than one object, the server verifies
that there is room in the buffer for another response record before it applies the
command to the next object.
Server Composes a Response Message
The response record contains at least a return code token with a value that
summarizes the outcome of processing for the object. The response record might also
contain additional tokens and, if there was a problem, one or more error lists.
If the command is directed to more than one object, the subsystem returns its
response information in multiple response records, each containing all the information
that results from performing the command on one object. If not all of the response
records fit in the buffer, the server stops processing objects when it runs out of buffer
space and adds a context token to tell the requester that not all objects were










