acioemu: add support for 1.7.0 and encrypted polls
This commit is contained in:
+30
-3
@@ -8,7 +8,7 @@ uint8_t crc8(const void *ptr, size_t nbytes, uint8_t in)
|
||||
size_t i;
|
||||
size_t j;
|
||||
|
||||
// log_assert(ptr != NULL);
|
||||
log_assert(ptr != NULL);
|
||||
|
||||
bytes = ptr;
|
||||
crc = ~in;
|
||||
@@ -35,7 +35,7 @@ uint16_t crc16(const void *ptr, size_t nbytes, uint16_t in)
|
||||
size_t i;
|
||||
size_t j;
|
||||
|
||||
// log_assert(ptr != NULL);
|
||||
log_assert(ptr != NULL);
|
||||
|
||||
bytes = ptr;
|
||||
crc = ~in;
|
||||
@@ -55,6 +55,33 @@ uint16_t crc16(const void *ptr, size_t nbytes, uint16_t in)
|
||||
return ~crc;
|
||||
}
|
||||
|
||||
uint16_t crc16_msb(const void *ptr, size_t nbytes, uint16_t in)
|
||||
{
|
||||
const uint8_t *bytes;
|
||||
uint16_t crc;
|
||||
size_t i;
|
||||
size_t j;
|
||||
|
||||
log_assert(ptr != NULL);
|
||||
|
||||
bytes = ptr;
|
||||
crc = in;
|
||||
|
||||
for (i = 0; i < nbytes; i++) {
|
||||
crc ^= bytes[i] << 8;
|
||||
|
||||
for (j = 0; j < 8; j++) {
|
||||
if (crc & 0x8000) {
|
||||
crc = (crc << 1) ^ 0x1021;
|
||||
} else {
|
||||
crc = crc << 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return crc;
|
||||
}
|
||||
|
||||
uint32_t crc32(const void *ptr, size_t nbytes, uint32_t in)
|
||||
{
|
||||
const uint8_t *bytes;
|
||||
@@ -62,7 +89,7 @@ uint32_t crc32(const void *ptr, size_t nbytes, uint32_t in)
|
||||
size_t i;
|
||||
size_t j;
|
||||
|
||||
// log_assert(ptr != NULL);
|
||||
log_assert(ptr != NULL);
|
||||
|
||||
bytes = ptr;
|
||||
crc = ~in;
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
|
||||
uint8_t crc8(const void *ptr, size_t nbytes, uint8_t in);
|
||||
uint16_t crc16(const void *ptr, size_t nbytes, uint16_t in);
|
||||
uint16_t crc16_msb(const void *ptr, size_t nbytes, uint16_t in);
|
||||
uint32_t crc32(const void *ptr, size_t nbytes, uint32_t in);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user