iPut xread/xwrite to misc.c - 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 7a2e4a88b5471cb53583ea7df33ec8c79efa5e38 /scm/dedup/commit/7a2e4a88b5471cb53583ea7df33ec8c79efa5e38.gph bitreich.org 70 1parent 53b588c7899ecf4f4c969259e2c80f18192893ba /scm/dedup/commit/53b588c7899ecf4f4c969259e2c80f18192893ba.gph bitreich.org 70 hAuthor: sin URL:mailto:sin@2f30.org bitreich.org 70 iDate: Sat, 27 Apr 2019 18:42:20 +0100 Err bitreich.org 70 i Err bitreich.org 70 iPut xread/xwrite to misc.c Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M Makefile | 1 + Err bitreich.org 70 i M bstorage.c | 42 ++----------------------------- Err bitreich.org 70 i M chunker.c | 22 ++-------------------- Err bitreich.org 70 i M dup-unpack.c | 22 ++-------------------- Err bitreich.org 70 i A misc.c | 43 ++++++++++++++++++++++++++++++ Err bitreich.org 70 i M snap.c | 43 +++---------------------------- Err bitreich.org 70 i Err bitreich.org 70 i6 files changed, 53 insertions(+), 120 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/Makefile b/Makefile /scm/dedup/file/Makefile.gph bitreich.org 70 i@@ -21,6 +21,7 @@ COMMOBJ = \ Err bitreich.org 70 i block.o \ Err bitreich.org 70 i bstorage.o \ Err bitreich.org 70 i chunker.o \ Err bitreich.org 70 i+ misc.o \ Err bitreich.org 70 i pack.o \ Err bitreich.org 70 i snap.o \ Err bitreich.org 70 i unpack.o \ Err bitreich.org 70 1diff --git a/bstorage.c b/bstorage.c /scm/dedup/file/bstorage.c.gph bitreich.org 70 i@@ -49,6 +49,8 @@ Err bitreich.org 70 i #define CSNAPPYTYPE 1 Err bitreich.org 70 i #define HBLAKE2BTYPE 0 Err bitreich.org 70 i Err bitreich.org 70 i+extern ssize_t xread(int fd, void *buf, size_t nbytes); Err bitreich.org 70 i+extern ssize_t xwrite(int fd, void *buf, size_t nbytes); Err bitreich.org 70 i extern int pack(unsigned char *dst, char *fmt, ...); Err bitreich.org 70 i extern int unpack(unsigned char *src, char *fmt, ...); Err bitreich.org 70 i Err bitreich.org 70 i@@ -129,46 +131,6 @@ bhash(void *buf, size_t n, unsigned char *md) Err bitreich.org 70 i return blake2b_final(&ctx, md, MDSIZE); Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i-static ssize_t Err bitreich.org 70 i-xread(int fd, void *buf, size_t nbytes) Err bitreich.org 70 i-{ Err bitreich.org 70 i- unsigned char *bp = buf; Err bitreich.org 70 i- ssize_t total = 0; Err bitreich.org 70 i- Err bitreich.org 70 i- while (nbytes > 0) { Err bitreich.org 70 i- ssize_t n; Err bitreich.org 70 i- Err bitreich.org 70 i- n = read(fd, &bp[total], nbytes); Err bitreich.org 70 i- if (n < 0) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- else if (n == 0) Err bitreich.org 70 i- return total; Err bitreich.org 70 i- total += n; Err bitreich.org 70 i- nbytes -= n; Err bitreich.org 70 i- } Err bitreich.org 70 i- return total; Err bitreich.org 70 i-} Err bitreich.org 70 i- Err bitreich.org 70 i-static ssize_t Err bitreich.org 70 i-xwrite(int fd, void *buf, size_t nbytes) Err bitreich.org 70 i-{ Err bitreich.org 70 i- unsigned char *bp = buf; Err bitreich.org 70 i- ssize_t total = 0; Err bitreich.org 70 i- Err bitreich.org 70 i- while (nbytes > 0) { Err bitreich.org 70 i- ssize_t n; Err bitreich.org 70 i- Err bitreich.org 70 i- n = write(fd, &bp[total], nbytes); Err bitreich.org 70 i- if (n < 0) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- else if (n == 0) Err bitreich.org 70 i- return total; Err bitreich.org 70 i- total += n; Err bitreich.org 70 i- nbytes -= n; Err bitreich.org 70 i- } Err bitreich.org 70 i- return total; Err bitreich.org 70 i-} Err bitreich.org 70 i- Err bitreich.org 70 i /* Read block header */ Err bitreich.org 70 i static int Err bitreich.org 70 i unpackbhdr(int fd, struct bhdr *bhdr) Err bitreich.org 70 1diff --git a/chunker.c b/chunker.c /scm/dedup/file/chunker.c.gph bitreich.org 70 i@@ -6,6 +6,8 @@ Err bitreich.org 70 i Err bitreich.org 70 i #define ROTL(x, y) (((x) << (y)) | ((x) >> (32 - (y)))) Err bitreich.org 70 i Err bitreich.org 70 i+extern ssize_t xread(int fd, void *buf, size_t nbytes); Err bitreich.org 70 i+ Err bitreich.org 70 i struct chunker { Err bitreich.org 70 i unsigned char *buf; Err bitreich.org 70 i int fd; Err bitreich.org 70 i@@ -61,26 +63,6 @@ static const uint32_t buztbl[] = { Err bitreich.org 70 i 0x8dfd4d53,0xc4d0c087,0x31dfb5ca,0xa44589b5,0x6b637e2e,0x663f6b45,0xd2d8baa0,0x1dac7e4c Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i-static ssize_t Err bitreich.org 70 i-xread(int fd, void *buf, size_t nbytes) Err bitreich.org 70 i-{ Err bitreich.org 70 i- unsigned char *bp = buf; Err bitreich.org 70 i- ssize_t total = 0; Err bitreich.org 70 i- Err bitreich.org 70 i- while (nbytes > 0) { Err bitreich.org 70 i- ssize_t n; Err bitreich.org 70 i- Err bitreich.org 70 i- n = read(fd, &bp[total], nbytes); Err bitreich.org 70 i- if (n < 0) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- else if (n == 0) Err bitreich.org 70 i- return total; Err bitreich.org 70 i- total += n; Err bitreich.org 70 i- nbytes -= n; Err bitreich.org 70 i- } Err bitreich.org 70 i- return total; Err bitreich.org 70 i-} 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 static inline uint32_t Err bitreich.org 70 i hinit(unsigned char *buf, size_t size) Err bitreich.org 70 1diff --git a/dup-unpack.c b/dup-unpack.c /scm/dedup/file/dup-unpack.c.gph bitreich.org 70 i@@ -12,29 +12,11 @@ Err bitreich.org 70 i #include "config.h" Err bitreich.org 70 i #include "snap.h" Err bitreich.org 70 i Err bitreich.org 70 i+extern ssize_t xwrite(int fd, void *buf, size_t nbytes); Err bitreich.org 70 i+ Err bitreich.org 70 i int verbose; Err bitreich.org 70 i char *argv0; Err bitreich.org 70 i Err bitreich.org 70 i-static ssize_t Err bitreich.org 70 i-xwrite(int fd, void *buf, size_t nbytes) Err bitreich.org 70 i-{ Err bitreich.org 70 i- unsigned char *bp = buf; Err bitreich.org 70 i- ssize_t total = 0; Err bitreich.org 70 i- Err bitreich.org 70 i- while (nbytes > 0) { Err bitreich.org 70 i- ssize_t n; Err bitreich.org 70 i- Err bitreich.org 70 i- n = write(fd, &bp[total], nbytes); Err bitreich.org 70 i- if (n < 0) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- else if (n == 0) Err bitreich.org 70 i- return total; Err bitreich.org 70 i- total += n; Err bitreich.org 70 i- nbytes -= n; Err bitreich.org 70 i- } Err bitreich.org 70 i- return total; Err bitreich.org 70 i-} Err bitreich.org 70 i- Err bitreich.org 70 i static int Err bitreich.org 70 i unpack(struct sctx *sctx, struct bctx *bctx) Err bitreich.org 70 i { Err bitreich.org 70 1diff --git a/misc.c b/misc.c /scm/dedup/file/misc.c.gph bitreich.org 70 i@@ -0,0 +1,43 @@ Err bitreich.org 70 i+#include Err bitreich.org 70 i+ Err bitreich.org 70 i+#include Err bitreich.org 70 i+ Err bitreich.org 70 i+ssize_t Err bitreich.org 70 i+xread(int fd, void *buf, size_t nbytes) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ unsigned char *bp = buf; Err bitreich.org 70 i+ ssize_t total = 0; Err bitreich.org 70 i+ Err bitreich.org 70 i+ while (nbytes > 0) { Err bitreich.org 70 i+ ssize_t n; Err bitreich.org 70 i+ Err bitreich.org 70 i+ n = read(fd, &bp[total], nbytes); Err bitreich.org 70 i+ if (n < 0) Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i+ else if (n == 0) Err bitreich.org 70 i+ return total; Err bitreich.org 70 i+ total += n; Err bitreich.org 70 i+ nbytes -= n; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ return total; Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i+ssize_t Err bitreich.org 70 i+xwrite(int fd, void *buf, size_t nbytes) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ unsigned char *bp = buf; Err bitreich.org 70 i+ ssize_t total = 0; Err bitreich.org 70 i+ Err bitreich.org 70 i+ while (nbytes > 0) { Err bitreich.org 70 i+ ssize_t n; Err bitreich.org 70 i+ Err bitreich.org 70 i+ n = write(fd, &bp[total], nbytes); Err bitreich.org 70 i+ if (n < 0) Err bitreich.org 70 i+ return -1; Err bitreich.org 70 i+ else if (n == 0) Err bitreich.org 70 i+ return total; Err bitreich.org 70 i+ total += n; Err bitreich.org 70 i+ nbytes -= n; Err bitreich.org 70 i+ } Err bitreich.org 70 i+ return total; Err bitreich.org 70 i+} Err bitreich.org 70 1diff --git a/snap.c b/snap.c /scm/dedup/file/snap.c.gph bitreich.org 70 i@@ -14,6 +14,9 @@ Err bitreich.org 70 i #include "queue.h" Err bitreich.org 70 i #include "snap.h" Err bitreich.org 70 i Err bitreich.org 70 i+extern ssize_t xread(int fd, void *buf, size_t nbytes); Err bitreich.org 70 i+extern ssize_t xwrite(int fd, void *buf, size_t nbytes); Err bitreich.org 70 i+ Err bitreich.org 70 i struct mdnode { Err bitreich.org 70 i unsigned char md[MDSIZE]; Err bitreich.org 70 i SLIST_ENTRY(mdnode) e; Err bitreich.org 70 i@@ -26,46 +29,6 @@ struct sctx { Err bitreich.org 70 i int rdonly; Err bitreich.org 70 i }; Err bitreich.org 70 i Err bitreich.org 70 i-static ssize_t Err bitreich.org 70 i-xread(int fd, void *buf, size_t nbytes) Err bitreich.org 70 i-{ Err bitreich.org 70 i- uint8_t *bp = buf; Err bitreich.org 70 i- ssize_t total = 0; Err bitreich.org 70 i- Err bitreich.org 70 i- while (nbytes > 0) { Err bitreich.org 70 i- ssize_t n; Err bitreich.org 70 i- Err bitreich.org 70 i- n = read(fd, &bp[total], nbytes); Err bitreich.org 70 i- if (n < 0) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- else if (n == 0) Err bitreich.org 70 i- return total; Err bitreich.org 70 i- total += n; Err bitreich.org 70 i- nbytes -= n; Err bitreich.org 70 i- } Err bitreich.org 70 i- return total; Err bitreich.org 70 i-} Err bitreich.org 70 i- Err bitreich.org 70 i-static ssize_t Err bitreich.org 70 i-xwrite(int fd, void *buf, size_t nbytes) Err bitreich.org 70 i-{ Err bitreich.org 70 i- uint8_t *bp = buf; Err bitreich.org 70 i- ssize_t total = 0; Err bitreich.org 70 i- Err bitreich.org 70 i- while (nbytes > 0) { Err bitreich.org 70 i- ssize_t n; Err bitreich.org 70 i- Err bitreich.org 70 i- n = write(fd, &bp[total], nbytes); Err bitreich.org 70 i- if (n < 0) Err bitreich.org 70 i- return -1; Err bitreich.org 70 i- else if (n == 0) Err bitreich.org 70 i- return total; Err bitreich.org 70 i- total += n; Err bitreich.org 70 i- nbytes -= n; Err bitreich.org 70 i- } Err bitreich.org 70 i- return total; Err bitreich.org 70 i-} Err bitreich.org 70 i- Err bitreich.org 70 i static int Err bitreich.org 70 i loadmd(struct sctx *sctx) Err bitreich.org 70 i { Err bitreich.org 70 .