URI: 
       Rename cache to icache (index cache) - dedup - deduplicating backup program
  HTML git clone git://bitreich.org/dedup/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/dedup/
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
   DIR LICENSE
       ---
   DIR commit 46584d2ff6fd9566d99fc0298d1037e540afc77c
   DIR parent 2dcf94fae182f1cc856ef0a5984e636466da2009
  HTML Author: sin <sin@2f30.org>
       Date:   Sat, 30 Mar 2019 16:06:04 +0000
       
       Rename cache to icache (index cache)
       
       Diffstat:
         M Makefile                            |       4 ++--
         D cache.c                             |     100 -------------------------------
         M dedup.c                             |      28 ++++++++++++++--------------
         M dedup.h                             |      12 ++++++------
         A icache.c                            |     100 +++++++++++++++++++++++++++++++
       
       5 files changed, 122 insertions(+), 122 deletions(-)
       ---
   DIR diff --git a/Makefile b/Makefile
       @@ -11,9 +11,9 @@ SRC = \
                dedup.h \
                tree.h \
                blake2b-ref.c \
       -        cache.c \
                chunker.c \
                compress.c \
       +        icache.c \
                pack.c \
                types.c \
                unpack.c \
       @@ -22,9 +22,9 @@ SRC = \
        OBJ = \
                $(BIN).o \
                blake2b-ref.o \
       -        cache.o \
                chunker.o \
                compress.o \
       +        icache.o \
                pack.o \
                types.o \
                unpack.o \
   DIR diff --git a/cache.c b/cache.c
       @@ -1,100 +0,0 @@
       -#include <sys/types.h>
       -
       -#include <err.h>
       -#include <stdint.h>
       -#include <stdlib.h>
       -#include <string.h>
       -
       -#include "dedup.h"
       -#include "tree.h"
       -
       -struct node {
       -        struct blk_desc desc;
       -        RB_ENTRY(node) e;
       -};
       -RB_HEAD(cache_head, node);
       -
       -struct cache {
       -        struct cache_head nodes;
       -};
       -
       -static int
       -node_cmp(struct node *e1, struct node *e2)
       -{
       -        int r;
       -
       -        r = memcmp(e1->desc.md, e2->desc.md, sizeof(e1->desc.md));
       -        if (r > 0)
       -                return 1;
       -        else if (r < 0)
       -                return -1;
       -        return 0;
       -}
       -static RB_PROTOTYPE(cache_head, node, e, node_cmp);
       -static RB_GENERATE(cache_head, node, e, node_cmp);
       -
       -static struct node *
       -alloc_node(struct blk_desc *desc)
       -{
       -        struct node *node;
       -
       -        node = calloc(1, sizeof(*node));
       -        if (node == NULL)
       -                err(1, "calloc");
       -        node->desc = *desc;
       -        return node;
       -}
       -
       -static void
       -free_node(struct node *node)
       -{
       -        free(node);
       -}
       -
       -struct cache *
       -alloc_cache(void)
       -{
       -        struct cache *cache;
       -
       -        cache = calloc(1, sizeof(*cache));
       -        if (cache == NULL)
       -                err(1, "calloc");
       -        RB_INIT(&cache->nodes);
       -        return cache;
       -}
       -
       -void
       -free_cache(struct cache *cache)
       -{
       -        struct node *node, *tmp;
       -
       -        RB_FOREACH_SAFE(node, cache_head, &cache->nodes, tmp) {
       -                RB_REMOVE(cache_head, &cache->nodes, node);
       -                free_node(node);
       -        }
       -        free(cache);
       -}
       -
       -void
       -add_cache_entry(struct cache *cache, struct blk_desc *desc)
       -{
       -        struct node *node;
       -
       -        node = alloc_node(desc);
       -        if (RB_INSERT(cache_head, &cache->nodes, node) != NULL)
       -                free_node(node);
       -}
       -
       -int
       -lookup_cache_entry(struct cache *cache, struct blk_desc *desc)
       -{
       -        struct node *node, key;
       -
       -        key.desc = *desc;
       -        node = RB_FIND(cache_head, &cache->nodes, &key);
       -        if (node != NULL) {
       -                *desc = node->desc;
       -                return 0;
       -        }
       -        return -1;
       -}
   DIR diff --git a/dedup.c b/dedup.c
       @@ -30,11 +30,11 @@ struct extract_args {
        
        static struct snap_hdr snap_hdr;
        static struct blk_hdr blk_hdr;
       -static struct cache *cache;
       +static struct icache *icache;
        static int ifd;
        static int sfd;
       -static unsigned long long cache_hits;
       -static unsigned long long cache_misses;
       +static unsigned long long icache_hits;
       +static unsigned long long icache_misses;
        
        int verbose;
        char *argv0;
       @@ -68,8 +68,8 @@ print_stats(struct stats *st)
                        (unsigned long long)st->max_blk_size);
                fprintf(stderr, "Number of unique blocks: %llu\n",
                        (unsigned long long)st->nr_blks);
       -        fprintf(stderr, "Cache hits: %llu\n", cache_hits);
       -        fprintf(stderr, "Cache misses: %llu\n", cache_misses);
       +        fprintf(stderr, "Index cache hits: %llu\n", icache_hits);
       +        fprintf(stderr, "Index cache misses: %llu\n", icache_misses);
        }
        
        static struct snap *
       @@ -220,15 +220,15 @@ dedup_chunk(struct snap *snap, uint8_t *chunkp, size_t chunk_size)
                snap_hdr.st.compr_size += n;
        
                memcpy(blk_desc.md, md, sizeof(blk_desc.md));
       -        if (lookup_cache_entry(cache, &blk_desc) < 0) {
       +        if (lookup_icache_entry(icache, &blk_desc) < 0) {
                        blk_desc.offset = blk_hdr.size;
                        blk_desc.size = n;
        
                        snap->blk_desc[snap->nr_blk_descs++] = blk_desc;
                        append_blk(compr_buf, &blk_desc);
        
       -                add_cache_entry(cache, &blk_desc);
       -                cache_misses++;
       +                add_icache_entry(icache, &blk_desc);
       +                icache_misses++;
        
                        snap_hdr.st.dedup_size += blk_desc.size;
                        snap_hdr.st.nr_blks++;
       @@ -239,7 +239,7 @@ dedup_chunk(struct snap *snap, uint8_t *chunkp, size_t chunk_size)
                                snap_hdr.st.min_blk_size = blk_desc.size;
                } else {
                        snap->blk_desc[snap->nr_blk_descs++] = blk_desc;
       -                cache_hits++;
       +                icache_hits++;
                }
        
                free(compr_buf);
       @@ -362,7 +362,7 @@ check_snap(struct snap *snap, void *arg)
        }
        
        static int
       -build_cache(struct snap *snap, void *arg)
       +build_icache(struct snap *snap, void *arg)
        {
                uint8_t *buf;
                uint64_t i;
       @@ -372,7 +372,7 @@ build_cache(struct snap *snap, void *arg)
                        struct blk_desc *blk_desc;
        
                        blk_desc = &snap->blk_desc[i];
       -                add_cache_entry(cache, blk_desc);
       +                add_icache_entry(icache, blk_desc);
                }
                free(buf);
                return WALK_CONTINUE;
       @@ -506,8 +506,8 @@ init(int iflag)
                        load_blk_hdr();
                }
        
       -        cache = alloc_cache();
       -        walk_snap(build_cache, NULL);
       +        icache = alloc_icache();
       +        walk_snap(build_icache, NULL);
        }
        
        static void
       @@ -516,7 +516,7 @@ term(void)
                if (verbose > 0)
                        print_stats(&snap_hdr.st);
        
       -        free_cache(cache);
       +        free_icache(icache);
        
                save_blk_hdr();
                save_snap_hdr();
   DIR diff --git a/dedup.h b/dedup.h
       @@ -25,7 +25,7 @@
        #define COMPR_ENABLED_SHIFT        16
        #define COMPR_ENABLED_MASK        0x1
        
       -struct cache;
       +struct icache;
        struct chunker;
        
        struct stats {
       @@ -70,11 +70,11 @@ extern int compr_enabled;
        /* dedup.c */
        extern int verbose;
        
       -/* cache.c */
       -struct cache *alloc_cache(void);
       -void free_cache(struct cache *cache);
       -void add_cache_entry(struct cache *cache, struct blk_desc *desc);
       -int lookup_cache_entry(struct cache *cache, struct blk_desc *desc);
       +/* icache.c */
       +struct icache *alloc_icache(void);
       +void free_icache(struct icache *icache);
       +void add_icache_entry(struct icache *icache, struct blk_desc *desc);
       +int lookup_icache_entry(struct icache *icache, struct blk_desc *desc);
        
        /* chunker.c */
        struct chunker *alloc_chunker(int fd, size_t min_size, size_t max_size,
   DIR diff --git a/icache.c b/icache.c
       @@ -0,0 +1,100 @@
       +#include <sys/types.h>
       +
       +#include <err.h>
       +#include <stdint.h>
       +#include <stdlib.h>
       +#include <string.h>
       +
       +#include "dedup.h"
       +#include "tree.h"
       +
       +struct node {
       +        struct blk_desc desc;
       +        RB_ENTRY(node) e;
       +};
       +RB_HEAD(icache_head, node);
       +
       +struct icache {
       +        struct icache_head nodes;
       +};
       +
       +static int
       +node_cmp(struct node *e1, struct node *e2)
       +{
       +        int r;
       +
       +        r = memcmp(e1->desc.md, e2->desc.md, sizeof(e1->desc.md));
       +        if (r > 0)
       +                return 1;
       +        else if (r < 0)
       +                return -1;
       +        return 0;
       +}
       +static RB_PROTOTYPE(icache_head, node, e, node_cmp);
       +static RB_GENERATE(icache_head, node, e, node_cmp);
       +
       +static struct node *
       +alloc_node(struct blk_desc *desc)
       +{
       +        struct node *node;
       +
       +        node = calloc(1, sizeof(*node));
       +        if (node == NULL)
       +                err(1, "calloc");
       +        node->desc = *desc;
       +        return node;
       +}
       +
       +static void
       +free_node(struct node *node)
       +{
       +        free(node);
       +}
       +
       +struct icache *
       +alloc_icache(void)
       +{
       +        struct icache *icache;
       +
       +        icache = calloc(1, sizeof(*icache));
       +        if (icache == NULL)
       +                err(1, "calloc");
       +        RB_INIT(&icache->nodes);
       +        return icache;
       +}
       +
       +void
       +free_icache(struct icache *icache)
       +{
       +        struct node *node, *tmp;
       +
       +        RB_FOREACH_SAFE(node, icache_head, &icache->nodes, tmp) {
       +                RB_REMOVE(icache_head, &icache->nodes, node);
       +                free_node(node);
       +        }
       +        free(icache);
       +}
       +
       +void
       +add_icache_entry(struct icache *icache, struct blk_desc *desc)
       +{
       +        struct node *node;
       +
       +        node = alloc_node(desc);
       +        if (RB_INSERT(icache_head, &icache->nodes, node) != NULL)
       +                free_node(node);
       +}
       +
       +int
       +lookup_icache_entry(struct icache *icache, struct blk_desc *desc)
       +{
       +        struct node *node, key;
       +
       +        key.desc = *desc;
       +        node = RB_FIND(icache_head, &icache->nodes, &key);
       +        if (node != NULL) {
       +                *desc = node->desc;
       +                return 0;
       +        }
       +        return -1;
       +}