iFlatten algomap structure - 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 8485af4277ea7b35e660db9c41442175c6f882e6 /scm/dedup/commit/8485af4277ea7b35e660db9c41442175c6f882e6.gph bitreich.org 70 1parent e89af522b8931165d0c5f1d413e1b37263319d0d /scm/dedup/commit/e89af522b8931165d0c5f1d413e1b37263319d0d.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Thu, 18 Apr 2019 22:16:39 +0100 Err bitreich.org 70 i Err bitreich.org 70 iFlatten algomap structure Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M compress.c | 39 +++++++++++-------------------- Err bitreich.org 70 i M hash.c | 41 +++++++++++-------------------- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 29 insertions(+), 51 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/compress.c b/compress.c /scm/dedup/file/compress.c.gph bitreich.org 70 i@@ -41,14 +41,10 @@ static struct compr_ops { Err bitreich.org 70 i }, Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i-static struct algomap { Err bitreich.org 70 i- char *name; Err bitreich.org 70 i- int type; Err bitreich.org 70 i-} algomap[] = { Err bitreich.org 70 i- { .name = "none", .type = COMPR_NONE }, Err bitreich.org 70 i- { .name = "lz4", .type = COMPR_LZ4 }, Err bitreich.org 70 i- { .name = "snappy", .type = COMPR_SNAPPY }, Err bitreich.org 70 i- { .name = NULL, .type = -1 }, Err bitreich.org 70 i+static char *algomap[NR_COMPRS] = { Err bitreich.org 70 i+ [COMPR_NONE] = "none", Err bitreich.org 70 i+ [COMPR_LZ4] = "lz4", Err bitreich.org 70 i+ [COMPR_SNAPPY] = "snappy", Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i int Err bitreich.org 70 i@@ -90,34 +86,27 @@ compr_final(struct compr_ctx *ctx) Err bitreich.org 70 i int Err bitreich.org 70 i compr_name2type(char *name) Err bitreich.org 70 i { Err bitreich.org 70 i- struct algomap *algo; Err bitreich.org 70 i+ size_t i; Err bitreich.org 70 i Err bitreich.org 70 i- for (algo = &algomap[0]; algo->name != NULL; algo++) Err bitreich.org 70 i- if (strcasecmp(algo->name, name) == 0) Err bitreich.org 70 i- break; Err bitreich.org 70 i- if (algo->name == NULL) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- return algo->type; Err bitreich.org 70 i+ for (i = 0; i < NR_COMPRS; i++) Err bitreich.org 70 i+ if (strcasecmp(algomap[i], name) == 0) Err bitreich.org 70 i+ return i; Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i char * Err bitreich.org 70 i compr_type2name(int type) Err bitreich.org 70 i { Err bitreich.org 70 i- struct algomap *algo; Err bitreich.org 70 i- Err bitreich.org 70 i- for (algo = &algomap[0]; algo->name != NULL; algo++) Err bitreich.org 70 i- if (algo->type == type) Err bitreich.org 70 i- break; Err bitreich.org 70 i- if (algo->name == NULL) Err bitreich.org 70 i+ if (type < 0 || type >= NR_HASHES) Err bitreich.org 70 i return NULL; Err bitreich.org 70 i- return algo->name; Err bitreich.org 70 i+ return algomap[type]; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i compr_list(int fd) Err bitreich.org 70 i { Err bitreich.org 70 i- struct algomap *algo; Err bitreich.org 70 i+ size_t i; Err bitreich.org 70 i Err bitreich.org 70 i- for (algo = &algomap[0]; algo->name != NULL; algo++) Err bitreich.org 70 i- dprintf(fd, "%s\n", algo->name); Err bitreich.org 70 i+ for (i = 0; i < NR_COMPRS; i++) Err bitreich.org 70 i+ dprintf(fd, "%s\n", algomap[i]); 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@@ -36,15 +36,11 @@ static struct hash_ops { Err bitreich.org 70 i }, Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i-static struct algomap { Err bitreich.org 70 i- char *name; Err bitreich.org 70 i- int type; Err bitreich.org 70 i-} algomap[] = { Err bitreich.org 70 i- { .name = "blake2b", .type = HASH_BLAKE2B }, Err bitreich.org 70 i- { .name = "blake2bp", .type = HASH_BLAKE2BP }, Err bitreich.org 70 i- { .name = "blake2s", .type = HASH_BLAKE2S }, Err bitreich.org 70 i- { .name = "blake2sp", .type = HASH_BLAKE2SP }, Err bitreich.org 70 i- { .name = NULL, .type = -1 }, Err bitreich.org 70 i+static char *algomap[NR_HASHES] = { Err bitreich.org 70 i+ [HASH_BLAKE2B] = "blake2b", Err bitreich.org 70 i+ [HASH_BLAKE2BP] = "blake2bp", Err bitreich.org 70 i+ [HASH_BLAKE2S] = "blake2s", Err bitreich.org 70 i+ [HASH_BLAKE2SP] = "blake2sp", Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i int Err bitreich.org 70 i@@ -72,34 +68,27 @@ hash_final(struct hash_ctx *ctx, void *buf, size_t n) Err bitreich.org 70 i int Err bitreich.org 70 i hash_name2type(char *name) Err bitreich.org 70 i { Err bitreich.org 70 i- struct algomap *algo; Err bitreich.org 70 i+ size_t i; Err bitreich.org 70 i Err bitreich.org 70 i- for (algo = &algomap[0]; algo->name != NULL; algo++) Err bitreich.org 70 i- if (strcasecmp(algo->name, name) == 0) Err bitreich.org 70 i- break; Err bitreich.org 70 i- if (algo->name == NULL) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- return algo->type; Err bitreich.org 70 i+ for (i = 0; i < NR_HASHES; i++) Err bitreich.org 70 i+ if (strcasecmp(algomap[i], name) == 0) Err bitreich.org 70 i+ return i; Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i char * Err bitreich.org 70 i hash_type2name(int type) Err bitreich.org 70 i { Err bitreich.org 70 i- struct algomap *algo; Err bitreich.org 70 i- Err bitreich.org 70 i- for (algo = &algomap[0]; algo->name != NULL; algo++) Err bitreich.org 70 i- if (algo->type == type) Err bitreich.org 70 i- break; Err bitreich.org 70 i- if (algo->name == NULL) Err bitreich.org 70 i+ if (type < 0 || type >= NR_HASHES) Err bitreich.org 70 i return NULL; Err bitreich.org 70 i- return algo->name; Err bitreich.org 70 i+ return algomap[type]; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i void Err bitreich.org 70 i hash_list(int fd) Err bitreich.org 70 i { Err bitreich.org 70 i- struct algomap *algo; Err bitreich.org 70 i+ size_t i; Err bitreich.org 70 i Err bitreich.org 70 i- for (algo = &algomap[0]; algo->name != NULL; algo++) Err bitreich.org 70 i- dprintf(fd, "%s\n", algo->name); Err bitreich.org 70 i+ for (i = 0; i < NR_HASHES; i++) Err bitreich.org 70 i+ dprintf(fd, "%s\n", algomap[i]); Err bitreich.org 70 i } Err bitreich.org 70 .