iSimplify hash a bit - dedup - deduplicating backup program Err bitreich.org 70 hgit clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ URL:git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/ bitreich.org 70 1Log /scm/dedup/log.gph bitreich.org 70 1Files /scm/dedup/files.gph bitreich.org 70 1Refs /scm/dedup/refs.gph bitreich.org 70 1Tags /scm/dedup/tag bitreich.org 70 1README /scm/dedup/file/README.gph bitreich.org 70 1LICENSE /scm/dedup/file/LICENSE.gph bitreich.org 70 i--- Err bitreich.org 70 1commit e8031b23797e666b43f96906372d97e2da4f4d0a /scm/dedup/commit/e8031b23797e666b43f96906372d97e2da4f4d0a.gph bitreich.org 70 1parent 51e30cc320f67d76423856e7f0fc790431f9cf5f /scm/dedup/commit/51e30cc320f67d76423856e7f0fc790431f9cf5f.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Fri, 22 Feb 2019 11:20:51 +0000 Err bitreich.org 70 i Err bitreich.org 70 iSimplify hash a bit Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M hash.c | 15 ++++++--------- Err bitreich.org 70 i Err bitreich.org 70 i1 file changed, 6 insertions(+), 9 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/hash.c b/hash.c /scm/dedup/file/hash.c.gph bitreich.org 70 i@@ -49,22 +49,19 @@ static uint32_t buz[] = { Err bitreich.org 70 i Err bitreich.org 70 i /* Buzhash: https://en.wikipedia.org/wiki/Rolling_hash#Cyclic_polynomial */ Err bitreich.org 70 i uint32_t Err bitreich.org 70 i-buzh_init(uint8_t *buf, size_t size) Err bitreich.org 70 i+buzh_init(uint8_t *buf, size_t winsize) Err bitreich.org 70 i { Err bitreich.org 70 i- size_t i; Err bitreich.org 70 i uint32_t fp; Err bitreich.org 70 i+ size_t i; Err bitreich.org 70 i Err bitreich.org 70 i- if (!size) Err bitreich.org 70 i- return 0; Err bitreich.org 70 i- Err bitreich.org 70 i- for (i = size - 1, fp = 0; i > 0; i--, buf++) Err bitreich.org 70 i- fp ^= ROTL(buz[*buf], i % 32); Err bitreich.org 70 i+ for (i = 1, fp = 0; i < winsize; i++, buf++) Err bitreich.org 70 i+ fp ^= ROTL(buz[*buf], (winsize - i) % 32); Err bitreich.org 70 i Err bitreich.org 70 i return fp ^ buz[*buf]; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i uint32_t Err bitreich.org 70 i-buzh_update(uint32_t fp, uint8_t in, uint8_t out, size_t size) Err bitreich.org 70 i+buzh_update(uint32_t fp, uint8_t in, uint8_t out, size_t winsize) Err bitreich.org 70 i { Err bitreich.org 70 i- return ROTL(fp, 1) ^ ROTL(buz[out], size % 32) ^ buz[in]; Err bitreich.org 70 i+ return ROTL(fp, 1) ^ ROTL(buz[out], winsize % 32) ^ buz[in]; Err bitreich.org 70 i } Err bitreich.org 70 .