summaryrefslogtreecommitdiffstats
path: root/zix/digest.h
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-08-13 17:26:01 +0200
committerDavid Robillard <d@drobilla.net>2020-08-13 17:26:01 +0200
commit4e7a4ca74853d8fabba7c229ff472dff0ffea35f (patch)
tree1a40616aa7d75e2ef99705110a7a88e0e4ab4fe6 /zix/digest.h
parent4215a8ab7cc004c617b91a1628dbad3f19fbbe30 (diff)
downloadzix-4e7a4ca74853d8fabba7c229ff472dff0ffea35f.tar.gz
zix-4e7a4ca74853d8fabba7c229ff472dff0ffea35f.tar.bz2
zix-4e7a4ca74853d8fabba7c229ff472dff0ffea35f.zip
Improve digest
Diffstat (limited to 'zix/digest.h')
-rw-r--r--zix/digest.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/zix/digest.h b/zix/digest.h
index 264c918..16ba9b9 100644
--- a/zix/digest.h
+++ b/zix/digest.h
@@ -1,5 +1,5 @@
/*
- Copyright 2012 David Robillard <http://drobilla.net>
+ Copyright 2012-2020 David Robillard <http://drobilla.net>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@@ -26,12 +26,36 @@
extern "C" {
#endif
+/**
+ Return an initial empty digest value.
+*/
ZIX_API uint32_t
zix_digest_start(void);
+/**
+ Update `hash` to include `buf`, a buffer of `len` bytes.
+
+ This can be used for any size or alignment.
+*/
ZIX_API uint32_t
zix_digest_add(uint32_t hash, const void* buf, size_t len);
+/**
+ Update `hash` to include `buf`, a 64-bit aligned buffer of `len` bytes.
+
+ Both `buf` and `len` must be evenly divisible by 8 (64 bits).
+*/
+ZIX_API uint32_t
+zix_digest_add_64(uint32_t hash, const void* buf, size_t len);
+
+/**
+ Update `hash` to include `ptr`.
+
+ This hashes the value of the pointer itself, and does not dereference `ptr`.
+*/
+ZIX_API uint32_t
+zix_digest_add_ptr(uint32_t hash, const void* ptr);
+
#ifdef __cplusplus
} /* extern "C" */
#endif