diff options
Diffstat (limited to 'libsensors/mlsdk/mlutils/checksum.c')
-rw-r--r-- | libsensors/mlsdk/mlutils/checksum.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/libsensors/mlsdk/mlutils/checksum.c b/libsensors/mlsdk/mlutils/checksum.c new file mode 100644 index 0000000..a97477d --- /dev/null +++ b/libsensors/mlsdk/mlutils/checksum.c @@ -0,0 +1,16 @@ +#include "mltypes.h" + +/** bernstein hash, from public domain source */ + +uint32_t inv_checksum(unsigned char *str, int len) +{ + uint32_t hash = 5381; + int i, c; + + for (i = 0; i < len; i++) { + c = *(str + i); + hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ + } + + return hash; +} |