/store.h (113ca447b857e1890ad0db35a95a06849330b8db) (1916 bytes) (mode 100644) (type blob)
#ifndef DUPDUMP_STORE_H
#define DUPDUMP_STORE_H 1
#if GCC_VERSION >= 40300
#define __hot __attribute__((__hot__))
#define __cold __attribute__((__cold__))
#else
#define __hot
#define __cold
#endif
#include <openssl/sha.h>
struct file_node
{
char *name;
unsigned long long size;
unsigned char sha1[2][SHA_DIGEST_LENGTH]; /* idx 0 is first1 is full */
unsigned char skip_compare:1;
unsigned char no_dup_possible:1;
unsigned char do_not_dump:1;
unsigned char unique:1;
unsigned char left:1;
int level;
dev_t dev;
ino_t ino;
struct file_node *next;
struct file_node *hash_next;
struct dir_node *parent;
struct file_node *duplicates;
time_t mtime;
struct file_node *ino_first; /* this will point the the first hardlink found */
};
struct dir_node
{
char *name;
unsigned char sha1[SHA_DIGEST_LENGTH];
unsigned char file_names_sha1[SHA_DIGEST_LENGTH];
unsigned char no_dup_possible:1;
unsigned char do_not_dump:1;
unsigned char left:1;
int level;
dev_t dev;
ino_t ino;
struct dir_node *subdirs;
struct dir_node *next_sibling; /* Links subdirs on the same level */
struct file_node *files;
unsigned int no_of_files;
struct dir_node *parent;
struct dir_node *hash_next; /* In the last phase, here we store duplicates TODO: rename to duplicate_next? */
time_t mtime;
unsigned long long total_size;
};
void set_debug(const unsigned int level);
void set_out(FILE *out);
void dump_stats(void);
int file_add(const char *file, const struct stat *s,
const int level);
int dir_add(const char *dir, const struct stat *s,
const int level);
void dump_files(void);
int file_find_dups(void);
int dir_find_dups(void);
struct dir_node *dir_get_current(const unsigned int level);
void dev_ino_seen_clean(void);
void dump_dirs(void);
void dump_duplicates(const unsigned long long min_size,
const unsigned int zero);
#endif
Mode |
Type |
Size |
Ref |
File |
100644 |
blob |
20 |
85940595c7c3a70ebc0bd5da9b35bc6b6a16a71a |
.exclude |
100644 |
blob |
105 |
9e50f3bfb5cc392fa65019aef80cab5093162bd2 |
.gitignore |
100644 |
blob |
35147 |
94a9ed024d3859793618152ea559a168bbcbb5e2 |
LICENSE |
100644 |
blob |
635 |
5ec5fadb5ab8ec7839ca5f11414aa2a855cffa03 |
Makefile.in |
100644 |
blob |
2627 |
9f4bbb9647e9fea4e861fa9a04bf32a716a2da05 |
README |
100644 |
blob |
2216 |
4699616f54bc9be1acd4b252ddd76b75e9eeb48a |
TODO |
100755 |
blob |
31 |
382d4ea2c0c98b1b25ea01f1e194cfc4990ac527 |
configure |
100755 |
blob |
15674 |
c93b35dad5dedf498b90aafcbf409a4844b1bc8c |
duilder |
100644 |
blob |
807 |
741ea33bf42f98943be21be26fc7e1b6b38d8378 |
duilder.conf |
100644 |
blob |
2040 |
22eee88f6126c7effa781bcb8fde0c58ca487731 |
dupdump.1 |
100644 |
blob |
3981 |
c59d9bbf4076703d2ffc82502f91595393199bce |
dupdump.c |
100644 |
blob |
805 |
a992c9f287eb58cd910aca63c6e009526ec2595f |
dupdump.spec.in |
100755 |
blob |
205 |
677395e91b18c8272dc795ace0d17ec5610e2d70 |
process.sh |
100644 |
blob |
30737 |
8f737a70836f0180a635351bfd342d2d0efbfe89 |
store.c |
100644 |
blob |
1916 |
113ca447b857e1890ad0db35a95a06849330b8db |
store.h |
040000 |
tree |
- |
2f1796ebce0f596969d86738ee6b635521296929 |
tests |
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"
Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/catalinux/dupdump
Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/catalinux/dupdump
Clone this repository using git:
git clone git://git.rocketgit.com/user/catalinux/dupdump
You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a
merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main