From 9971f999b382ef51a3a3d1db4a3385b7cc23a3a0 Mon Sep 17 00:00:00 2001 From: Kevin O'Connor Date: Sun, 5 Jun 2016 14:52:17 -0400 Subject: generic: Create generic board infrastructure and move misc.h to it Instead of creating a misc.h file in each board directory, create a generic board directory and declare misc.h there. Signed-off-by: Kevin O'Connor --- src/generic/crc16_ccitt.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/generic/crc16_ccitt.c (limited to 'src/generic/crc16_ccitt.c') diff --git a/src/generic/crc16_ccitt.c b/src/generic/crc16_ccitt.c new file mode 100644 index 00000000..8347bb83 --- /dev/null +++ b/src/generic/crc16_ccitt.c @@ -0,0 +1,22 @@ +// Code for crc16_ccitt +// +// Copyright (C) 2016 Kevin O'Connor +// +// This file may be distributed under the terms of the GNU GPLv3 license. + +#include "misc.h" // crc16_ccitt + +// Implement the standard crc "ccitt" algorithm on the given buffer +uint16_t +crc16_ccitt(char *buf, uint8_t len) +{ + uint16_t crc = 0xffff; + while (len--) { + uint8_t data = *buf++; + data ^= crc & 0xff; + data ^= data << 4; + crc = ((((uint16_t)data << 8) | (crc >> 8)) ^ (uint8_t)(data >> 4) + ^ ((uint16_t)data << 3)); + } + return crc; +} -- cgit v1.2.3-70-g09d2