]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/interfaces/Crc.nc
Updated the interface to support asynchronous and more generic CRC calculations
[tinyos-2.x.git] / tos / interfaces / Crc.nc
index 4ecf0db053b188d3527abb98253046ef621244cf..39cd3352bc0dc03a005607055d6a4d28c998efef 100644 (file)
@@ -28,6 +28,7 @@
  * Compute the CRC-16 value of a byte array.
  *
  * @author Jonathan Hui <jwhui@cs.berkeley.edu>
+ * @author David Moss
  */
 interface Crc {
 
@@ -38,5 +39,17 @@ interface Crc {
    * @param   len The length of the buffer over which to compute CRC.
    * @return  The CRC-16 value.
    */
-  command uint16_t crc16(void* buf, uint8_t len);
+  async command uint16_t crc16(void* buf, uint8_t len);
+  
+  /**
+   * Compute a generic CRC-16 using a given seed.  Used to compute CRC's
+   * of discontinuous data.
+   * 
+   * @param startCrc An initial CRC value to begin with
+   * @param buf A pointer to a buffer of data
+   * @param len The length of the buffer
+   * @return The CRC-16 value.
+   */
+  async command uint16_t seededCrc16(uint16_t startCrc, void *buf, uint8_t len);
+  
 }