]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/lib/net/Deluge/CrcP.nc
Initial commit of the Deluge T2. Some notes:
[tinyos-2.x.git] / tos / lib / net / Deluge / CrcP.nc
diff --git a/tos/lib/net/Deluge/CrcP.nc b/tos/lib/net/Deluge/CrcP.nc
new file mode 100644 (file)
index 0000000..06ae498
--- /dev/null
@@ -0,0 +1,48 @@
+/* \r
+ * "Copyright (c) 2000-2004 The Regents of the University  of California.  \r
+ * All rights reserved.\r
+ *\r
+ * Permission to use, copy, modify, and distribute this software and its\r
+ * documentation for any purpose, without fee, and without written agreement is\r
+ * hereby granted, provided that the above copyright notice, the following\r
+ * two paragraphs and the author appear in all copies of this software.\r
+ * \r
+ * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR\r
+ * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT\r
+ * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF\r
+ * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ * \r
+ * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,\r
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\r
+ * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS\r
+ * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO\r
+ * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."\r
+ */\r
+\r
+/**\r
+ * @author Jonathan Hui <jwhui@cs.berkeley.edu>\r
+ */\r
+\r
+#include "crc.h"\r
+\r
+module CrcP\r
+{\r
+  provides interface Crc;\r
+}\r
+\r
+implementation\r
+{\r
+  // From T1 "tos/system/CrcC.nc"\r
+  command uint16_t Crc.crc16(void* buf, uint8_t len)\r
+  {\r
+    uint8_t* tmpBuf = (uint8_t*)buf;\r
+    uint16_t crc;\r
+    \r
+    for (crc = 0; len > 0; len--) {\r
+      crc = crcByte(crc, *tmpBuf);   // Calculates running CRC\r
+      tmpBuf++;\r
+    }\r
+    \r
+    return crc;\r
+  }\r
+}\r