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; 
} 










