acioemu: add support for 1.7.0 and encrypted polls

This commit is contained in:
Will Xyen
2020-06-25 00:57:59 +00:00
committed by adfe3beeadc615e0fa48b493761cc42aae47d399
parent e5331fbc7c
commit 7d533f60cb
5 changed files with 189 additions and 10 deletions
+30 -3
View File
@@ -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;
+1
View File
@@ -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