dedup

deduplicating backup program
git clone git://git.2f30.org/dedup.git
Log | Files | Refs | README | LICENSE

commit bb81bcb6bd4b4bf7dbe36d2a47087dec0c58f812
parent 8728669764d059ab08e07111ca630f7fa313e51d
Author: sin <sin@2f30.org>
Date:   Wed,  1 May 2019 14:33:42 +0100

Shorten type width to 16 bits and mark rest as reserved

Diffstat:
Mbcompress.c | 11+++++++----
Mbstorage.c | 9++++++---
2 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/bcompress.c b/bcompress.c @@ -45,12 +45,13 @@ static struct bops bops = { /* Compression layer context */ struct cctx { - uint64_t type; /* compression algorithm type for new blocks */ + int type; /* compression algorithm type for new blocks */ }; /* Compression descriptor */ struct cd { - uint64_t type; /* compression algorithm type */ + uint16_t type; /* compression algorithm type */ + uint8_t reserved[6]; uint64_t size; }; @@ -60,8 +61,9 @@ unpackcd(void *buf, struct cd *cd) { int n; - n = unpack(buf, "qq", + n = unpack(buf, "s'6q", &cd->type, + cd->reserved, &cd->size); assert(n == CDSIZE); @@ -74,8 +76,9 @@ packcd(void *buf, struct cd *cd) { int n; - n = pack(buf, "qq", + n = pack(buf, "s'6q", cd->type, + cd->reserved, cd->size); assert(n == CDSIZE); diff --git a/bstorage.c b/bstorage.c @@ -87,7 +87,8 @@ struct bhdr { /* Block descriptor */ struct bd { - uint64_t type; + uint16_t type; + uint8_t reserved[6]; uint64_t offset; /* offset of block */ uint64_t size; /* size of block */ uint64_t refcnt; @@ -194,9 +195,10 @@ unpackbd(int fd, struct bd *bd) if (xread(fd, buf, sizeof(buf)) != sizeof(buf)) return -1; - snprintf(fmt, sizeof(fmt), "qqqq'%d", MDSIZE); + snprintf(fmt, sizeof(fmt), "s'6qqq'%d", MDSIZE); n = unpack(buf, fmt, &bd->type, + bd->reserved, &bd->offset, &bd->size, &bd->refcnt, @@ -214,9 +216,10 @@ packbd(int fd, struct bd *bd) char fmt[BUFSIZ]; int n; - snprintf(fmt, sizeof(fmt), "qqqq'%d", MDSIZE); + snprintf(fmt, sizeof(fmt), "s'6qqq'%d", MDSIZE); n = pack(buf, fmt, bd->type, + bd->reserved, bd->offset, bd->size, bd->refcnt,