MCPcopy Create free account
hub / github.com/defold/defold / crc16

Function crc16

engine/dlib/src/basis/transcoder/basisu_transcoder.cpp:262–275  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

260 static inline uint8_t mul_8(uint32_t v, uint32_t q) { v = v * q + 128; return (uint8_t)((v + (v >> 8)) >> 8); }
261
262 uint16_t crc16(const void* r, size_t size, uint16_t crc)
263 {
264 crc = ~crc;
265
266 const uint8_t* p = static_cast<const uint8_t*>(r);
267 for (; size; --size)
268 {
269 const uint16_t q = *p++ ^ (crc >> 8);
270 uint16_t k = (q >> 4) ^ q;
271 crc = (((crc << 8) ^ k) ^ (k << 5)) ^ (k << 12);
272 }
273
274 return static_cast<uint16_t>(~crc);
275 }
276
277 enum etc_constants
278 {

Callers 5

fixup_crcsMethod · 0.50
compute_slice_crcsMethod · 0.50

Calls

no outgoing calls

Tested by

no test coverage detected