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

SPI Programming Examples
SPI Programming Manual427506-006
E-65
Example E-12: A Simple SPI Server in C
#pragma PAGE "verify_msg"
/*
*========================================================================
* Proc : verify_msg =
* Function : This procedure will determine if a valid SPI buffer was =
* received. =
* Returns : An error code indicating the error found, =
* or ZSPI_ERR_OK (0) which indicates no error was found. =
*========================================================================
*/
short verify_msg (short p_count)
/* size of data read must be at least 6 */
{
if (p_count < 6)
return (ZSPI_ERR_INVBUF);
/* Reset the buffer */
tkn_count = 1;
if (err = SSPUTTKN (req_buffer, ZSPI_TKN_RESET_BUFFER,
(char *) &bufsize))
{
display_spi_error (err, ZSPI_VAL_SSPUTTKN,
ZSPI_TKN_RESET_BUFFER, false);
return (ZSPI_ERR_INVBUF);
}
/* header type must be a complete header */
/* SSGET of ZSPI_TKN_HDRTYPE returns a token value of ZSPI_VAL_CMDHDR */
if (err = SSGETTKN (req_buffer, ZSPI_TKN_HDRTYPE, (char *) &tkn_value,
, &tkn_count))
{
display_spi_error (err, ZSPI_VAL_SSGETTKN,
ZSPI_TKN_HDRTYPE, false);
return (ZSPI_ERR_INVBUF);
}
if (tkn_value != ZSPI_VAL_CMDHDR)
return (ZSPI_ERR_INVBUF);
tkn_code = ZSPI_TKN_HDRTYPE;
return (err);
} /* procedure verify_msg */
Example E-12. C File: A Simple SPI Server (page 11 of 12)