Specifications

INTELLIGENT PLATFORM MANAGEMENT INTERFACE
PP 41x/03x 7-15
*/
void vBmcSmicSmsMessageRead
(
unsigned char *pbMessage, /* received response */
unsigned char *bMessageLength /* response length */
)
{
unsigned char bReadControl;
unsigned char bReadStatus;
unsigned char bReadData;
*bMessageLength = 0;
bReadControl = CC_SMS_RD_START;
do
{
while (((bReadSmicFlags) & FLAGS_RX_DATA_READY) != FLAGS_RX_DATA_READY)
; /* do nothing ... */
while (((bReadSmicFlags) & FLAGS_BUSY) == FLAGS_BUSY)
; /* do nothing ... */
vWriteSmicControl (bReadControl);
vWriteSmicFlags (FLAGS_BUSY);
while (((bReadSmicFlags) & FLAGS_BUSY) == FLAGS_BUSY)
; /* do nothing ... */
bReadStatus = bReadSmicStatus;
bReadData = bReadSmicData;
switch (bReadStatus)
{
case SC_SMS_RD_START :
*pbMessage++ = bReadData;
(*bMessageLength)++;
bReadControl = CC_SMS_RD_NEXT;
break;
case SC_SMS_RD_NEXT :
*pbMessage++ = bReadData;
(*bMessageLength)++;
break;
case SC_SMS_RD_END :
*pbMessage++ = bReadData;
(*bMessageLength)++;
bReadControl = CC_SMS_RD_END;
break;
default :
break;
}
}
while (bReadStatus != SC_SMS_RDY);
return;
}