From b30116b8bb74c6332751e011f5ad26ce2811700b Mon Sep 17 00:00:00 2001 From: prabal Date: Mon, 2 Apr 2007 07:13:35 +0000 Subject: [PATCH] Port to T2 --- tos/system/CrcC.nc | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 tos/system/CrcC.nc diff --git a/tos/system/CrcC.nc b/tos/system/CrcC.nc new file mode 100644 index 00000000..9b2b1ad0 --- /dev/null +++ b/tos/system/CrcC.nc @@ -0,0 +1,48 @@ +/* tab:2 + * + * "Copyright (c) 2000-2007 The Regents of the University of + * California. All rights reserved. + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose, without fee, and without written + * agreement is hereby granted, provided that the above copyright + * notice, the following two paragraphs and the author appear in all + * copies of this software. + * + * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY + * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS + * DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE + * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF + * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, + * UPDATES, ENHANCEMENTS, OR MODIFICATIONS." + * + */ + +/** + * Wrapper around the CRC-16 primitive to allow computing the CRC + * value of a byte array. + * + * @author Jonathan Hui + */ +#include + +module CrcC { + provides interface Crc; +} +implementation { + + command uint16_t Crc.crc16(void* buf, uint8_t len) { + uint8_t* tmp = (uint8_t*)buf; + uint16_t crc; + for (crc = 0; len > 0; len--) { + crc = crcByte(crc, *tmp++); + } + return crc; + } +} -- 2.39.2