BOOL ETHbIsBufferCrc32Ok(PBYTE pbyBuffer, unsigned int cbFrameLength) { DWORD dwCRC; dwCRC = CRCdwGetCrc32(pbyBuffer, cbFrameLength - 4); if (cpu_to_le32(*((PDWORD)(pbyBuffer + cbFrameLength - 4))) != dwCRC) return FALSE; return TRUE; }
/* * Description: Check CRC value of the buffer if Ok or not * * Parameters: * In: * pbyBuffer - pointer of buffer (normally is rx buffer) * cbFrameLength - length of buffer, including CRC portion * Out: * none * * Return Value: true if ok; false if error. * */ bool ETHbIsBufferCrc32Ok (unsigned char *pbyBuffer, unsigned int cbFrameLength) { unsigned long dwCRC; dwCRC = CRCdwGetCrc32(pbyBuffer, cbFrameLength - 4); if (cpu_to_le32(*((unsigned long *)(pbyBuffer + cbFrameLength - 4))) != dwCRC) { return false; } return true; }